{"version":3,"sources":["../node_modules/tslib/tslib.es6.js","../node_modules/react/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@aws-sdk/middleware-stack/dist/es/MiddlewareStack.js","../node_modules/@aws-sdk/smithy-client/dist/es/client.js","../node_modules/@aws-sdk/smithy-client/dist/es/command.js","../node_modules/@aws-sdk/smithy-client/dist/es/extended-encode-uri-component.js","../node_modules/@aws-sdk/smithy-client/dist/es/get-array-if-single-item.js","../node_modules/@aws-sdk/smithy-client/dist/es/get-value-from-text-node.js","../node_modules/@aws-sdk/smithy-client/dist/es/lazy-json.js","../node_modules/@aws-sdk/smithy-client/dist/es/parse-utils.js","../node_modules/@aws-sdk/smithy-client/dist/es/date-utils.js","../node_modules/@aws-sdk/smithy-client/dist/es/index.js","../node_modules/@aws-sdk/smithy-client/dist/es/constants.js","../node_modules/three/build/three.module.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/core-js/internals/export.js","../node_modules/@blueprintjs/core/lib/esm/common/index.js","../node_modules/@blueprintjs/core/lib/esm/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@aws-sdk/protocol-http/dist/es/httpResponse.js","../node_modules/@aws-sdk/protocol-http/dist/es/httpRequest.js","../node_modules/@aws-sdk/protocol-http/dist/es/isValidHostname.js","../node_modules/@aws-sdk/protocol-http/dist/es/index.js","../node_modules/@blueprintjs/core/node_modules/tslib/tslib.es6.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/classnames/index.js","../node_modules/core-js/internals/an-object.js","../node_modules/core-js/internals/fails.js","../node_modules/@blueprintjs/core/lib/esm/common/props.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/reactcss/lib/index.js","../node_modules/core-js/internals/is-pure.js","../node_modules/core-js/internals/global.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/crypto-js/core.js","../node_modules/core-js/internals/is-object.js","../node_modules/core-js/internals/iterate.js","../node_modules/core-js/internals/a-function.js","../node_modules/core-js/internals/well-known-symbol.js","../node_modules/core-js/internals/descriptors.js","../node_modules/core-js/internals/to-length.js","../node_modules/core-js/internals/array-buffer-view-core.js","../node_modules/prop-types/index.js","../node_modules/core-js/internals/object-define-property.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@blueprintjs/core/lib/esm/common/classes.js","../node_modules/axios/index.js","../node_modules/color-space/rgb.js","../node_modules/react-color/lib/components/common/index.js","../node_modules/core-js/internals/has.js","../node_modules/core-js/internals/to-object.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@blueprintjs/core/lib/esm/common/position.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/core-js/internals/get-built-in.js","../node_modules/core-js/internals/function-bind-context.js","../node_modules/@blueprintjs/core/lib/esm/common/errors.js","../node_modules/@aws-sdk/util-hex-encoding/dist/es/index.js","../node_modules/@blueprintjs/core/lib/esm/common/abstractPureComponent2.js","../node_modules/core-js/internals/species-constructor.js","../node_modules/core-js/internals/array-iteration.js","../node_modules/crypto-js/cipher-core.js","../node_modules/core-js/internals/object-get-own-property-descriptor.js","../node_modules/core-js/internals/define-well-known-symbol.js","../node_modules/react-dom/index.js","../node_modules/@blueprintjs/core/lib/esm/common/utils/functionUtils.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/core-js/internals/redefine.js","../node_modules/webpack/buildin/global.js","../node_modules/core-js/internals/require-object-coercible.js","../node_modules/core-js/internals/create-non-enumerable-property.js","../node_modules/core-js/internals/array-method-uses-to-length.js","../node_modules/color-space/xyz.js","../node_modules/@aws-sdk/client-s3/dist/es/models/models_0.js","../node_modules/core-js/internals/to-indexed-object.js","../node_modules/core-js/internals/internal-state.js","../node_modules/core-js/internals/create-html.js","../node_modules/core-js/internals/string-html-forced.js","../node_modules/axios/lib/utils.js","../node_modules/react-color/node_modules/lodash/merge.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/instagram-filters/lib/index.js","../node_modules/core-js/internals/to-integer.js","../node_modules/webpack/buildin/module.js","../node_modules/webpack/buildin/amd-define.js","../node_modules/@blueprintjs/core/lib/esm/common/utils/index.js","../node_modules/@aws-sdk/middleware-retry/node_modules/uuid/dist/esm-browser/rng.js","../node_modules/@aws-sdk/middleware-retry/dist/es/retryMiddleware.js","../node_modules/@aws-sdk/service-error-classification/dist/es/constants.js","../node_modules/@aws-sdk/service-error-classification/dist/es/index.js","../node_modules/@aws-sdk/middleware-retry/node_modules/uuid/dist/esm-browser/regex.js","../node_modules/@aws-sdk/middleware-retry/node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/@aws-sdk/middleware-retry/node_modules/uuid/dist/esm-browser/validate.js","../node_modules/@aws-sdk/middleware-retry/node_modules/uuid/dist/esm-browser/v4.js","../node_modules/@aws-sdk/middleware-retry/dist/es/config.js","../node_modules/@aws-sdk/middleware-retry/dist/es/delayDecider.js","../node_modules/@aws-sdk/middleware-retry/dist/es/constants.js","../node_modules/@aws-sdk/middleware-retry/dist/es/retryDecider.js","../node_modules/@aws-sdk/middleware-retry/dist/es/StandardRetryStrategy.js","../node_modules/@aws-sdk/middleware-retry/dist/es/defaultRetryQuota.js","../node_modules/@aws-sdk/middleware-retry/dist/es/DefaultRateLimiter.js","../node_modules/@aws-sdk/middleware-retry/dist/es/AdaptiveRetryStrategy.js","../node_modules/@aws-sdk/middleware-retry/dist/es/configurations.js","../node_modules/@aws-sdk/middleware-retry/dist/es/index.js","../node_modules/core-js/internals/classof-raw.js","../node_modules/core-js/internals/object-get-prototype-of.js","../node_modules/reactcss/node_modules/lodash/isArray.js","../node_modules/react-color/node_modules/lodash/_root.js","../node_modules/react-color/node_modules/lodash/isObject.js","../node_modules/react-color/node_modules/lodash/isArray.js","../node_modules/@aws-sdk/util-utf8-browser/dist/es/index.js","../node_modules/@aws-sdk/util-utf8-browser/dist/es/whatwgEncodingApi.js","../node_modules/@aws-sdk/util-utf8-browser/dist/es/pureJs.js","../node_modules/@blueprintjs/icons/lib/esm/generated/iconSvgPaths.js","../node_modules/@blueprintjs/core/lib/esm/components/icon/icon.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/three/examples/jsm/libs/inflate.module.min.js","../node_modules/three/examples/jsm/curves/NURBSUtils.js","../node_modules/three/examples/jsm/curves/NURBSCurve.js","../node_modules/three/examples/jsm/loaders/FBXLoader.js","../node_modules/core-js/internals/to-primitive.js","../node_modules/core-js/internals/set-to-string-tag.js","../node_modules/core-js/internals/get-map-iterator.js","../node_modules/reactcss/node_modules/lodash/_root.js","../node_modules/react-color/lib/helpers/color.js","../node_modules/@blueprintjs/core/node_modules/react-popper/lib/esm/Manager.js","../node_modules/@blueprintjs/core/node_modules/react-popper/lib/esm/utils.js","../node_modules/@blueprintjs/core/node_modules/react-popper/lib/esm/Reference.js","../node_modules/@blueprintjs/core/node_modules/react-popper/lib/esm/Popper.js","../node_modules/@blueprintjs/core/lib/esm/components/popover/popperUtils.js","../node_modules/@blueprintjs/core/lib/esm/components/popover/popoverArrow.js","../node_modules/@blueprintjs/core/lib/esm/components/popover/popoverMigrationUtils.js","../node_modules/@blueprintjs/core/lib/esm/components/popover/popover.js","../node_modules/@aws-sdk/middleware-serde/dist/es/serdePlugin.js","../node_modules/@aws-sdk/middleware-serde/dist/es/deserializerMiddleware.js","../node_modules/@aws-sdk/middleware-serde/dist/es/serializerMiddleware.js","../node_modules/@aws-sdk/middleware-serde/dist/es/index.js","../node_modules/core-js/internals/array-method-is-strict.js","../node_modules/core-js/internals/typed-array-constructor.js","../node_modules/reactcss/node_modules/lodash/isObjectLike.js","../node_modules/blueimp-load-image/js/load-image.js","../node_modules/fast-xml-parser/src/util.js","../node_modules/@blueprintjs/core/lib/esm/common/elevation.js","../node_modules/@blueprintjs/core/lib/esm/common/intent.js","../node_modules/@aws-sdk/xml-builder/dist/es/XmlNode.js","../node_modules/@aws-sdk/xml-builder/dist/es/escape-attribute.js","../node_modules/@aws-sdk/xml-builder/dist/es/XmlText.js","../node_modules/@aws-sdk/xml-builder/dist/es/escape-element.js","../node_modules/@aws-sdk/client-s3/dist/es/protocols/Aws_restXml.js","../node_modules/react-use/esm/util.js","../node_modules/@aws-sdk/util-uri-escape/dist/es/escape-uri.js","../node_modules/@aws-sdk/util-uri-escape/dist/es/index.js","../node_modules/screenfull/dist/screenfull.js","../node_modules/crypto-js/index.js","../node_modules/core-js/internals/create-property-descriptor.js","../node_modules/core-js/internals/to-absolute-index.js","../node_modules/core-js/internals/an-instance.js","../node_modules/core-js/internals/object-create.js","../node_modules/core-js/internals/add-to-unscopables.js","../node_modules/pako/lib/utils/common.js","../node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/bucketHostnameUtils.js","../node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/bucketHostname.js","../node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/bucketEndpointMiddleware.js","../node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/configurations.js","../node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/index.js","../node_modules/deepmerge/dist/cjs.js","../node_modules/@aws-sdk/util-base64-browser/dist/es/index.js","../node_modules/@aws-sdk/property-provider/dist/es/ProviderError.js","../node_modules/@aws-sdk/property-provider/dist/es/fromStatic.js","../node_modules/@aws-sdk/property-provider/dist/es/memoize.js","../node_modules/@aws-sdk/property-provider/dist/es/index.js","../node_modules/core-js/internals/object-get-own-property-names.js","../node_modules/core-js/internals/internal-metadata.js","../node_modules/core-js/internals/get-set-iterator.js","../node_modules/core-js/internals/create-property.js","../node_modules/reactcss/node_modules/lodash/_baseGetTag.js","../node_modules/reactcss/node_modules/lodash/_getNative.js","../node_modules/react-color/node_modules/lodash/_getNative.js","../node_modules/react-color/node_modules/lodash/isObjectLike.js","../node_modules/react-color/node_modules/lodash/map.js","../node_modules/crypto-js/evpkdf.js","../node_modules/@blueprintjs/core/lib/esm/common/refs.js","../node_modules/uuid/index.js","../node_modules/convert-units/lib/index.js","../node_modules/@blueprintjs/core/lib/esm/components/slider/handleProps.js","../node_modules/@blueprintjs/core/lib/esm/components/slider/sliderUtils.js","../node_modules/@blueprintjs/core/lib/esm/components/slider/handle.js","../node_modules/@blueprintjs/core/lib/esm/components/slider/multiSlider.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/core-js/internals/object-set-prototype-of.js","../node_modules/core-js/internals/redefine-all.js","../node_modules/core-js/internals/set-species.js","../node_modules/core-js/internals/is-array.js","../node_modules/core-js/internals/string-trim.js","../node_modules/webpack/buildin/amd-options.js","../node_modules/reactcss/node_modules/lodash/isObject.js","../node_modules/react-color/node_modules/lodash/_baseGetTag.js","../node_modules/react-color/node_modules/lodash/isArrayLike.js","../node_modules/crypto-js/enc-base64.js","../node_modules/crypto-js/md5.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/inheritsLoose.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/use-debounce/lib/index.js","../node_modules/@aws-sdk/middleware-host-header/dist/es/index.js","../node_modules/@aws-sdk/fetch-http-handler/dist/es/fetch-http-handler.js","../node_modules/@aws-sdk/querystring-builder/dist/es/index.js","../node_modules/@aws-sdk/fetch-http-handler/dist/es/request-timeout.js","../node_modules/@aws-sdk/fetch-http-handler/dist/es/stream-collector.js","../node_modules/@aws-sdk/fetch-http-handler/dist/es/index.js","../node_modules/@aws-sdk/config-resolver/dist/es/EndpointsConfig.js","../node_modules/@aws-sdk/config-resolver/dist/es/RegionConfig.js","../node_modules/@aws-sdk/config-resolver/dist/es/index.js","../node_modules/@aws-sdk/middleware-user-agent/dist/es/configurations.js","../node_modules/@aws-sdk/middleware-user-agent/dist/es/constants.js","../node_modules/@aws-sdk/middleware-user-agent/dist/es/user-agent-middleware.js","../node_modules/@aws-sdk/middleware-user-agent/dist/es/index.js","../node_modules/process/browser.js","../node_modules/core-js/internals/indexed-object.js","../node_modules/core-js/internals/uid.js","../node_modules/core-js/internals/hidden-keys.js","../node_modules/core-js/internals/array-includes.js","../node_modules/core-js/internals/is-forced.js","../node_modules/core-js/internals/freezing.js","../node_modules/core-js/internals/iterators.js","../node_modules/core-js/internals/get-iterator-method.js","../node_modules/core-js/internals/classof.js","../node_modules/core-js/internals/object-keys.js","../node_modules/core-js/internals/array-species-create.js","../node_modules/core-js/internals/array-method-has-species-support.js","../node_modules/lodash._renative/index.js","../node_modules/define-properties/index.js","../node_modules/reactcss/node_modules/lodash/_Symbol.js","../node_modules/reactcss/node_modules/lodash/keys.js","../node_modules/react-color/node_modules/lodash/eq.js","../node_modules/@blueprintjs/core/lib/esm/common/alignment.js","../node_modules/@blueprintjs/core/lib/esm/components/resize-sensor/resizeSensor.js","../node_modules/react-is/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/pako/index.js","../node_modules/@blueprintjs/core/lib/esm/common/utils/jsUtils.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/styled-components/dist/styled-components.browser.esm.js","../node_modules/@aws-sdk/util-arn-parser/dist/es/index.js","../node_modules/@aws-sdk/signature-v4/dist/es/constants.js","../node_modules/@aws-sdk/signature-v4/dist/es/credentialDerivation.js","../node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalHeaders.js","../node_modules/@aws-sdk/signature-v4/dist/es/getPayloadHash.js","../node_modules/@aws-sdk/signature-v4/dist/es/cloneRequest.js","../node_modules/@aws-sdk/signature-v4/dist/es/prepareRequest.js","../node_modules/@aws-sdk/signature-v4/dist/es/utilDate.js","../node_modules/@aws-sdk/signature-v4/dist/es/SignatureV4.js","../node_modules/@aws-sdk/signature-v4/dist/es/moveHeadersToQuery.js","../node_modules/@aws-sdk/signature-v4/dist/es/hasHeader.js","../node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalQuery.js","../node_modules/@aws-sdk/middleware-signing/dist/es/configurations.js","../node_modules/@aws-sdk/middleware-signing/dist/es/middleware.js","../node_modules/@aws-sdk/middleware-signing/dist/es/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/fflate/esm/browser.js","../node_modules/core-js/internals/collection.js","../node_modules/core-js/internals/object-property-is-enumerable.js","../node_modules/core-js/internals/shared-key.js","../node_modules/core-js/internals/check-correctness-of-iteration.js","../node_modules/core-js/internals/inherit-if-required.js","../node_modules/core-js/modules/es.string.iterator.js","../node_modules/core-js/internals/string-multibyte.js","../node_modules/core-js/internals/get-iterator.js","../node_modules/core-js/modules/es.array.iterator.js","../node_modules/core-js/internals/array-reduce.js","../node_modules/core-js/internals/math-expm1.js","../node_modules/core-js/internals/whitespaces.js","../node_modules/core-js/internals/object-prototype-accessors-forced.js","../node_modules/core-js/internals/regexp-flags.js","../node_modules/core-js/internals/regexp-exec.js","../node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","../node_modules/core-js/internals/regexp-exec-abstract.js","../node_modules/lodash.isobject/index.js","../node_modules/color-space/hsl.js","../node_modules/color-space/ypbpr.js","../node_modules/reactcss/node_modules/lodash/isArrayLike.js","../node_modules/reactcss/node_modules/lodash/_ListCache.js","../node_modules/reactcss/node_modules/lodash/_assocIndexOf.js","../node_modules/reactcss/node_modules/lodash/_nativeCreate.js","../node_modules/reactcss/node_modules/lodash/_getMapData.js","../node_modules/reactcss/node_modules/lodash/_getTag.js","../node_modules/reactcss/node_modules/lodash/_toKey.js","../node_modules/reactcss/node_modules/lodash/_copyObject.js","../node_modules/react-color/node_modules/lodash/_ListCache.js","../node_modules/react-color/node_modules/lodash/_assocIndexOf.js","../node_modules/react-color/node_modules/lodash/_Symbol.js","../node_modules/react-color/node_modules/lodash/_nativeCreate.js","../node_modules/react-color/node_modules/lodash/_getMapData.js","../node_modules/react-color/node_modules/lodash/identity.js","../node_modules/react-color/node_modules/lodash/isSymbol.js","../node_modules/react-color/node_modules/lodash/_toKey.js","../node_modules/blueimp-load-image/js/load-image-meta.js","../node_modules/fast-xml-parser/src/xmlstr2xmlnode.js","../node_modules/crypto-js/x64-core.js","../node_modules/@blueprintjs/core/lib/esm/components/tooltip/tooltip.js","../node_modules/@blueprintjs/core/lib/esm/components/overlay/overlay.js","../node_modules/@blueprintjs/core/lib/esm/components/portal/portal.js","../node_modules/@blueprintjs/core/lib/esm/components/spinner/spinner.js","../node_modules/@blueprintjs/core/lib/esm/components/html/html.js","../node_modules/@blueprintjs/core/lib/esm/components/menu/menu.js","../node_modules/@blueprintjs/core/lib/esm/components/menu/menuDivider.js","../node_modules/@blueprintjs/core/lib/esm/components/menu/menuItem.js","../node_modules/@blueprintjs/core/lib/esm/components/text/text.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/color-space/index.js","../node_modules/react-use/esm/useEffectOnce.js","../node_modules/@aws-sdk/middleware-content-length/dist/es/index.js","../node_modules/@aws-sdk/is-array-buffer/dist/es/index.js","../node_modules/@aws-crypto/sha256-browser/build/index.js","../node_modules/@aws-crypto/crc32/build/index.js","../node_modules/@aws-sdk/util-body-length-browser/dist/es/index.js","../node_modules/@aws-sdk/util-user-agent-browser/dist/es/index.js","../node_modules/@aws-sdk/invalid-dependency/dist/es/invalidFunction.js","../node_modules/@aws-sdk/invalid-dependency/dist/es/invalidProvider.js","../node_modules/@aws-sdk/invalid-dependency/dist/es/index.js","../node_modules/@aws-sdk/middleware-logger/dist/es/loggerMiddleware.js","../node_modules/@aws-sdk/middleware-logger/dist/es/index.js","../node_modules/@aws-sdk/url-parser/dist/es/index.js","../node_modules/@aws-sdk/querystring-parser/dist/es/index.js","../node_modules/react-transition-group/index.js","../node_modules/@paypal/react-paypal-js/dist/esm/react-paypal-js.js","../node_modules/blueimp-load-image/js/index.js","../node_modules/core-js/internals/document-create-element.js","../node_modules/core-js/internals/set-global.js","../node_modules/core-js/internals/inspect-source.js","../node_modules/core-js/internals/shared.js","../node_modules/core-js/internals/own-keys.js","../node_modules/core-js/internals/enum-bug-keys.js","../node_modules/core-js/internals/object-get-own-property-symbols.js","../node_modules/core-js/internals/is-array-iterator-method.js","../node_modules/core-js/internals/native-symbol.js","../node_modules/core-js/internals/to-string-tag-support.js","../node_modules/core-js/internals/define-iterator.js","../node_modules/core-js/internals/correct-prototype-getter.js","../node_modules/core-js/modules/es.object.to-string.js","../node_modules/core-js/internals/engine-v8-version.js","../node_modules/core-js/internals/engine-user-agent.js","../node_modules/object-assign/index.js","../node_modules/core-js/internals/array-fill.js","../node_modules/core-js/internals/array-buffer.js","../node_modules/core-js/internals/math-sign.js","../node_modules/core-js/internals/string-repeat.js","../node_modules/core-js/internals/task.js","../node_modules/core-js/internals/is-regexp.js","../node_modules/core-js/internals/regexp-sticky-helpers.js","../node_modules/core-js/internals/not-a-regexp.js","../node_modules/core-js/internals/correct-is-regexp-logic.js","../node_modules/core-js/internals/advance-string-index.js","../node_modules/core-js/internals/string-trim-forced.js","../node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","../node_modules/lodash._objecttypes/index.js","../node_modules/lodash._setbinddata/index.js","../node_modules/pako/lib/zlib/messages.js","../node_modules/color-space/hsv.js","../node_modules/mumath/mod.js","../node_modules/mumath/clamp.js","../node_modules/color-space/lchuv.js","../node_modules/reactcss/node_modules/lodash/forOwn.js","../node_modules/reactcss/node_modules/lodash/isBuffer.js","../node_modules/reactcss/node_modules/lodash/isLength.js","../node_modules/reactcss/node_modules/lodash/_baseUnary.js","../node_modules/reactcss/node_modules/lodash/_nodeUtil.js","../node_modules/reactcss/node_modules/lodash/_isPrototype.js","../node_modules/reactcss/node_modules/lodash/_getPrototype.js","../node_modules/reactcss/node_modules/lodash/_Stack.js","../node_modules/reactcss/node_modules/lodash/eq.js","../node_modules/reactcss/node_modules/lodash/_Map.js","../node_modules/reactcss/node_modules/lodash/_MapCache.js","../node_modules/reactcss/node_modules/lodash/_getSymbols.js","../node_modules/reactcss/node_modules/lodash/_isKey.js","../node_modules/reactcss/node_modules/lodash/isSymbol.js","../node_modules/reactcss/node_modules/lodash/_cloneArrayBuffer.js","../node_modules/react-color/lib/components/common/Checkboard.js","../node_modules/react-color/node_modules/lodash/_Stack.js","../node_modules/react-color/node_modules/lodash/_Map.js","../node_modules/react-color/node_modules/lodash/isFunction.js","../node_modules/react-color/node_modules/lodash/_MapCache.js","../node_modules/react-color/node_modules/lodash/_baseAssignValue.js","../node_modules/react-color/node_modules/lodash/_isPrototype.js","../node_modules/react-color/node_modules/lodash/isArguments.js","../node_modules/react-color/node_modules/lodash/isLength.js","../node_modules/react-color/node_modules/lodash/isBuffer.js","../node_modules/react-color/node_modules/lodash/isTypedArray.js","../node_modules/react-color/node_modules/lodash/_isIndex.js","../node_modules/react-color/node_modules/lodash/keys.js","../node_modules/react-color/node_modules/lodash/_isKey.js","../node_modules/@aws-sdk/util-locate-window/dist/es/index.js","../node_modules/crypto-js/sha1.js","../node_modules/crypto-js/hmac.js","../node_modules/warning/warning.js","../node_modules/create-react-context/lib/index.js","../node_modules/popper.js/dist/esm/popper.js","../node_modules/stylis/stylis.min.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/path-to-regexp/index.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/core-js/modules/es.map.js","../node_modules/core-js/internals/ie8-dom-define.js","../node_modules/core-js/internals/shared-store.js","../node_modules/core-js/internals/native-weak-map.js","../node_modules/core-js/internals/copy-constructor-properties.js","../node_modules/core-js/internals/path.js","../node_modules/core-js/internals/object-keys-internal.js","../node_modules/core-js/internals/use-symbol-as-uid.js","../node_modules/core-js/internals/call-with-safe-iteration-closing.js","../node_modules/core-js/internals/a-possible-prototype.js","../node_modules/core-js/internals/collection-strong.js","../node_modules/core-js/internals/object-define-properties.js","../node_modules/core-js/internals/html.js","../node_modules/core-js/internals/create-iterator-constructor.js","../node_modules/core-js/internals/iterators-core.js","../node_modules/core-js/modules/es.set.js","../node_modules/core-js/internals/collection-delete-all.js","../node_modules/core-js/internals/collection-from.js","../node_modules/core-js/internals/collection-of.js","../node_modules/core-js/modules/web.dom-collections.iterator.js","../node_modules/core-js/internals/dom-iterables.js","../node_modules/react-app-polyfill/ie11.js","../node_modules/core-js/modules/es.symbol.js","../node_modules/core-js/internals/object-get-own-property-names-external.js","../node_modules/core-js/internals/well-known-symbol-wrapped.js","../node_modules/core-js/modules/es.symbol.description.js","../node_modules/core-js/modules/es.symbol.async-iterator.js","../node_modules/core-js/modules/es.symbol.has-instance.js","../node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","../node_modules/core-js/modules/es.symbol.iterator.js","../node_modules/core-js/modules/es.symbol.match.js","../node_modules/core-js/modules/es.symbol.replace.js","../node_modules/core-js/modules/es.symbol.search.js","../node_modules/core-js/modules/es.symbol.species.js","../node_modules/core-js/modules/es.symbol.split.js","../node_modules/core-js/modules/es.symbol.to-primitive.js","../node_modules/core-js/modules/es.symbol.to-string-tag.js","../node_modules/core-js/modules/es.symbol.unscopables.js","../node_modules/core-js/modules/es.array.concat.js","../node_modules/core-js/modules/es.array.from.js","../node_modules/core-js/internals/array-from.js","../node_modules/core-js/modules/es.json.to-string-tag.js","../node_modules/core-js/modules/es.math.to-string-tag.js","../node_modules/promise/lib/core.js","../node_modules/core-js/internals/array-copy-within.js","../node_modules/core-js/internals/flatten-into-array.js","../node_modules/core-js/internals/array-for-each.js","../node_modules/core-js/internals/array-last-index-of.js","../node_modules/core-js/internals/array-buffer-native.js","../node_modules/core-js/internals/to-index.js","../node_modules/core-js/internals/math-log1p.js","../node_modules/core-js/internals/is-integer.js","../node_modules/core-js/internals/object-assign.js","../node_modules/core-js/internals/object-to-array.js","../node_modules/core-js/internals/same-value.js","../node_modules/core-js/internals/native-promise-constructor.js","../node_modules/core-js/internals/engine-is-ios.js","../node_modules/core-js/internals/microtask.js","../node_modules/core-js/internals/promise-resolve.js","../node_modules/core-js/internals/new-promise-capability.js","../node_modules/core-js/modules/es.regexp.exec.js","../node_modules/core-js/internals/string-pad.js","../node_modules/core-js/internals/string-pad-webkit-bug.js","../node_modules/core-js/internals/to-offset.js","../node_modules/core-js/internals/typed-array-from.js","../node_modules/core-js/internals/collection-weak.js","../node_modules/core-js/internals/native-url.js","../node_modules/core-js/modules/web.url-search-params.js","../node_modules/uuid/lib/rng-browser.js","../node_modules/uuid/lib/bytesToUuid.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/lodash.keys/index.js","../node_modules/lodash._basecreatecallback/index.js","../node_modules/lodash._basecreate/index.js","../node_modules/lodash.noop/index.js","../node_modules/lodash._slice/index.js","../node_modules/pako/lib/zlib/adler32.js","../node_modules/pako/lib/zlib/crc32.js","../node_modules/pako/lib/utils/strings.js","../node_modules/pako/lib/zlib/zstream.js","../node_modules/pako/lib/zlib/constants.js","../node_modules/@blueprintjs/core/lib/esm/common/keys.js","../node_modules/@blueprintjs/core/lib/esm/common/utils/compareUtils.js","../node_modules/@blueprintjs/core/lib/esm/common/utils/domUtils.js","../node_modules/@blueprintjs/core/lib/esm/common/utils/reactUtils.js","../node_modules/@blueprintjs/core/lib/esm/common/utils/safeInvokeMember.js","../node_modules/@blueprintjs/core/lib/esm/components/index.js","../node_modules/react-transition-group/Transition.js","../node_modules/react-transition-group/utils/PropTypes.js","../node_modules/react-transition-group/TransitionGroup.js","../node_modules/object-keys/index.js","../node_modules/object-keys/isArguments.js","../node_modules/es-abstract/helpers/callBind.js","../node_modules/function-bind/index.js","../node_modules/has-symbols/index.js","../node_modules/object-is/implementation.js","../node_modules/object-is/polyfill.js","../node_modules/regexp.prototype.flags/implementation.js","../node_modules/regexp.prototype.flags/polyfill.js","../node_modules/@blueprintjs/core/lib/esm/components/button/buttonGroup.js","../node_modules/@blueprintjs/core/lib/esm/components/card/card.js","../node_modules/@blueprintjs/core/lib/esm/components/forms/controls.js","../node_modules/@blueprintjs/core/lib/esm/components/forms/formGroup.js","../node_modules/@blueprintjs/core/lib/esm/components/forms/inputGroup.js","../node_modules/@blueprintjs/core/lib/esm/components/hotkeys/index.js","../node_modules/@blueprintjs/core/lib/esm/components/slider/slider.js","../node_modules/color-space/hwb.js","../node_modules/color-space/xyy.js","../node_modules/color-space/yuv.js","../node_modules/color-space/ucs.js","../node_modules/color-space/lab.js","../node_modules/color-space/luv.js","../node_modules/hsluv/hsluv.js","../node_modules/instagram-filters/lib/utils/pipe.js","../node_modules/reactcss/node_modules/lodash/_freeGlobal.js","../node_modules/reactcss/node_modules/lodash/_baseForOwn.js","../node_modules/reactcss/node_modules/lodash/_arrayLikeKeys.js","../node_modules/reactcss/node_modules/lodash/isArguments.js","../node_modules/reactcss/node_modules/lodash/_isIndex.js","../node_modules/reactcss/node_modules/lodash/isTypedArray.js","../node_modules/reactcss/node_modules/lodash/_overArg.js","../node_modules/reactcss/node_modules/lodash/isFunction.js","../node_modules/reactcss/node_modules/lodash/identity.js","../node_modules/reactcss/node_modules/lodash/_arrayMap.js","../node_modules/reactcss/node_modules/lodash/_toSource.js","../node_modules/reactcss/node_modules/lodash/_baseIsEqual.js","../node_modules/reactcss/node_modules/lodash/_equalArrays.js","../node_modules/reactcss/node_modules/lodash/_Uint8Array.js","../node_modules/reactcss/node_modules/lodash/_getAllKeys.js","../node_modules/reactcss/node_modules/lodash/_baseGetAllKeys.js","../node_modules/reactcss/node_modules/lodash/_arrayPush.js","../node_modules/reactcss/node_modules/lodash/stubArray.js","../node_modules/reactcss/node_modules/lodash/_isStrictComparable.js","../node_modules/reactcss/node_modules/lodash/_matchesStrictComparable.js","../node_modules/reactcss/node_modules/lodash/_baseGet.js","../node_modules/reactcss/node_modules/lodash/_castPath.js","../node_modules/reactcss/node_modules/lodash/_assignValue.js","../node_modules/reactcss/node_modules/lodash/_baseAssignValue.js","../node_modules/reactcss/node_modules/lodash/keysIn.js","../node_modules/reactcss/node_modules/lodash/_getSymbolsIn.js","../node_modules/react-color/node_modules/lodash/_freeGlobal.js","../node_modules/react-color/node_modules/lodash/_toSource.js","../node_modules/react-color/node_modules/lodash/_assignMergeValue.js","../node_modules/react-color/node_modules/lodash/_defineProperty.js","../node_modules/react-color/node_modules/lodash/_baseFor.js","../node_modules/react-color/node_modules/lodash/_Uint8Array.js","../node_modules/react-color/node_modules/lodash/_getPrototype.js","../node_modules/react-color/node_modules/lodash/_overArg.js","../node_modules/react-color/node_modules/lodash/_safeGet.js","../node_modules/react-color/node_modules/lodash/keysIn.js","../node_modules/react-color/node_modules/lodash/_arrayLikeKeys.js","../node_modules/react-color/node_modules/lodash/debounce.js","../node_modules/react-color/lib/components/common/ColorWrap.js","../node_modules/react-color/node_modules/lodash/_baseEach.js","../node_modules/react-color/node_modules/lodash/_arrayMap.js","../node_modules/react-color/node_modules/lodash/_baseIsEqual.js","../node_modules/react-color/node_modules/lodash/_equalArrays.js","../node_modules/react-color/node_modules/lodash/_isStrictComparable.js","../node_modules/react-color/node_modules/lodash/_matchesStrictComparable.js","../node_modules/react-color/node_modules/lodash/_baseGet.js","../node_modules/react-color/node_modules/lodash/_castPath.js","../node_modules/material-colors/dist/colors.es2015.js","../node_modules/blueimp-load-image/js/load-image-scale.js","../node_modules/blueimp-load-image/js/load-image-exif.js","../node_modules/blueimp-load-image/js/load-image-iptc.js","../node_modules/@aws-sdk/smithy-client/dist/es/emitWarningIfUnsupportedVersion.js","../node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js","../node_modules/@aws-crypto/sha256-browser/build/isEmptyData.js","../node_modules/@aws-crypto/sha256-browser/build/constants.js","../node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js","../node_modules/@aws-crypto/sha256-js/node_modules/tslib/tslib.es6.js","../node_modules/@aws-crypto/sha256-js/build/constants.js","../node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/client-s3/node_modules/entities/lib/decode.js","../node_modules/@aws-sdk/client-s3/node_modules/entities/lib/encode.js","../node_modules/use-debounce/lib/useDebouncedCallback.js","../node_modules/crypto-js/sha256.js","../node_modules/crypto-js/sha512.js","../node_modules/@blueprintjs/core/lib/esm/components/button/abstractButton.js","../node_modules/@blueprintjs/core/lib/esm/components/button/buttons.js","../node_modules/seedrandom/index.js","../node_modules/@blueprintjs/core/lib/esm/components/context-menu/contextMenu.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/deep-equal/index.js","../node_modules/react-delay-render/lib/index.js","../node_modules/react-intersection-observer/react-intersection-observer.esm.js","../node_modules/react-circular-slider-responsive/index.js","../node_modules/react-color/lib/index.js","../node_modules/react-localization/lib/LocalizedStrings.js","../node_modules/stylis-rule-sheet/index.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/jspdf/dist/jspdf.es.min.js","../node_modules/bowser/es5.js","../node_modules/fast-xml-parser/src/parser.js","../node_modules/@aws-sdk/client-s3/node_modules/entities/lib/index.js","../node_modules/react-google-login/dist/google-login.js","../node_modules/react-facebook-login/dist/facebook-login-with-button.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/react-router/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/react-router/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/react-router/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/react-router/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-router/esm/react-router.js","../node_modules/react-router-dom/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/react-router-dom/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-router-dom/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/react-router-dom/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-router-dom/esm/react-router-dom.js","../node_modules/@emotion/memoize/dist/memoize.browser.esm.js","../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","../node_modules/is-what/dist/index.esm.js","../node_modules/merge-anything/dist/index.esm.js","../node_modules/raf/index.js","../node_modules/react-app-polyfill/ie9.js","../node_modules/core-js/internals/object-to-string.js","../node_modules/core-js/modules/esnext.map.delete-all.js","../node_modules/core-js/modules/esnext.map.every.js","../node_modules/core-js/modules/esnext.map.filter.js","../node_modules/core-js/modules/esnext.map.find.js","../node_modules/core-js/modules/esnext.map.find-key.js","../node_modules/core-js/modules/esnext.map.from.js","../node_modules/core-js/modules/esnext.map.group-by.js","../node_modules/core-js/modules/esnext.map.includes.js","../node_modules/core-js/internals/same-value-zero.js","../node_modules/core-js/modules/esnext.map.key-by.js","../node_modules/core-js/modules/esnext.map.key-of.js","../node_modules/core-js/modules/esnext.map.map-keys.js","../node_modules/core-js/modules/esnext.map.map-values.js","../node_modules/core-js/modules/esnext.map.merge.js","../node_modules/core-js/modules/esnext.map.of.js","../node_modules/core-js/modules/esnext.map.reduce.js","../node_modules/core-js/modules/esnext.map.some.js","../node_modules/core-js/modules/esnext.map.update.js","../node_modules/core-js/modules/esnext.set.add-all.js","../node_modules/core-js/internals/collection-add-all.js","../node_modules/core-js/modules/esnext.set.delete-all.js","../node_modules/core-js/modules/esnext.set.difference.js","../node_modules/core-js/modules/esnext.set.every.js","../node_modules/core-js/modules/esnext.set.filter.js","../node_modules/core-js/modules/esnext.set.find.js","../node_modules/core-js/modules/esnext.set.from.js","../node_modules/core-js/modules/esnext.set.intersection.js","../node_modules/core-js/modules/esnext.set.is-disjoint-from.js","../node_modules/core-js/modules/esnext.set.is-subset-of.js","../node_modules/core-js/modules/esnext.set.is-superset-of.js","../node_modules/core-js/modules/esnext.set.join.js","../node_modules/core-js/modules/esnext.set.map.js","../node_modules/core-js/modules/esnext.set.of.js","../node_modules/core-js/modules/esnext.set.reduce.js","../node_modules/core-js/modules/esnext.set.some.js","../node_modules/core-js/modules/esnext.set.symmetric-difference.js","../node_modules/core-js/modules/esnext.set.union.js","../node_modules/core-js/modules/esnext.symbol.dispose.js","../node_modules/core-js/modules/esnext.symbol.observable.js","../node_modules/core-js/modules/esnext.symbol.pattern-match.js","../node_modules/promise/lib/rejection-tracking.js","../node_modules/asap/browser-raw.js","../node_modules/promise/lib/es6-extensions.js","../node_modules/whatwg-fetch/fetch.js","../node_modules/performance-now/lib/performance-now.js","../node_modules/react-app-polyfill/stable.js","../node_modules/core-js/modules/es.array.copy-within.js","../node_modules/core-js/modules/es.array.every.js","../node_modules/core-js/modules/es.array.fill.js","../node_modules/core-js/modules/es.array.filter.js","../node_modules/core-js/modules/es.array.find.js","../node_modules/core-js/modules/es.array.find-index.js","../node_modules/core-js/modules/es.array.flat.js","../node_modules/core-js/modules/es.array.flat-map.js","../node_modules/core-js/modules/es.array.for-each.js","../node_modules/core-js/modules/es.array.includes.js","../node_modules/core-js/modules/es.array.index-of.js","../node_modules/core-js/modules/es.array.join.js","../node_modules/core-js/modules/es.array.last-index-of.js","../node_modules/core-js/modules/es.array.map.js","../node_modules/core-js/modules/es.array.of.js","../node_modules/core-js/modules/es.array.reduce.js","../node_modules/core-js/modules/es.array.reduce-right.js","../node_modules/core-js/modules/es.array.reverse.js","../node_modules/core-js/modules/es.array.slice.js","../node_modules/core-js/modules/es.array.some.js","../node_modules/core-js/modules/es.array.sort.js","../node_modules/core-js/modules/es.array.species.js","../node_modules/core-js/modules/es.array.splice.js","../node_modules/core-js/modules/es.array.unscopables.flat.js","../node_modules/core-js/modules/es.array.unscopables.flat-map.js","../node_modules/core-js/modules/es.array-buffer.constructor.js","../node_modules/core-js/internals/ieee754.js","../node_modules/core-js/modules/es.array-buffer.slice.js","../node_modules/core-js/modules/es.date.to-primitive.js","../node_modules/core-js/internals/date-to-primitive.js","../node_modules/core-js/modules/es.function.has-instance.js","../node_modules/core-js/modules/es.function.name.js","../node_modules/core-js/modules/es.math.acosh.js","../node_modules/core-js/modules/es.math.asinh.js","../node_modules/core-js/modules/es.math.atanh.js","../node_modules/core-js/modules/es.math.cbrt.js","../node_modules/core-js/modules/es.math.clz32.js","../node_modules/core-js/modules/es.math.cosh.js","../node_modules/core-js/modules/es.math.expm1.js","../node_modules/core-js/modules/es.math.fround.js","../node_modules/core-js/internals/math-fround.js","../node_modules/core-js/modules/es.math.hypot.js","../node_modules/core-js/modules/es.math.imul.js","../node_modules/core-js/modules/es.math.log10.js","../node_modules/core-js/modules/es.math.log1p.js","../node_modules/core-js/modules/es.math.log2.js","../node_modules/core-js/modules/es.math.sign.js","../node_modules/core-js/modules/es.math.sinh.js","../node_modules/core-js/modules/es.math.tanh.js","../node_modules/core-js/modules/es.math.trunc.js","../node_modules/core-js/modules/es.number.constructor.js","../node_modules/core-js/modules/es.number.epsilon.js","../node_modules/core-js/modules/es.number.is-finite.js","../node_modules/core-js/internals/number-is-finite.js","../node_modules/core-js/modules/es.number.is-integer.js","../node_modules/core-js/modules/es.number.is-nan.js","../node_modules/core-js/modules/es.number.is-safe-integer.js","../node_modules/core-js/modules/es.number.max-safe-integer.js","../node_modules/core-js/modules/es.number.min-safe-integer.js","../node_modules/core-js/modules/es.number.parse-float.js","../node_modules/core-js/internals/number-parse-float.js","../node_modules/core-js/modules/es.number.parse-int.js","../node_modules/core-js/internals/number-parse-int.js","../node_modules/core-js/modules/es.number.to-fixed.js","../node_modules/core-js/internals/this-number-value.js","../node_modules/core-js/modules/es.object.assign.js","../node_modules/core-js/modules/es.object.define-getter.js","../node_modules/core-js/modules/es.object.define-setter.js","../node_modules/core-js/modules/es.object.entries.js","../node_modules/core-js/modules/es.object.freeze.js","../node_modules/core-js/modules/es.object.from-entries.js","../node_modules/core-js/modules/es.object.get-own-property-descriptor.js","../node_modules/core-js/modules/es.object.get-own-property-descriptors.js","../node_modules/core-js/modules/es.object.get-own-property-names.js","../node_modules/core-js/modules/es.object.get-prototype-of.js","../node_modules/core-js/modules/es.object.is.js","../node_modules/core-js/modules/es.object.is-extensible.js","../node_modules/core-js/modules/es.object.is-frozen.js","../node_modules/core-js/modules/es.object.is-sealed.js","../node_modules/core-js/modules/es.object.keys.js","../node_modules/core-js/modules/es.object.lookup-getter.js","../node_modules/core-js/modules/es.object.lookup-setter.js","../node_modules/core-js/modules/es.object.prevent-extensions.js","../node_modules/core-js/modules/es.object.seal.js","../node_modules/core-js/modules/es.object.values.js","../node_modules/core-js/modules/es.promise.js","../node_modules/core-js/internals/host-report-errors.js","../node_modules/core-js/internals/perform.js","../node_modules/core-js/modules/es.promise.finally.js","../node_modules/core-js/modules/es.reflect.apply.js","../node_modules/core-js/modules/es.reflect.construct.js","../node_modules/core-js/internals/function-bind.js","../node_modules/core-js/modules/es.reflect.define-property.js","../node_modules/core-js/modules/es.reflect.delete-property.js","../node_modules/core-js/modules/es.reflect.get.js","../node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js","../node_modules/core-js/modules/es.reflect.get-prototype-of.js","../node_modules/core-js/modules/es.reflect.has.js","../node_modules/core-js/modules/es.reflect.is-extensible.js","../node_modules/core-js/modules/es.reflect.own-keys.js","../node_modules/core-js/modules/es.reflect.prevent-extensions.js","../node_modules/core-js/modules/es.reflect.set.js","../node_modules/core-js/modules/es.reflect.set-prototype-of.js","../node_modules/core-js/modules/es.regexp.constructor.js","../node_modules/core-js/modules/es.regexp.flags.js","../node_modules/core-js/modules/es.regexp.to-string.js","../node_modules/core-js/modules/es.string.code-point-at.js","../node_modules/core-js/modules/es.string.ends-with.js","../node_modules/core-js/modules/es.string.from-code-point.js","../node_modules/core-js/modules/es.string.includes.js","../node_modules/core-js/modules/es.string.match.js","../node_modules/core-js/modules/es.string.pad-end.js","../node_modules/core-js/modules/es.string.pad-start.js","../node_modules/core-js/modules/es.string.raw.js","../node_modules/core-js/modules/es.string.repeat.js","../node_modules/core-js/modules/es.string.replace.js","../node_modules/core-js/modules/es.string.search.js","../node_modules/core-js/modules/es.string.split.js","../node_modules/core-js/modules/es.string.starts-with.js","../node_modules/core-js/modules/es.string.trim.js","../node_modules/core-js/modules/es.string.trim-end.js","../node_modules/core-js/modules/es.string.trim-start.js","../node_modules/core-js/modules/es.string.anchor.js","../node_modules/core-js/modules/es.string.big.js","../node_modules/core-js/modules/es.string.blink.js","../node_modules/core-js/modules/es.string.bold.js","../node_modules/core-js/modules/es.string.fixed.js","../node_modules/core-js/modules/es.string.fontcolor.js","../node_modules/core-js/modules/es.string.fontsize.js","../node_modules/core-js/modules/es.string.italics.js","../node_modules/core-js/modules/es.string.link.js","../node_modules/core-js/modules/es.string.small.js","../node_modules/core-js/modules/es.string.strike.js","../node_modules/core-js/modules/es.string.sub.js","../node_modules/core-js/modules/es.string.sup.js","../node_modules/core-js/modules/es.typed-array.float32-array.js","../node_modules/core-js/internals/to-positive-integer.js","../node_modules/core-js/modules/es.typed-array.float64-array.js","../node_modules/core-js/modules/es.typed-array.int8-array.js","../node_modules/core-js/modules/es.typed-array.int16-array.js","../node_modules/core-js/modules/es.typed-array.int32-array.js","../node_modules/core-js/modules/es.typed-array.uint8-array.js","../node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js","../node_modules/core-js/modules/es.typed-array.uint16-array.js","../node_modules/core-js/modules/es.typed-array.uint32-array.js","../node_modules/core-js/modules/es.typed-array.copy-within.js","../node_modules/core-js/modules/es.typed-array.every.js","../node_modules/core-js/modules/es.typed-array.fill.js","../node_modules/core-js/modules/es.typed-array.filter.js","../node_modules/core-js/modules/es.typed-array.find.js","../node_modules/core-js/modules/es.typed-array.find-index.js","../node_modules/core-js/modules/es.typed-array.for-each.js","../node_modules/core-js/modules/es.typed-array.from.js","../node_modules/core-js/modules/es.typed-array.includes.js","../node_modules/core-js/modules/es.typed-array.index-of.js","../node_modules/core-js/modules/es.typed-array.iterator.js","../node_modules/core-js/modules/es.typed-array.join.js","../node_modules/core-js/modules/es.typed-array.last-index-of.js","../node_modules/core-js/modules/es.typed-array.map.js","../node_modules/core-js/modules/es.typed-array.of.js","../node_modules/core-js/modules/es.typed-array.reduce.js","../node_modules/core-js/modules/es.typed-array.reduce-right.js","../node_modules/core-js/modules/es.typed-array.reverse.js","../node_modules/core-js/modules/es.typed-array.set.js","../node_modules/core-js/modules/es.typed-array.slice.js","../node_modules/core-js/modules/es.typed-array.some.js","../node_modules/core-js/modules/es.typed-array.sort.js","../node_modules/core-js/modules/es.typed-array.subarray.js","../node_modules/core-js/modules/es.typed-array.to-locale-string.js","../node_modules/core-js/modules/es.typed-array.to-string.js","../node_modules/core-js/modules/es.weak-map.js","../node_modules/core-js/modules/es.weak-set.js","../node_modules/core-js/modules/web.dom-collections.for-each.js","../node_modules/core-js/modules/web.immediate.js","../node_modules/core-js/modules/web.queue-microtask.js","../node_modules/core-js/modules/web.url.js","../node_modules/core-js/internals/string-punycode-to-ascii.js","../node_modules/core-js/modules/web.url.to-json.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/uuid/v1.js","../node_modules/uuid/v4.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/lodash._shimkeys/index.js","../node_modules/lodash.foreach/index.js","../node_modules/lodash.bind/index.js","../node_modules/lodash._createwrapper/index.js","../node_modules/lodash._basebind/index.js","../node_modules/lodash._basecreatewrapper/index.js","../node_modules/lodash.isfunction/index.js","../node_modules/lodash.identity/index.js","../node_modules/lodash.support/index.js","../node_modules/lodash.forown/index.js","../node_modules/convert-units/lib/definitions/length.js","../node_modules/convert-units/lib/definitions/area.js","../node_modules/convert-units/lib/definitions/mass.js","../node_modules/convert-units/lib/definitions/volume.js","../node_modules/convert-units/lib/definitions/each.js","../node_modules/convert-units/lib/definitions/temperature.js","../node_modules/convert-units/lib/definitions/time.js","../node_modules/convert-units/lib/definitions/digital.js","../node_modules/convert-units/lib/definitions/partsPer.js","../node_modules/convert-units/lib/definitions/speed.js","../node_modules/convert-units/lib/definitions/pace.js","../node_modules/convert-units/lib/definitions/pressure.js","../node_modules/convert-units/lib/definitions/current.js","../node_modules/convert-units/lib/definitions/voltage.js","../node_modules/convert-units/lib/definitions/power.js","../node_modules/convert-units/lib/definitions/reactivePower.js","../node_modules/convert-units/lib/definitions/apparentPower.js","../node_modules/convert-units/lib/definitions/energy.js","../node_modules/convert-units/lib/definitions/reactiveEnergy.js","../node_modules/convert-units/lib/definitions/volumeFlowRate.js","../node_modules/convert-units/lib/definitions/illuminance.js","../node_modules/convert-units/lib/definitions/frequency.js","../node_modules/convert-units/lib/definitions/angle.js","../node_modules/pako/lib/deflate.js","../node_modules/pako/lib/zlib/deflate.js","../node_modules/pako/lib/zlib/trees.js","../node_modules/pako/lib/inflate.js","../node_modules/pako/lib/zlib/inflate.js","../node_modules/pako/lib/zlib/inffast.js","../node_modules/pako/lib/zlib/inftrees.js","../node_modules/pako/lib/zlib/gzheader.js","../node_modules/seedrandom/lib/alea.js","../node_modules/seedrandom/lib/xor128.js","../node_modules/seedrandom/lib/xorwow.js","../node_modules/seedrandom/lib/xorshift7.js","../node_modules/seedrandom/lib/xor4096.js","../node_modules/seedrandom/lib/tychei.js","../node_modules/seedrandom/seedrandom.js","../node_modules/@blueprintjs/core/lib/esm/common/configureDom4.js","../node_modules/dom4/build/dom4.max.js","../node_modules/create-react-context/lib/implementation.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/gud/index.js","../node_modules/react-transition-group/CSSTransition.js","../node_modules/dom-helpers/class/addClass.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/dom-helpers/class/hasClass.js","../node_modules/dom-helpers/class/removeClass.js","../node_modules/react-transition-group/ReplaceTransition.js","../node_modules/react-transition-group/utils/ChildMapping.js","../node_modules/object-keys/implementation.js","../node_modules/is-arguments/index.js","../node_modules/object-is/index.js","../node_modules/function-bind/implementation.js","../node_modules/es-abstract/GetIntrinsic.js","../node_modules/has-symbols/shams.js","../node_modules/object-is/shim.js","../node_modules/is-regex/index.js","../node_modules/regexp.prototype.flags/index.js","../node_modules/regexp.prototype.flags/shim.js","../node_modules/is-date-object/index.js","../node_modules/color-space/hsi.js","../node_modules/color-space/cmyk.js","../node_modules/color-space/cmy.js","../node_modules/color-space/yiq.js","../node_modules/color-space/ydbdr.js","../node_modules/color-space/ycgco.js","../node_modules/color-space/ycbcr.js","../node_modules/color-space/xvycc.js","../node_modules/color-space/yccbccrc.js","../node_modules/color-space/uvw.js","../node_modules/color-space/jpeg.js","../node_modules/color-space/labh.js","../node_modules/color-space/lms.js","../node_modules/color-space/lchab.js","../node_modules/color-space/hsluv.js","../node_modules/color-space/hpluv.js","../node_modules/color-space/cubehelix.js","../node_modules/color-space/coloroid.js","../node_modules/color-space/hcg.js","../node_modules/color-space/hcy.js","../node_modules/color-space/tsl.js","../node_modules/color-space/yes.js","../node_modules/color-space/osaucs.js","../node_modules/color-space/hsp.js","../node_modules/instagram-filters/lib/utils/InstagramFiltersError.js","../node_modules/instagram-filters/lib/presets.js","../node_modules/instagram-filters/lib/filters.js","../node_modules/react-color/lib/components/alpha/Alpha.js","../node_modules/reactcss/lib/flattenNames.js","../node_modules/reactcss/node_modules/lodash/isString.js","../node_modules/reactcss/node_modules/lodash/_getRawTag.js","../node_modules/reactcss/node_modules/lodash/_objectToString.js","../node_modules/reactcss/node_modules/lodash/_baseFor.js","../node_modules/reactcss/node_modules/lodash/_createBaseFor.js","../node_modules/reactcss/node_modules/lodash/_baseTimes.js","../node_modules/reactcss/node_modules/lodash/_baseIsArguments.js","../node_modules/reactcss/node_modules/lodash/stubFalse.js","../node_modules/reactcss/node_modules/lodash/_baseIsTypedArray.js","../node_modules/reactcss/node_modules/lodash/_baseKeys.js","../node_modules/reactcss/node_modules/lodash/_nativeKeys.js","../node_modules/reactcss/node_modules/lodash/_castFunction.js","../node_modules/reactcss/node_modules/lodash/isPlainObject.js","../node_modules/reactcss/node_modules/lodash/map.js","../node_modules/reactcss/node_modules/lodash/_baseIteratee.js","../node_modules/reactcss/node_modules/lodash/_baseMatches.js","../node_modules/reactcss/node_modules/lodash/_baseIsMatch.js","../node_modules/reactcss/node_modules/lodash/_listCacheClear.js","../node_modules/reactcss/node_modules/lodash/_listCacheDelete.js","../node_modules/reactcss/node_modules/lodash/_listCacheGet.js","../node_modules/reactcss/node_modules/lodash/_listCacheHas.js","../node_modules/reactcss/node_modules/lodash/_listCacheSet.js","../node_modules/reactcss/node_modules/lodash/_stackClear.js","../node_modules/reactcss/node_modules/lodash/_stackDelete.js","../node_modules/reactcss/node_modules/lodash/_stackGet.js","../node_modules/reactcss/node_modules/lodash/_stackHas.js","../node_modules/reactcss/node_modules/lodash/_stackSet.js","../node_modules/reactcss/node_modules/lodash/_baseIsNative.js","../node_modules/reactcss/node_modules/lodash/_isMasked.js","../node_modules/reactcss/node_modules/lodash/_coreJsData.js","../node_modules/reactcss/node_modules/lodash/_getValue.js","../node_modules/reactcss/node_modules/lodash/_mapCacheClear.js","../node_modules/reactcss/node_modules/lodash/_Hash.js","../node_modules/reactcss/node_modules/lodash/_hashClear.js","../node_modules/reactcss/node_modules/lodash/_hashDelete.js","../node_modules/reactcss/node_modules/lodash/_hashGet.js","../node_modules/reactcss/node_modules/lodash/_hashHas.js","../node_modules/reactcss/node_modules/lodash/_hashSet.js","../node_modules/reactcss/node_modules/lodash/_mapCacheDelete.js","../node_modules/reactcss/node_modules/lodash/_isKeyable.js","../node_modules/reactcss/node_modules/lodash/_mapCacheGet.js","../node_modules/reactcss/node_modules/lodash/_mapCacheHas.js","../node_modules/reactcss/node_modules/lodash/_mapCacheSet.js","../node_modules/reactcss/node_modules/lodash/_baseIsEqualDeep.js","../node_modules/reactcss/node_modules/lodash/_SetCache.js","../node_modules/reactcss/node_modules/lodash/_setCacheAdd.js","../node_modules/reactcss/node_modules/lodash/_setCacheHas.js","../node_modules/reactcss/node_modules/lodash/_arraySome.js","../node_modules/reactcss/node_modules/lodash/_cacheHas.js","../node_modules/reactcss/node_modules/lodash/_equalByTag.js","../node_modules/reactcss/node_modules/lodash/_mapToArray.js","../node_modules/reactcss/node_modules/lodash/_setToArray.js","../node_modules/reactcss/node_modules/lodash/_equalObjects.js","../node_modules/reactcss/node_modules/lodash/_arrayFilter.js","../node_modules/reactcss/node_modules/lodash/_DataView.js","../node_modules/reactcss/node_modules/lodash/_Promise.js","../node_modules/reactcss/node_modules/lodash/_Set.js","../node_modules/reactcss/node_modules/lodash/_WeakMap.js","../node_modules/reactcss/node_modules/lodash/_getMatchData.js","../node_modules/reactcss/node_modules/lodash/_baseMatchesProperty.js","../node_modules/reactcss/node_modules/lodash/get.js","../node_modules/reactcss/node_modules/lodash/_stringToPath.js","../node_modules/reactcss/node_modules/lodash/_memoizeCapped.js","../node_modules/reactcss/node_modules/lodash/memoize.js","../node_modules/reactcss/node_modules/lodash/toString.js","../node_modules/reactcss/node_modules/lodash/_baseToString.js","../node_modules/reactcss/node_modules/lodash/hasIn.js","../node_modules/reactcss/node_modules/lodash/_baseHasIn.js","../node_modules/reactcss/node_modules/lodash/_hasPath.js","../node_modules/reactcss/node_modules/lodash/property.js","../node_modules/reactcss/node_modules/lodash/_baseProperty.js","../node_modules/reactcss/node_modules/lodash/_basePropertyDeep.js","../node_modules/reactcss/node_modules/lodash/_baseMap.js","../node_modules/reactcss/node_modules/lodash/_baseEach.js","../node_modules/reactcss/node_modules/lodash/_createBaseEach.js","../node_modules/reactcss/lib/mergeClasses.js","../node_modules/reactcss/node_modules/lodash/cloneDeep.js","../node_modules/reactcss/node_modules/lodash/_baseClone.js","../node_modules/reactcss/node_modules/lodash/_arrayEach.js","../node_modules/reactcss/node_modules/lodash/_defineProperty.js","../node_modules/reactcss/node_modules/lodash/_baseAssign.js","../node_modules/reactcss/node_modules/lodash/_baseAssignIn.js","../node_modules/reactcss/node_modules/lodash/_baseKeysIn.js","../node_modules/reactcss/node_modules/lodash/_nativeKeysIn.js","../node_modules/reactcss/node_modules/lodash/_cloneBuffer.js","../node_modules/reactcss/node_modules/lodash/_copyArray.js","../node_modules/reactcss/node_modules/lodash/_copySymbols.js","../node_modules/reactcss/node_modules/lodash/_copySymbolsIn.js","../node_modules/reactcss/node_modules/lodash/_getAllKeysIn.js","../node_modules/reactcss/node_modules/lodash/_initCloneArray.js","../node_modules/reactcss/node_modules/lodash/_initCloneByTag.js","../node_modules/reactcss/node_modules/lodash/_cloneDataView.js","../node_modules/reactcss/node_modules/lodash/_cloneRegExp.js","../node_modules/reactcss/node_modules/lodash/_cloneSymbol.js","../node_modules/reactcss/node_modules/lodash/_cloneTypedArray.js","../node_modules/reactcss/node_modules/lodash/_initCloneObject.js","../node_modules/reactcss/node_modules/lodash/_baseCreate.js","../node_modules/reactcss/node_modules/lodash/isMap.js","../node_modules/reactcss/node_modules/lodash/_baseIsMap.js","../node_modules/reactcss/node_modules/lodash/isSet.js","../node_modules/reactcss/node_modules/lodash/_baseIsSet.js","../node_modules/reactcss/lib/autoprefix.js","../node_modules/reactcss/lib/components/hover.js","../node_modules/reactcss/lib/components/active.js","../node_modules/reactcss/lib/loop.js","../node_modules/react-color/lib/components/common/Alpha.js","../node_modules/react-color/lib/helpers/alpha.js","../node_modules/react-color/lib/helpers/checkboard.js","../node_modules/react-color/lib/components/common/EditableInput.js","../node_modules/react-color/lib/components/common/Hue.js","../node_modules/react-color/lib/helpers/hue.js","../node_modules/react-color/lib/components/common/Raised.js","../node_modules/react-color/node_modules/lodash/_baseMerge.js","../node_modules/react-color/node_modules/lodash/_listCacheClear.js","../node_modules/react-color/node_modules/lodash/_listCacheDelete.js","../node_modules/react-color/node_modules/lodash/_listCacheGet.js","../node_modules/react-color/node_modules/lodash/_listCacheHas.js","../node_modules/react-color/node_modules/lodash/_listCacheSet.js","../node_modules/react-color/node_modules/lodash/_stackClear.js","../node_modules/react-color/node_modules/lodash/_stackDelete.js","../node_modules/react-color/node_modules/lodash/_stackGet.js","../node_modules/react-color/node_modules/lodash/_stackHas.js","../node_modules/react-color/node_modules/lodash/_stackSet.js","../node_modules/react-color/node_modules/lodash/_baseIsNative.js","../node_modules/react-color/node_modules/lodash/_getRawTag.js","../node_modules/react-color/node_modules/lodash/_objectToString.js","../node_modules/react-color/node_modules/lodash/_isMasked.js","../node_modules/react-color/node_modules/lodash/_coreJsData.js","../node_modules/react-color/node_modules/lodash/_getValue.js","../node_modules/react-color/node_modules/lodash/_mapCacheClear.js","../node_modules/react-color/node_modules/lodash/_Hash.js","../node_modules/react-color/node_modules/lodash/_hashClear.js","../node_modules/react-color/node_modules/lodash/_hashDelete.js","../node_modules/react-color/node_modules/lodash/_hashGet.js","../node_modules/react-color/node_modules/lodash/_hashHas.js","../node_modules/react-color/node_modules/lodash/_hashSet.js","../node_modules/react-color/node_modules/lodash/_mapCacheDelete.js","../node_modules/react-color/node_modules/lodash/_isKeyable.js","../node_modules/react-color/node_modules/lodash/_mapCacheGet.js","../node_modules/react-color/node_modules/lodash/_mapCacheHas.js","../node_modules/react-color/node_modules/lodash/_mapCacheSet.js","../node_modules/react-color/node_modules/lodash/_createBaseFor.js","../node_modules/react-color/node_modules/lodash/_baseMergeDeep.js","../node_modules/react-color/node_modules/lodash/_cloneBuffer.js","../node_modules/react-color/node_modules/lodash/_cloneTypedArray.js","../node_modules/react-color/node_modules/lodash/_cloneArrayBuffer.js","../node_modules/react-color/node_modules/lodash/_copyArray.js","../node_modules/react-color/node_modules/lodash/_initCloneObject.js","../node_modules/react-color/node_modules/lodash/_baseCreate.js","../node_modules/react-color/node_modules/lodash/_baseIsArguments.js","../node_modules/react-color/node_modules/lodash/isArrayLikeObject.js","../node_modules/react-color/node_modules/lodash/stubFalse.js","../node_modules/react-color/node_modules/lodash/isPlainObject.js","../node_modules/react-color/node_modules/lodash/_baseIsTypedArray.js","../node_modules/react-color/node_modules/lodash/_baseUnary.js","../node_modules/react-color/node_modules/lodash/_nodeUtil.js","../node_modules/react-color/node_modules/lodash/toPlainObject.js","../node_modules/react-color/node_modules/lodash/_copyObject.js","../node_modules/react-color/node_modules/lodash/_assignValue.js","../node_modules/react-color/node_modules/lodash/_baseTimes.js","../node_modules/react-color/node_modules/lodash/_baseKeysIn.js","../node_modules/react-color/node_modules/lodash/_nativeKeysIn.js","../node_modules/react-color/node_modules/lodash/_createAssigner.js","../node_modules/react-color/node_modules/lodash/_baseRest.js","../node_modules/react-color/node_modules/lodash/_overRest.js","../node_modules/react-color/node_modules/lodash/_apply.js","../node_modules/react-color/node_modules/lodash/_setToString.js","../node_modules/react-color/node_modules/lodash/_baseSetToString.js","../node_modules/react-color/node_modules/lodash/constant.js","../node_modules/react-color/node_modules/lodash/_shortOut.js","../node_modules/react-color/node_modules/lodash/_isIterateeCall.js","../node_modules/react-color/lib/components/common/Saturation.js","../node_modules/react-color/node_modules/lodash/throttle.js","../node_modules/react-color/node_modules/lodash/now.js","../node_modules/react-color/node_modules/lodash/toNumber.js","../node_modules/react-color/lib/helpers/saturation.js","../node_modules/react-color/node_modules/lodash/each.js","../node_modules/react-color/node_modules/lodash/forEach.js","../node_modules/react-color/node_modules/lodash/_arrayEach.js","../node_modules/react-color/node_modules/lodash/_baseForOwn.js","../node_modules/react-color/node_modules/lodash/_baseKeys.js","../node_modules/react-color/node_modules/lodash/_nativeKeys.js","../node_modules/react-color/node_modules/lodash/_createBaseEach.js","../node_modules/react-color/node_modules/lodash/_castFunction.js","../node_modules/tinycolor2/tinycolor.js","../node_modules/react-color/lib/components/common/Swatch.js","../node_modules/react-color/lib/helpers/interaction.js","../node_modules/react-color/lib/components/alpha/AlphaPointer.js","../node_modules/react-color/lib/components/block/Block.js","../node_modules/react-color/lib/components/block/BlockSwatches.js","../node_modules/react-color/node_modules/lodash/_baseIteratee.js","../node_modules/react-color/node_modules/lodash/_baseMatches.js","../node_modules/react-color/node_modules/lodash/_baseIsMatch.js","../node_modules/react-color/node_modules/lodash/_baseIsEqualDeep.js","../node_modules/react-color/node_modules/lodash/_SetCache.js","../node_modules/react-color/node_modules/lodash/_setCacheAdd.js","../node_modules/react-color/node_modules/lodash/_setCacheHas.js","../node_modules/react-color/node_modules/lodash/_arraySome.js","../node_modules/react-color/node_modules/lodash/_cacheHas.js","../node_modules/react-color/node_modules/lodash/_equalByTag.js","../node_modules/react-color/node_modules/lodash/_mapToArray.js","../node_modules/react-color/node_modules/lodash/_setToArray.js","../node_modules/react-color/node_modules/lodash/_equalObjects.js","../node_modules/react-color/node_modules/lodash/_getAllKeys.js","../node_modules/react-color/node_modules/lodash/_baseGetAllKeys.js","../node_modules/react-color/node_modules/lodash/_arrayPush.js","../node_modules/react-color/node_modules/lodash/_getSymbols.js","../node_modules/react-color/node_modules/lodash/_arrayFilter.js","../node_modules/react-color/node_modules/lodash/stubArray.js","../node_modules/react-color/node_modules/lodash/_getTag.js","../node_modules/react-color/node_modules/lodash/_DataView.js","../node_modules/react-color/node_modules/lodash/_Promise.js","../node_modules/react-color/node_modules/lodash/_Set.js","../node_modules/react-color/node_modules/lodash/_WeakMap.js","../node_modules/react-color/node_modules/lodash/_getMatchData.js","../node_modules/react-color/node_modules/lodash/_baseMatchesProperty.js","../node_modules/react-color/node_modules/lodash/get.js","../node_modules/react-color/node_modules/lodash/_stringToPath.js","../node_modules/react-color/node_modules/lodash/_memoizeCapped.js","../node_modules/react-color/node_modules/lodash/memoize.js","../node_modules/react-color/node_modules/lodash/toString.js","../node_modules/react-color/node_modules/lodash/_baseToString.js","../node_modules/react-color/node_modules/lodash/hasIn.js","../node_modules/react-color/node_modules/lodash/_baseHasIn.js","../node_modules/react-color/node_modules/lodash/_hasPath.js","../node_modules/react-color/node_modules/lodash/property.js","../node_modules/react-color/node_modules/lodash/_baseProperty.js","../node_modules/react-color/node_modules/lodash/_basePropertyDeep.js","../node_modules/react-color/node_modules/lodash/_baseMap.js","../node_modules/react-color/lib/components/circle/Circle.js","../node_modules/react-color/lib/components/circle/CircleSwatch.js","../node_modules/react-color/lib/components/chrome/Chrome.js","../node_modules/react-color/lib/components/chrome/ChromeFields.js","../node_modules/react-color/node_modules/lodash/isUndefined.js","../node_modules/@icons/material/UnfoldMoreHorizontalIcon.js","../node_modules/react-color/lib/components/chrome/ChromePointer.js","../node_modules/react-color/lib/components/chrome/ChromePointerCircle.js","../node_modules/react-color/lib/components/compact/Compact.js","../node_modules/react-color/lib/components/compact/CompactColor.js","../node_modules/react-color/lib/components/compact/CompactFields.js","../node_modules/react-color/lib/components/github/Github.js","../node_modules/react-color/lib/components/github/GithubSwatch.js","../node_modules/react-color/lib/components/hue/Hue.js","../node_modules/react-color/lib/components/hue/HuePointer.js","../node_modules/react-color/lib/components/material/Material.js","../node_modules/react-color/lib/components/photoshop/Photoshop.js","../node_modules/react-color/lib/components/photoshop/PhotoshopFields.js","../node_modules/react-color/lib/components/photoshop/PhotoshopPointerCircle.js","../node_modules/react-color/lib/components/photoshop/PhotoshopPointer.js","../node_modules/react-color/lib/components/photoshop/PhotoshopButton.js","../node_modules/react-color/lib/components/photoshop/PhotoshopPreviews.js","../node_modules/react-color/lib/components/sketch/Sketch.js","../node_modules/react-color/lib/components/sketch/SketchFields.js","../node_modules/react-color/lib/components/sketch/SketchPresetColors.js","../node_modules/react-color/lib/components/slider/Slider.js","../node_modules/react-color/lib/components/slider/SliderSwatches.js","../node_modules/react-color/lib/components/slider/SliderSwatch.js","../node_modules/react-color/lib/components/slider/SliderPointer.js","../node_modules/react-color/lib/components/swatches/Swatches.js","../node_modules/react-color/lib/components/swatches/SwatchesGroup.js","../node_modules/react-color/lib/components/swatches/SwatchesColor.js","../node_modules/@icons/material/CheckIcon.js","../node_modules/react-color/lib/components/twitter/Twitter.js","../node_modules/localized-strings/lib/LocalizedStrings.js","../node_modules/localized-strings/lib/utils.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/blueimp-load-image/js/load-image-fetch.js","../node_modules/blueimp-load-image/js/load-image-exif-map.js","../node_modules/blueimp-load-image/js/load-image-iptc-map.js","../node_modules/blueimp-load-image/js/load-image-orientation.js","../node_modules/fast-deep-equal/react.js","../node_modules/@aws-crypto/sha256-browser/node_modules/tslib/tslib.es6.js","../node_modules/@aws-crypto/sha256-browser/build/crossPlatformSha256.js","../node_modules/@aws-crypto/sha256-js/build/index.js","../node_modules/@aws-crypto/sha256-js/build/jsSha256.js","../node_modules/@aws-crypto/sha256-js/build/RawSha256.js","../node_modules/@aws-crypto/supports-web-crypto/build/index.js","../node_modules/@aws-crypto/supports-web-crypto/build/supportsWebCrypto.js","../node_modules/@aws-crypto/ie11-detection/build/index.js","../node_modules/@aws-crypto/ie11-detection/node_modules/tslib/tslib.es6.js","../node_modules/@aws-crypto/ie11-detection/build/CryptoOperation.js","../node_modules/@aws-crypto/ie11-detection/build/Key.js","../node_modules/@aws-crypto/ie11-detection/build/KeyOperation.js","../node_modules/@aws-crypto/ie11-detection/build/MsSubtleCrypto.js","../node_modules/@aws-crypto/ie11-detection/build/MsWindow.js","../node_modules/@aws-crypto/crc32/node_modules/tslib/tslib.es6.js","../node_modules/fast-xml-parser/src/node2json.js","../node_modules/fast-xml-parser/src/xmlNode.js","../node_modules/fast-xml-parser/src/validator.js","../node_modules/fast-xml-parser/src/nimndata.js","../node_modules/fast-xml-parser/src/node2json_str.js","../node_modules/fast-xml-parser/src/json2xml.js","../node_modules/@aws-sdk/client-s3/node_modules/entities/lib/decode_codepoint.js","../node_modules/use-debounce/lib/useDebounce.js","../node_modules/crypto-js/lib-typedarrays.js","../node_modules/crypto-js/enc-utf16.js","../node_modules/crypto-js/enc-base64url.js","../node_modules/crypto-js/sha224.js","../node_modules/crypto-js/sha384.js","../node_modules/crypto-js/sha3.js","../node_modules/crypto-js/ripemd160.js","../node_modules/crypto-js/pbkdf2.js","../node_modules/crypto-js/mode-cfb.js","../node_modules/crypto-js/mode-ctr.js","../node_modules/crypto-js/mode-ctr-gladman.js","../node_modules/crypto-js/mode-ofb.js","../node_modules/crypto-js/mode-ecb.js","../node_modules/crypto-js/pad-ansix923.js","../node_modules/crypto-js/pad-iso10126.js","../node_modules/crypto-js/pad-iso97971.js","../node_modules/crypto-js/pad-zeropadding.js","../node_modules/crypto-js/pad-nopadding.js","../node_modules/crypto-js/format-hex.js","../node_modules/crypto-js/aes.js","../node_modules/crypto-js/tripledes.js","../node_modules/crypto-js/rc4.js","../node_modules/crypto-js/rabbit.js","../node_modules/crypto-js/rabbit-legacy.js","../node_modules/path-to-regexp/node_modules/isarray/index.js","../node_modules/react-use/esm/useMount.js","../node_modules/react-use/esm/usePrevious.js","../node_modules/@aws-sdk/client-s3/dist/es/commands/ListObjectsCommand.js","../node_modules/react-use/esm/useToggle.js","../node_modules/react-use/esm/useFullscreen.js","../node_modules/@aws-sdk/eventstream-marshaller/dist/es/Int64.js","../node_modules/@aws-sdk/eventstream-marshaller/dist/es/HeaderMarshaller.js","../node_modules/@aws-sdk/eventstream-marshaller/dist/es/EventStreamMarshaller.js","../node_modules/@aws-sdk/eventstream-marshaller/dist/es/splitMessage.js","../node_modules/@aws-sdk/eventstream-serde-universal/dist/es/EventStreamMarshaller.js","../node_modules/@aws-sdk/eventstream-serde-universal/dist/es/getUnmarshalledStream.js","../node_modules/@aws-sdk/eventstream-serde-universal/dist/es/getChunkedStream.js","../node_modules/@aws-sdk/eventstream-serde-browser/dist/es/EventStreamMarshaller.js","../node_modules/@aws-sdk/eventstream-serde-browser/dist/es/utils.js","../node_modules/@aws-sdk/eventstream-serde-browser/dist/es/provider.js","../node_modules/@aws-sdk/chunked-blob-reader/dist/es/index.js","../node_modules/@aws-sdk/hash-blob-browser/dist/es/index.js","../node_modules/@aws-sdk/md5-js/dist/es/constants.js","../node_modules/@aws-sdk/md5-js/dist/es/index.js","../node_modules/@aws-sdk/client-s3/dist/es/endpoints.js","../node_modules/@aws-sdk/client-s3/dist/es/runtimeConfig.browser.js","../node_modules/@aws-sdk/client-s3/dist/es/runtimeConfig.shared.js","../node_modules/@aws-sdk/middleware-expect-continue/dist/es/index.js","../node_modules/@aws-sdk/middleware-sdk-s3/dist/es/validate-bucket-name.js","../node_modules/@aws-sdk/middleware-sdk-s3/dist/es/use-regional-endpoint.js","../node_modules/@aws-sdk/client-s3/dist/es/S3Client.js","../node_modules/@aws-sdk/eventstream-serde-config-resolver/dist/es/EventStreamSerdeConfig.js","../node_modules/@aws-sdk/client-cognito-identity/dist/es/models/models_0.js","../node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js","../node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetIdCommand.js","../node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetCredentialsForIdentityCommand.js","../node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/resolveLogins.js","../node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/fromCognitoIdentity.js","../node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/IndexedDbStorage.js","../node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/localStorage.js","../node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/InMemoryStorage.js","../node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/fromCognitoIdentityPool.js","../node_modules/@aws-sdk/client-cognito-identity/dist/es/endpoints.js","../node_modules/@aws-sdk/client-cognito-identity/dist/es/runtimeConfig.browser.js","../node_modules/@aws-sdk/client-cognito-identity/dist/es/runtimeConfig.shared.js","../node_modules/@aws-sdk/client-cognito-identity/dist/es/CognitoIdentityClient.js","../node_modules/@aws-sdk/middleware-apply-body-checksum/dist/es/applyMd5BodyChecksumMiddleware.js","../node_modules/@aws-sdk/client-s3/dist/es/commands/DeleteObjectsCommand.js","../node_modules/react-use/esm/useUnmount.js","../node_modules/react-use/esm/useRafState.js","../node_modules/react-use/esm/useWindowSize.js","../node_modules/throttle-debounce/index.esm.js","../node_modules/react-use/esm/useIdle.js","../node_modules/@aws-sdk/middleware-ssec/dist/es/index.js","../node_modules/@aws-sdk/client-s3/dist/es/commands/PutObjectCommand.js"],"names":["_extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","_assign","assign","t","s","i","n","arguments","length","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","pop","push","__values","o","m","__read","r","ar","error","__spreadArray","to","from","pack","l","slice","concat","__await","__asyncGenerator","asyncIterator","q","a","resume","fulfill","settle","shift","__asyncValues","module","exports","ownKeys","object","enumerableOnly","keys","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread2","target","source","forEach","key","getOwnPropertyDescriptors","defineProperties","defineProperty","constructStack","absoluteEntries","relativeEntries","entriesNameSet","Set","cloneTo","toStack","entry","add","middleware","addRelativeTo","expandRelativeMiddlewareList","expandedMiddlewareList","before","after","reverse","getMiddlewareList","entries","normalizedAbsoluteEntries","normalizedRelativeEntries","normalizedEntriesNameMap","normalizedEntry","name","toMiddleware","undefined","Error","relation","sort","stepWeights","priorityWeights","priority","map","reduce","wholeList","expendedMiddlewareList","stack","options","override","has","toOverrideIndex","findIndex","toOverride","splice","clone","use","plugin","applyToStack","remove","toRemove","isRemoved","filterCb","delete","removeByName","removeByReference","removeByTag","tags","includes","cloned","handler","context","e_1","_a","_b","_c","e_1_1","return","initialize","serialize","build","finalizeRequest","deserialize","high","normal","low","Client","config","middlewareStack","send","command","optionsOrCb","cb","callback","resolveMiddleware","output","err","catch","destroy","requestHandler","extendedEncodeURIComponent","str","encodeURIComponent","replace","c","charCodeAt","toString","toUpperCase","getArrayIfSingleItem","mayBeArray","isArray","getValueFromTextNode","obj","Class","getPrototypeOf","Constructor","Function","bind","instance","writable","configurable","_super","LazyJsonString","deserializeJSON","JSON","parse","toJSON","fromObject","stringify","parseBoolean","expectBoolean","expectString","days","months","dateToUtcString","date","year","getUTCFullYear","month","getUTCMonth","dayOfWeek","getUTCDay","dayOfMonthInt","getUTCDate","hoursInt","getUTCHours","minutesInt","getUTCMinutes","secondsInt","getUTCSeconds","Number","EPSILON","Math","pow","isInteger","isFinite","floor","sign","x","get","match","index","nextKey","REVISION","MOUSE","LEFT","MIDDLE","RIGHT","ROTATE","DOLLY","PAN","TOUCH","DOLLY_PAN","DOLLY_ROTATE","CullFaceNone","CullFaceBack","CullFaceFront","CullFaceFrontBack","FrontFaceDirectionCW","FrontFaceDirectionCCW","BasicShadowMap","PCFShadowMap","PCFSoftShadowMap","VSMShadowMap","FrontSide","BackSide","DoubleSide","FlatShading","SmoothShading","NoColors","FaceColors","VertexColors","NoBlending","NormalBlending","AdditiveBlending","SubtractiveBlending","MultiplyBlending","CustomBlending","AddEquation","SubtractEquation","ReverseSubtractEquation","MinEquation","MaxEquation","ZeroFactor","OneFactor","SrcColorFactor","OneMinusSrcColorFactor","SrcAlphaFactor","OneMinusSrcAlphaFactor","DstAlphaFactor","OneMinusDstAlphaFactor","DstColorFactor","OneMinusDstColorFactor","SrcAlphaSaturateFactor","NeverDepth","AlwaysDepth","LessDepth","LessEqualDepth","EqualDepth","GreaterEqualDepth","GreaterDepth","NotEqualDepth","MultiplyOperation","MixOperation","AddOperation","NoToneMapping","LinearToneMapping","ReinhardToneMapping","Uncharted2ToneMapping","CineonToneMapping","ACESFilmicToneMapping","UVMapping","CubeReflectionMapping","CubeRefractionMapping","EquirectangularReflectionMapping","EquirectangularRefractionMapping","SphericalReflectionMapping","CubeUVReflectionMapping","CubeUVRefractionMapping","RepeatWrapping","ClampToEdgeWrapping","MirroredRepeatWrapping","NearestFilter","NearestMipmapNearestFilter","NearestMipMapNearestFilter","NearestMipmapLinearFilter","NearestMipMapLinearFilter","LinearFilter","LinearMipmapNearestFilter","LinearMipMapNearestFilter","LinearMipmapLinearFilter","LinearMipMapLinearFilter","UnsignedByteType","ByteType","ShortType","UnsignedShortType","IntType","UnsignedIntType","FloatType","HalfFloatType","UnsignedShort4444Type","UnsignedShort5551Type","UnsignedShort565Type","UnsignedInt248Type","AlphaFormat","RGBFormat","RGBAFormat","LuminanceFormat","LuminanceAlphaFormat","RGBEFormat","DepthFormat","DepthStencilFormat","RedFormat","RGB_S3TC_DXT1_Format","RGBA_S3TC_DXT1_Format","RGBA_S3TC_DXT3_Format","RGBA_S3TC_DXT5_Format","RGB_PVRTC_4BPPV1_Format","RGB_PVRTC_2BPPV1_Format","RGBA_PVRTC_4BPPV1_Format","RGBA_PVRTC_2BPPV1_Format","RGB_ETC1_Format","RGBA_ASTC_4x4_Format","RGBA_ASTC_5x4_Format","RGBA_ASTC_5x5_Format","RGBA_ASTC_6x5_Format","RGBA_ASTC_6x6_Format","RGBA_ASTC_8x5_Format","RGBA_ASTC_8x6_Format","RGBA_ASTC_8x8_Format","RGBA_ASTC_10x5_Format","RGBA_ASTC_10x6_Format","RGBA_ASTC_10x8_Format","RGBA_ASTC_10x10_Format","RGBA_ASTC_12x10_Format","RGBA_ASTC_12x12_Format","LoopOnce","LoopRepeat","LoopPingPong","InterpolateDiscrete","InterpolateLinear","InterpolateSmooth","ZeroCurvatureEnding","ZeroSlopeEnding","WrapAroundEnding","TrianglesDrawMode","TriangleStripDrawMode","TriangleFanDrawMode","LinearEncoding","sRGBEncoding","GammaEncoding","RGBEEncoding","LogLuvEncoding","RGBM7Encoding","RGBM16Encoding","RGBDEncoding","BasicDepthPacking","RGBADepthPacking","TangentSpaceNormalMap","ObjectSpaceNormalMap","ZeroStencilOp","KeepStencilOp","ReplaceStencilOp","IncrementStencilOp","DecrementStencilOp","IncrementWrapStencilOp","DecrementWrapStencilOp","InvertStencilOp","NeverStencilFunc","LessStencilFunc","EqualStencilFunc","LessEqualStencilFunc","GreaterStencilFunc","NotEqualStencilFunc","GreaterEqualStencilFunc","AlwaysStencilFunc","StaticDrawUsage","DynamicDrawUsage","StreamDrawUsage","StaticReadUsage","DynamicReadUsage","StreamReadUsage","StaticCopyUsage","DynamicCopyUsage","StreamCopyUsage","EventDispatcher","addEventListener","type","listener","_listeners","listeners","hasEventListener","removeEventListener","listenerArray","dispatchEvent","event","array","_lut","_Math","DEG2RAD","PI","RAD2DEG","generateUUID","d0","random","d1","d2","d3","clamp","min","max","euclideanModulo","mapLinear","a1","a2","b1","b2","lerp","smoothstep","smootherstep","randInt","randFloat","randFloatSpread","range","degToRad","degrees","radToDeg","radians","isPowerOfTwo","ceilPowerOfTwo","ceil","log","LN2","floorPowerOfTwo","Vector2","Quaternion","z","w","_x","_y","_z","_w","set","isVector2","setScalar","scalar","setX","setY","setComponent","getComponent","copy","console","warn","addVectors","addScalar","addScaledVector","sub","subVectors","subScalar","multiply","multiplyScalar","divide","divideScalar","applyMatrix3","elements","clampScalar","minVal","maxVal","clampLength","round","roundToZero","negate","dot","cross","lengthSq","sqrt","manhattanLength","abs","normalize","angle","atan2","distanceTo","distanceToSquared","dx","dy","manhattanDistanceTo","setLength","alpha","lerpVectors","v1","v2","equals","fromArray","offset","toArray","fromBufferAttribute","attribute","getX","getY","rotateAround","center","cos","sin","slerp","qa","qb","qm","slerpFlat","dst","dstOffset","src0","srcOffset0","src1","srcOffset1","x0","y0","z0","w0","x1","y1","z1","w1","dir","sqrSin","len","tDir","_onChangeCallback","isQuaternion","quaternion","setFromEuler","euler","update","isEuler","order","c1","c2","c3","s1","s2","s3","setFromAxisAngle","axis","halfAngle","setFromRotationMatrix","te","m11","m12","m13","m21","m22","m23","m31","m32","m33","trace","setFromUnitVectors","vFrom","vTo","angleTo","acos","rotateTowards","inverse","conjugate","multiplyQuaternions","premultiply","qax","qay","qaz","qaw","qbx","qby","qbz","qbw","cosHalfTheta","sqrSinHalfTheta","sinHalfTheta","halfTheta","ratioA","ratioB","_onChange","_vector","Vector3","_quaternion","isVector3","setZ","multiplyVectors","applyEuler","applyQuaternion","applyAxisAngle","applyMatrix4","qx","qy","qz","qw","ix","iy","iz","iw","project","camera","matrixWorldInverse","projectionMatrix","unproject","projectionMatrixInverse","matrixWorld","transformDirection","crossVectors","ax","ay","az","bx","by","bz","projectOnVector","projectOnPlane","planeNormal","reflect","denominator","theta","dz","setFromSpherical","setFromSphericalCoords","radius","phi","sinPhiRadius","setFromCylindrical","setFromCylindricalCoords","setFromMatrixPosition","setFromMatrixScale","sx","setFromMatrixColumn","sy","sz","getZ","_canvas","_vector$1","Matrix3","isMatrix3","n11","n12","n13","n21","n22","n23","n31","n32","n33","identity","me","setFromMatrix4","applyToBufferAttribute","count","setXYZ","multiplyMatrices","ae","be","a11","a12","a13","a21","a22","a23","a31","a32","a33","b11","b12","b13","b21","b22","b23","b31","b32","b33","determinant","h","getInverse","matrix","throwOnDegenerate","isMatrix4","t11","t12","t13","det","msg","detInv","transpose","tmp","getNormalMatrix","matrix4","transposeIntoArray","setUvTransform","tx","ty","rotation","cx","cy","scale","rotate","translate","ImageUtils","getDataURL","image","canvas","HTMLCanvasElement","src","document","createElementNS","width","height","getContext","ImageData","putImageData","drawImage","toDataURL","textureId","Texture","mapping","wrapS","wrapT","magFilter","minFilter","format","anisotropy","encoding","uuid","DEFAULT_IMAGE","mipmaps","DEFAULT_MAPPING","repeat","matrixAutoUpdate","generateMipmaps","premultiplyAlpha","flipY","unpackAlignment","version","onUpdate","Vector4","WebGLRenderTarget","scissor","scissorTest","viewport","texture","depthBuffer","stencilBuffer","depthTexture","WebGLMultisampleRenderTarget","samples","isTexture","updateMatrix","meta","isRootObject","textures","metadata","wrap","images","url","dispose","transformUv","uv","isVector4","setW","setAxisAngleFromQuaternion","setAxisAngleFromRotationMatrix","xx","yy","zz","xy","xz","yz","getW","isWebGLRenderTarget","setSize","isWebGLMultisampleRenderTarget","_v1","_m1","Matrix4","_zero","_one","n14","n24","n34","n41","n42","n43","n44","copyPosition","extractBasis","xAxis","yAxis","zAxis","makeBasis","extractRotation","scaleX","scaleY","scaleZ","makeRotationFromEuler","af","bf","ce","cf","de","df","ac","ad","bc","bd","makeRotationFromQuaternion","compose","lookAt","eye","up","a14","a24","a34","a41","a42","a43","a44","b14","b24","b34","b41","b42","b43","b44","setPosition","t14","getMaxScaleOnAxis","scaleXSq","scaleYSq","scaleZSq","makeTranslation","makeRotationX","makeRotationY","makeRotationZ","makeRotationAxis","makeScale","makeShear","position","x2","y2","z2","wx","wy","wz","decompose","invSX","invSY","invSZ","makePerspective","left","right","top","bottom","near","far","makeOrthographic","_matrix","_quaternion$1","Euler","_order","DefaultOrder","Layers","mask","RotationOrders","asin","setFromQuaternion","setFromVector3","reorder","newOrder","toVector3","optionalResult","channel","enable","enableAll","toggle","disable","disableAll","test","layers","_object3DId","_v1$1","_q1","_m1$1","_target","_position","_scale","_quaternion$2","_xAxis","_yAxis","_zAxis","_addedEvent","_removedEvent","Object3D","parent","children","DefaultUp","modelViewMatrix","normalMatrix","DefaultMatrixAutoUpdate","matrixWorldNeedsUpdate","visible","castShadow","receiveShadow","frustumCulled","renderOrder","userData","Scene","background","fog","overrideMaterial","autoUpdate","__THREE_DEVTOOLS__","CustomEvent","detail","isObject3D","onBeforeRender","onAfterRender","applyMatrix","setRotationFromAxisAngle","setRotationFromEuler","setRotationFromMatrix","setRotationFromQuaternion","rotateOnAxis","rotateOnWorldAxis","rotateX","rotateY","rotateZ","translateOnAxis","distance","translateX","translateY","translateZ","localToWorld","vector","worldToLocal","updateWorldMatrix","isCamera","isLight","attach","getObjectById","id","getObjectByProperty","getObjectByName","getWorldPosition","updateMatrixWorld","getWorldQuaternion","getWorldScale","getWorldDirection","raycast","traverse","traverseVisible","traverseAncestors","force","updateParents","updateChildren","geometries","materials","shapes","library","element","isMesh","drawMode","isInstancedMesh","instanceMatrix","isLine","isPoints","geometry","parameters","shape","material","uuids","extractFromCache","cache","values","data","recursive","child","isScene","_points","_vector$2","_v0","_v1$2","_v2","_f0","_f1","_f2","_center","_extents","_triangleNormal","_testAxis","Box3","Infinity","satForAxes","axes","v0","extents","j","p0","p1","p2","isBox3","setFromArray","minX","minY","minZ","maxX","maxY","maxZ","setFromBufferAttribute","setFromPoints","points","makeEmpty","il","expandByPoint","setFromCenterAndSize","size","halfSize","setFromObject","expandByObject","box","isEmpty","getCenter","getSize","point","expandByVector","expandByScalar","isGeometry","vertices","isBufferGeometry","attributes","containsPoint","containsBox","getParameter","intersectsBox","intersectsSphere","sphere","clampPoint","intersectsPlane","plane","constant","intersectsTriangle","triangle","distanceToPoint","getBoundingSphere","intersect","union","_box","Sphere","optionalCenter","maxRadiusSq","empty","radiusSum","deltaLengthSq","getBoundingBox","_vector$3","_segCenter","_segDir","_diff","_edge1","_edge2","_normal","Ray","origin","direction","ray","at","recast","closestPointToPoint","directionDistance","distanceSqToPoint","distanceSqToSegment","optionalPointOnRay","optionalPointOnSegment","s0","sqrDist","extDet","segExtent","a01","b0","invDet","intersectSphere","tca","radius2","thc","t0","t1","distanceToPlane","intersectPlane","distToPoint","intersectBox","tmin","tmax","tymin","tymax","tzmin","tzmax","invdirx","invdiry","invdirz","intersectTriangle","backfaceCulling","DdN","DdQxE2","DdE1xQ","QdN","_vector1","_vector2","_normalMatrix","Plane","isPlane","setComponents","setFromNormalAndCoplanarPoint","setFromCoplanarPoints","inverseNormalLength","distanceToSphere","projectPoint","intersectLine","line","delta","start","intersectsLine","startSign","endSign","end","coplanarPoint","optionalNormalMatrix","referencePoint","_v0$1","_v1$3","_v2$1","_v3","_vab","_vac","_vbc","_vap","_vbp","_vcp","Triangle","getNormal","targetLengthSq","getBarycoord","dot00","dot01","dot02","dot11","dot12","denom","invDenom","u","getUV","p3","uv1","uv2","uv3","isFrontFacing","setFromPointsAndIndices","i0","i1","i2","getArea","getMidpoint","getPlane","d4","vc","d5","d6","vb","va","_colorKeywords","_hslA","_hslB","Color","setRGB","hue2rgb","SRGBToLinear","LinearToSRGB","Face3","color","materialIndex","vertexNormals","isColor","vertexColors","setHex","setStyle","hex","setHSL","style","handleAlpha","string","parseFloat","exec","components","parseInt","charAt","setColorName","copyGammaToLinear","gammaFactor","copyLinearToGamma","safeInverse","convertGammaToLinear","convertLinearToGamma","copySRGBToLinear","copyLinearToSRGB","convertSRGBToLinear","convertLinearToSRGB","getHex","getHexString","getHSL","hue","saturation","lightness","getStyle","offsetHSL","addColors","color1","color2","lerpHSL","NAMES","materialId","Material","blending","side","flatShading","vertexTangents","opacity","transparent","blendSrc","blendDst","blendEquation","blendSrcAlpha","blendDstAlpha","blendEquationAlpha","depthFunc","depthTest","depthWrite","stencilWriteMask","stencilFunc","stencilRef","stencilFuncMask","stencilFail","stencilZFail","stencilZPass","stencilWrite","clippingPlanes","clipIntersection","clipShadows","shadowSide","colorWrite","precision","polygonOffset","polygonOffsetFactor","polygonOffsetUnits","dithering","alphaTest","premultipliedAlpha","toneMapped","needsUpdate","MeshBasicMaterial","lightMap","lightMapIntensity","aoMap","aoMapIntensity","specularMap","alphaMap","envMap","combine","reflectivity","refractionRatio","wireframe","wireframeLinewidth","wireframeLinecap","wireframeLinejoin","skinning","morphTargets","setValues","BufferAttribute","itemSize","normalized","usage","updateRange","Int8BufferAttribute","Int8Array","Uint8BufferAttribute","Uint8Array","Uint8ClampedBufferAttribute","Uint8ClampedArray","Int16BufferAttribute","Int16Array","Uint16BufferAttribute","Uint16Array","Int32BufferAttribute","Int32Array","Uint32BufferAttribute","Uint32Array","Float32BufferAttribute","Float32Array","Float64BufferAttribute","Float64Array","DirectGeometry","normals","colors","uvs","uvs2","groups","skinWeights","skinIndices","boundingBox","boundingSphere","verticesNeedUpdate","normalsNeedUpdate","colorsNeedUpdate","uvsNeedUpdate","groupsNeedUpdate","arrayMax","isMaterial","onBeforeCompile","newValue","currentValue","isRoot","roughness","metalness","sheen","emissive","emissiveIntensity","specular","shininess","clearcoat","clearcoatRoughness","clearcoatNormalMap","clearcoatNormalScale","matcap","bumpMap","bumpScale","normalMap","normalMapType","normalScale","displacementMap","displacementScale","displacementBias","roughnessMap","metalnessMap","emissiveMap","envMapIntensity","gradientMap","sizeAttenuation","linewidth","dashSize","gapSize","morphNormals","srcPlanes","dstPlanes","isMeshBasicMaterial","isBufferAttribute","onUploadCallback","setUsage","copyAt","index1","index2","copyArray","copyColorsArray","copyVector2sArray","vectors","copyVector3sArray","copyVector4sArray","setXY","setXYZW","onUpload","computeGroups","group","faces","face","fromGeometry","morphTargetsPosition","faceVertexUvs","hasFaceVertexUv","hasFaceVertexUv2","morphTargetsLength","morphTargetsNormal","morphNormalsLength","hasSkinIndices","hasSkinWeights","vertexUvs","morphTarget","morphNormal","_bufferGeometryId","_m1$2","_obj","_offset","_box$1","_boxMorphTargets","_vector$4","BufferGeometry","morphAttributes","drawRange","getIndex","setIndex","getAttribute","setAttribute","deleteAttribute","addGroup","clearGroups","setDrawRange","tangent","computeBoundingBox","computeBoundingSphere","positions","lineDistances","updateFromObject","direct","__directGeometry","elementsNeedUpdate","lineDistancesNeedUpdate","lineDistance","fromDirectGeometry","morphAttributesPosition","morphAttribute","isNaN","jl","computeFaceNormals","computeVertexNormals","vA","vB","vC","pA","pB","pC","ab","indices","normalizeNormals","merge","attributeArray1","attribute2","attributeArray2","attributeOffset","toNonIndexed","convertBufferAttribute","array2","geometry2","newAttribute","morphArray","attributeData","hasMorphAttributes","attributeArray","_inverseMatrix","_ray","_sphere","_vA","_vB","_vC","_tempA","_tempB","_tempC","_morphA","_morphB","_morphC","_uvA","_uvB","_uvC","_intersectionPoint","_intersectionPointWorld","Mesh","updateMorphTargets","checkIntersection","raycaster","checkBufferGeometryIntersection","morphPosition","morphInfluences","morphTargetInfluences","influence","intersection","setDrawMode","morphTargetDictionary","ml","intersects","groupMaterial","faceIndex","fvA","fvB","fvC","isMultiMaterial","fl","faceMaterial","uvs_f","_geometryId","_m1$3","_obj$1","_offset$1","Geometry","fromBufferGeometry","scope","addFace","areaWeighted","vl","computeFlatVertexNormals","computeMorphNormals","__originalFaceNormal","__originalVertexNormals","tmpGeo","faceNormals","dstNormalsFace","dstNormalsVertex","faceNormal","materialIndexOffset","vertexOffset","vertices1","vertices2","faces1","faces2","colors1","colors2","vertexCopy","faceCopy","faceVertexNormals","faceVertexColors","faceVertexUvs2","uvsCopy","k","kl","mergeMesh","mesh","mergeVertices","verticesMap","unique","changes","faceIndicesToRemove","idx","diff","sortFacesByMaterialIndex","_id","newUvs1","newUvs2","uvs1","vertex","normalsHash","colorsHash","uvsHash","hasFaceNormal","hasFaceVertexNormal","hasFaceColor","hasFaceVertexColor","faceType","setBit","getUvIndex","getNormalIndex","getColorIndex","enabled","hash","srcVertexNormal","destVertexNormal","BoxGeometry","_Geometry","depth","widthSegments","heightSegments","depthSegments","_this2","BoxBufferGeometry","_BufferGeometry","_super2","_this3","numberOfVertices","groupStart","buildPlane","udir","vdir","gridX","gridY","segmentWidth","segmentHeight","widthHalf","heightHalf","depthHalf","gridX1","gridY1","vertexCounter","groupCount","cloneUniforms","property","mergeUniforms","uniforms","merged","UniformsUtils","ShaderMaterial","defines","vertexShader","fragmentShader","lights","clipping","extensions","derivatives","fragDepth","drawBuffers","shaderTextureLOD","defaultAttributeValues","index0AttributeName","uniformsNeedUpdate","Camera","PerspectiveCamera","fov","aspect","zoom","focus","view","filmGauge","filmOffset","updateProjectionMatrix","isShaderMaterial","isPerspectiveCamera","setFocalLength","focalLength","vExtentSlope","getFilmHeight","atan","getFocalLength","tan","getEffectiveFOV","getFilmWidth","setViewOffset","fullWidth","fullHeight","offsetX","offsetY","clearViewOffset","skew","CubeCamera","cubeResolution","cameraPX","cameraNX","cameraPY","cameraNY","cameraPZ","cameraNZ","renderTarget","WebGLRenderTargetCube","renderer","scene","currentRenderTarget","getRenderTarget","setRenderTarget","render","clear","stencil","DataTexture","isWebGLRenderTargetCube","fromEquirectangularTexture","shader","tEquirect","join","isDataTexture","_sphere$1","_vector$5","Frustum","p4","p5","planes","frustum","setFromMatrix","me0","me1","me2","me3","me4","me5","me6","me7","me8","me9","me10","me11","me12","me13","me14","me15","intersectsObject","intersectsSprite","sprite","negRadius","ShaderChunk","alphamap_fragment","alphamap_pars_fragment","alphatest_fragment","aomap_fragment","aomap_pars_fragment","begin_vertex","beginnormal_vertex","bsdfs","bumpmap_pars_fragment","clipping_planes_fragment","clipping_planes_pars_fragment","clipping_planes_pars_vertex","clipping_planes_vertex","color_fragment","color_pars_fragment","color_pars_vertex","color_vertex","common","cube_uv_reflection_fragment","defaultnormal_vertex","displacementmap_pars_vertex","displacementmap_vertex","emissivemap_fragment","emissivemap_pars_fragment","encodings_fragment","encodings_pars_fragment","envmap_fragment","envmap_common_pars_fragment","envmap_pars_fragment","envmap_pars_vertex","envmap_physical_pars_fragment","envmap_vertex","fog_vertex","fog_pars_vertex","fog_fragment","fog_pars_fragment","gradientmap_pars_fragment","lightmap_fragment","lightmap_pars_fragment","lights_lambert_vertex","lights_pars_begin","lights_phong_fragment","lights_phong_pars_fragment","lights_physical_fragment","lights_physical_pars_fragment","lights_fragment_begin","lights_fragment_maps","lights_fragment_end","logdepthbuf_fragment","logdepthbuf_pars_fragment","logdepthbuf_pars_vertex","logdepthbuf_vertex","map_fragment","map_pars_fragment","map_particle_fragment","map_particle_pars_fragment","metalnessmap_fragment","metalnessmap_pars_fragment","morphnormal_vertex","morphtarget_pars_vertex","morphtarget_vertex","normal_fragment_begin","normal_fragment_maps","normalmap_pars_fragment","clearcoat_normal_fragment_begin","clearcoat_normal_fragment_maps","clearcoat_normalmap_pars_fragment","packing","premultiplied_alpha_fragment","project_vertex","dithering_fragment","dithering_pars_fragment","roughnessmap_fragment","roughnessmap_pars_fragment","shadowmap_pars_fragment","shadowmap_pars_vertex","shadowmap_vertex","shadowmask_pars_fragment","skinbase_vertex","skinning_pars_vertex","skinning_vertex","skinnormal_vertex","specularmap_fragment","specularmap_pars_fragment","tonemapping_fragment","tonemapping_pars_fragment","uv_pars_fragment","uv_pars_vertex","uv_vertex","uv2_pars_fragment","uv2_pars_vertex","uv2_vertex","worldpos_vertex","background_frag","background_vert","cube_frag","cube_vert","depth_frag","depth_vert","distanceRGBA_frag","distanceRGBA_vert","equirect_frag","equirect_vert","linedashed_frag","linedashed_vert","meshbasic_frag","meshbasic_vert","meshlambert_frag","meshlambert_vert","meshmatcap_frag","meshmatcap_vert","meshphong_frag","meshphong_vert","meshphysical_frag","meshphysical_vert","normal_frag","normal_vert","points_frag","points_vert","shadow_frag","shadow_vert","sprite_frag","sprite_vert","UniformsLib","diffuse","uvTransform","specularmap","envmap","flipEnvMap","maxMipLevel","aomap","lightmap","emissivemap","bumpmap","normalmap","displacementmap","roughnessmap","metalnessmap","gradientmap","fogDensity","fogNear","fogFar","fogColor","ambientLightColor","lightProbe","directionalLights","properties","shadow","shadowBias","shadowRadius","shadowMapSize","directionalShadowMap","directionalShadowMatrix","spotLights","coneCos","penumbraCos","decay","spotShadowMap","spotShadowMatrix","pointLights","shadowCameraNear","shadowCameraFar","pointShadowMap","pointShadowMatrix","hemisphereLights","skyColor","groundColor","rectAreaLights","ShaderLib","basic","lambert","phong","standard","dashed","totalSize","t2D","cube","tCube","tFlip","equirect","distanceRGBA","referencePosition","nearDistance","farDistance","WebGLAnimation","isAnimating","animationLoop","onAnimationFrame","time","frame","requestAnimationFrame","stop","setAnimationLoop","setContext","WebGLAttributes","gl","buffers","WeakMap","isInterleavedBufferAttribute","deleteBuffer","buffer","bufferType","createBuffer","bindBuffer","bufferData","bytesPerElement","BYTES_PER_ELEMENT","bufferSubData","subarray","updateBuffer","PlaneGeometry","PlaneBufferGeometry","width_half","height_half","segment_width","segment_height","WebGLBackground","state","objects","planeMesh","boxMesh","clearColor","clearAlpha","currentBackground","currentBackgroundVersion","setClear","getClearColor","setClearColor","getClearAlpha","setClearAlpha","renderList","forceClear","vr","session","getSession","environmentBlendMode","autoClear","autoClearColor","autoClearDepth","autoClearStencil","isCubeTexture","unshift","WebGLBufferRenderer","info","capabilities","mode","isWebGL2","setMode","drawArrays","renderInstances","primcount","extension","methodName","WebGLCapabilities","maxAnisotropy","getMaxPrecision","getShaderPrecisionFormat","WebGL2RenderingContext","WebGL2ComputeRenderingContext","maxPrecision","logarithmicDepthBuffer","maxTextures","maxVertexTextures","maxTextureSize","maxCubemapSize","maxAttributes","maxVertexUniforms","maxVaryings","maxFragmentUniforms","vertexTextures","floatFragmentTextures","getMaxAnisotropy","MAX_TEXTURE_MAX_ANISOTROPY_EXT","floatVertexTextures","maxSamples","WebGLClipping","globalState","numGlobalPlanes","localClippingEnabled","renderingShadows","viewNormalMatrix","uniform","resetGlobalState","numPlanes","numIntersection","projectPlanes","skipTransform","nPlanes","dstArray","flatSize","viewMatrix","i4","init","enableLocalClipping","beginShadows","endShadows","setState","fromCache","nGlobal","lGlobal","clippingState","WebGLExtensions","getExtension","WebGLGeometries","wireframeAttributes","onGeometryDispose","buffergeometry","memory","updateWireframeAttribute","geometryIndex","geometryPosition","previousAttribute","_bufferGeometry","geometryAttributes","getWireframeAttribute","currentAttribute","WebGLIndexedBufferRenderer","drawElements","WebGLInfo","calls","triangles","lines","programs","autoReset","reset","instanceCount","absNumericalSort","WebGLMorphtargets","influencesList","program","objectInfluences","influences","getUniforms","setValue","WebGLObjects","updateList","CubeTexture","DataTexture2DArray","wrapR","DataTexture3D","physical","transparency","isDataTexture2DArray","isDataTexture3D","emptyTexture","emptyTexture2dArray","emptyTexture3d","emptyCubeTexture","arrayCacheF32","arrayCacheI32","mat4array","mat3array","mat2array","flatten","nBlocks","blockSize","firstElem","arraysEqual","allocTexUnits","allocateTextureUnit","setValueV1f","uniform1f","addr","setValueV2f","uniform2f","uniform2fv","setValueV3f","uniform3f","uniform3fv","setValueV4f","uniform4f","uniform4fv","setValueM2","uniformMatrix2fv","setValueM3","uniformMatrix3fv","setValueM4","uniformMatrix4fv","setValueT1","unit","uniform1i","safeSetTexture2D","setValueT2DArray1","setTexture2DArray","setValueT3D1","setTexture3D","setValueT6","safeSetTextureCube","setValueV1i","setValueV2i","uniform2iv","setValueV3i","uniform3iv","setValueV4i","uniform4iv","setValueV1fArray","uniform1fv","setValueV1iArray","uniform1iv","setValueV2iArray","setValueV3iArray","setValueV4iArray","setValueV2fArray","setValueV3fArray","setValueV4fArray","setValueM2Array","setValueM3Array","setValueM4Array","setValueT1Array","units","setValueT6Array","SingleUniform","activeInfo","getSingularSetter","PureArrayUniform","getPureArraySetter","StructuredUniform","seq","updateCache","RePathPart","addUniform","container","uniformObject","parseUniform","path","pathLength","lastIndex","matchEnd","idIsIndex","subscript","WebGLUniforms","getProgramParameter","getActiveUniform","getUniformLocation","WebGLShader","createShader","shaderSource","compileShader","setOptional","upload","seqWithValue","programIdCount","getEncodingComponents","getShaderErrors","status","getShaderParameter","getShaderInfoLog","trim","split","addLineNumbers","getShaderSource","getTexelDecodingFunction","functionName","getTexelEncodingFunction","getToneMappingFunction","toneMapping","toneMappingName","filterEmptyLine","replaceLightNums","numDirLights","numSpotLights","numRectAreaLights","numPointLights","numHemiLights","numDirLightShadows","numSpotLightShadows","numPointLightShadows","replaceClippingPlaneNums","numClippingPlanes","numClipIntersection","includePattern","resolveIncludes","includeReplacer","include","loopPattern","unrollLoops","loopReplacer","snippet","generatePrecision","precisionstring","WebGLProgram","cacheKey","prefixVertex","prefixFragment","shadowMapTypeDefine","shadowMapType","generateShadowMapTypeDefine","envMapTypeDefine","envMapMode","generateEnvMapTypeDefine","envMapModeDefine","generateEnvMapModeDefine","envMapBlendingDefine","generateEnvMapBlendingDefine","gammaFactorDefine","customExtensions","rendererExtensions","envMapCubeUV","tangentSpaceNormalMap","generateExtensions","customDefines","chunks","generateDefines","createProgram","numMultiviewViews","isRawShaderMaterial","instancing","supportsVertexTextures","maxBones","useFog","fogExp2","objectSpaceNormalMap","uvsVertexOnly","useVertexTexture","doubleSided","flipSided","shadowMapEnabled","physicallyCorrectLights","outputEncoding","mapEncoding","matcapEncoding","envMapEncoding","emissiveMapEncoding","depthPacking","isGLSL3ShaderMaterial","versionRegex","cachedUniforms","cachedAttributes","fragmentGlsl","glVertexShader","glFragmentShader","attachShader","bindAttribLocation","linkProgram","debug","checkShaderErrors","programLog","getProgramInfoLog","vertexLog","fragmentLog","runnable","haveDiagnostics","vertexErrors","fragmentErrors","getError","diagnostics","prefix","deleteShader","getAttributes","getActiveAttrib","getAttribLocation","fetchAttributeLocations","deleteProgram","usedTimes","WebGLPrograms","shaderIDs","MeshDepthMaterial","MeshDistanceMaterial","MeshNormalMaterial","MeshLambertMaterial","MeshPhongMaterial","MeshToonMaterial","MeshStandardMaterial","MeshPhysicalMaterial","MeshMatcapMaterial","LineBasicMaterial","LineDashedMaterial","PointsMaterial","ShadowMaterial","SpriteMaterial","parameterNames","getTextureEncodingFromMap","gammaOverrideLinear","getParameters","shadows","nClipPlanes","nClipIntersection","shaderID","isSkinnedMesh","bones","skeleton","nVertexUniforms","nVertexMatrices","allocateBones","isWebGLMultiviewRenderTarget","numViews","gammaOutput","gammaInput","isFogExp2","maxMorphTargets","maxMorphNormals","directional","spot","rectArea","hemi","shadowMap","getProgramCacheKey","acquireProgram","pl","preexistingProgram","releaseProgram","WebGLProperties","painterSortStable","groupOrder","reversePainterSortStable","WebGLRenderList","renderItems","renderItemsIndex","opaque","defaultProgram","getNextRenderItem","renderItem","WebGLRenderLists","lists","onSceneDispose","list","cameras","UniformsCache","light","halfWidth","halfHeight","nextVersion","shadowCastingLightsFirst","lightA","lightB","WebGLLights","directionalLength","pointLength","spotLength","rectAreaLength","hemiLength","numDirectionalShadows","numPointShadows","numSpotShadows","ambient","probe","vector3","matrix42","setup","intensity","isAmbientLight","isLightProbe","sh","coefficients","isDirectionalLight","bias","mapSize","isSpotLight","penumbra","isRectAreaLight","isPointLight","isHemisphereLight","WebGLRenderState","lightsArray","shadowsArray","setupLights","pushLight","pushShadow","shadowLight","WebGLRenderStates","renderStates","renderState","isMeshDepthMaterial","isMeshDistanceMaterial","WebGLShadowMap","_renderer","_objects","_frustum","_shadowMapSize","_viewportSize","_viewport","_depthMaterials","_distanceMaterials","_materialCache","0","1","2","shadowMaterialVertical","SAMPLE_RATE","HALF_SAMPLE_RATE","shadow_pass","resolution","shadowMaterialHorizonal","HORIZONAL_PASS","fullScreenTri","fullScreenMesh","VSMPass","mapPass","renderBufferDirect","getDepthMaterialVariant","useMorphing","useSkinning","useInstancing","getDistanceMaterialVariant","getDepthMaterial","getMaterialVariant","customMaterial","customDepthMaterial","customDistanceMaterial","keyA","keyB","materialsForVariant","cachedMaterial","renderObject","shadowCamera","depthMaterial","activeCubeFace","getActiveCubeFace","activeMipmapLevel","getActiveMipmapLevel","_state","setBlending","setTest","setScissorTest","shadowFrameExtents","getFrameExtents","isPointLightShadow","pars","viewportCount","getViewportCount","vp","getViewport","updateMatrices","getFrustum","WebGLState","_equationToGL","_factorToGL","colorBuffer","locked","currentColorMask","currentColorClear","setMask","colorMask","setLocked","lock","currentDepthMask","currentDepthFunc","currentDepthClear","depthMask","setFunc","clearDepth","currentStencilMask","currentStencilFunc","currentStencilRef","currentStencilFuncMask","currentStencilFail","currentStencilZFail","currentStencilZPass","currentStencilClear","stencilTest","stencilMask","setOp","stencilOp","clearStencil","maxVertexAttributes","newAttributes","enabledAttributes","attributeDivisors","enabledCapabilities","currentProgram","currentBlendingEnabled","currentBlending","currentBlendEquation","currentBlendSrc","currentBlendDst","currentBlendEquationAlpha","currentBlendSrcAlpha","currentBlendDstAlpha","currentPremultipledAlpha","currentFlipSided","currentCullFace","currentLineWidth","currentPolygonOffsetFactor","currentPolygonOffsetUnits","lineWidthAvailable","glVersion","currentTextureSlot","currentBoundTextures","currentScissor","currentViewport","createTexture","bindTexture","texParameteri","texImage2D","emptyTextures","enableAttributeAndDivisor","meshPerAttribute","enableVertexAttribArray","setFlipSided","setCullFace","equationToGL","MIN_EXT","factorToGL","blendEquationSeparate","blendFuncSeparate","blendFunc","frontFace","cullFace","setPolygonOffset","factor","activeTexture","webglSlot","initAttributes","enableAttribute","disableUnusedAttributes","disableVertexAttribArray","useProgram","setMaterial","frontFaceCW","setLineWidth","lineWidth","webglType","webglTexture","boundTexture","unbindTexture","compressedTexImage2D","texImage3D","WebGLTextures","_gl","utils","_wrappingToGL","_filterToGL","_videoTextures","useOffscreenCanvas","OffscreenCanvas","createCanvas","resizeImage","needsPowerOfTwo","needsNewCanvas","maxSize","HTMLImageElement","ImageBitmap","textureNeedsGenerateMipmaps","supportsMips","generateMipmap","__maxMipLevel","LOG2E","getInternalFormat","glFormat","glType","internalFormat","filterFallback","onTextureDispose","textureProperties","__webglInit","deleteTexture","__webglTexture","deallocateTexture","isVideoTexture","onRenderTargetDispose","renderTargetProperties","deleteFramebuffer","__webglFramebuffer","__webglDepthbuffer","deleteRenderbuffer","__webglColorTexture","__webglDepthStencilTexture","__webglViewFramebuffers","deallocateRenderTarget","textureUnits","setTexture2D","slot","updateVideoTexture","__version","complete","uploadTexture","setTextureCube","initTexture","pixelStorei","isCompressed","isCompressedTexture","cubeImage","convert","glInternalFormat","setTextureParameters","mipmap","mipmapImage","setTextureCubeDynamic","wrappingToGL","filterToGL","textureType","__currentAnisotropy","texParameterf","TEXTURE_MAX_ANISOTROPY_EXT","textureNeedsPowerOfTwo","isDepthTexture","setupFrameBufferTexture","framebuffer","attachment","textureTarget","bindFramebuffer","framebufferTexture2D","setupRenderBufferStorage","renderbuffer","isMultisample","bindRenderbuffer","getRenderTargetSamples","renderbufferStorageMultisample","renderbufferStorage","framebufferRenderbuffer","setupDepthRenderbuffer","isCube","webglDepthTexture","setupDepthTexture","createRenderbuffer","warnedTexture2D","warnedTextureCube","textureUnit","resetTextureUnits","setupRenderTarget","isMultiview","createFramebuffer","__webglMultisampledFramebuffer","__webglColorRenderbuffer","__webglDepthRenderbuffer","ext","colorTexture","framebufferTextureMultiviewOVR","depthStencilTexture","viewFramebuffers","framebufferTextureLayer","updateRenderTargetMipmap","updateMultisampleRenderTarget","blitFramebuffer","WebGLUtils","HALF_FLOAT_OES","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGB_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","COMPRESSED_RGB_ETC1_WEBGL","UNSIGNED_INT_24_8_WEBGL","WebGLMultiviewRenderTarget","WebGLMultiview","mat3","mat4","cameraArray","renderSize","available","maxNumViews","getCameraArray","isArrayCamera","isAvailable","getContextAttributes","antialias","MAX_VIEWS_OVR","attachCamera","isMultiviewCompatible","getDrawingBufferSize","setNumViews","resizeRenderTarget","detachCamera","srcRenderTarget","srcFramebuffers","viewWidth","viewHeight","flush","updateCameraProjectionMatricesUniform","updateCameraViewMatricesUniform","updateObjectMatricesUniforms","Group","ArrayCamera","isGroup","_geometry","cameraLPos","cameraRPos","setProjectionFromUnion","cameraL","cameraR","ipd","projL","projR","topFov","bottomFov","leftFov","rightFov","zOffset","xOffset","near2","far2","left2","right2","top2","bottom2","WebVRManager","renderWidth","renderHeight","device","frameData","poseTarget","controllers","standingMatrix","standingMatrixInverse","framebufferScaleFactor","referenceSpaceType","window","VRFrameData","onVRDisplayPresentChange","tempQuaternion","tempPosition","cameraVR","isPresenting","currentPixelRatio","currentSize","eyeParameters","getEyeParameters","getPixelRatio","setDrawingBufferSize","animation","triggers","findGamepad","gamepads","navigator","getGamepads","gamepad","startsWith","hand","updateViewportFromBounds","bounds","getController","controller","getDevice","setDevice","setFramebufferScaleFactor","setReferenceSpaceType","setPoseTarget","getCamera","userHeight","depthNear","depthFar","getFrameData","stageParameters","sittingToStandingTransform","pose","poseObject","orientation","leftViewMatrix","rightViewMatrix","leftProjectionMatrix","rightProjectionMatrix","getLayers","layer","leftBounds","rightBounds","hasPosition","buttonId","buttons","pressed","updateControllers","getStandingMatrix","submitFrame","setFrameOfReferenceType","WebXRManager","referenceSpace","sortedInputSources","onSessionEvent","inputSource","onSessionEnd","setFramebuffer","onRequestReferenceSpace","updateInputSources","findInputSource","inputSources","handedness","updateCamera","setSession","updateRenderState","baseLayer","XRWebGLLayer","requestReferenceSpace","onAnimationFrameCallback","getViewerPose","views","transform","inputPose","getPose","targetRaySpace","WebGLRenderer","_context","_alpha","_depth","_stencil","_antialias","_premultipliedAlpha","_preserveDrawingBuffer","preserveDrawingBuffer","_powerPreference","powerPreference","_failIfMajorPerformanceCaveat","failIfMajorPerformanceCaveat","currentRenderList","currentRenderState","domElement","sortObjects","toneMappingExposure","toneMappingWhitePoint","programCache","renderLists","morphtargets","bufferRenderer","indexedBufferRenderer","_this","_isContextLost","_framebuffer","_currentActiveCubeFace","_currentActiveMipmapLevel","_currentRenderTarget","_currentFramebuffer","_currentMaterialId","_currentGeometryProgram","_currentCamera","_currentArrayCamera","_currentViewport","_currentScissor","_currentScissorTest","_width","_height","_pixelRatio","_scissor","_scissorTest","_clipping","_clippingEnabled","_localClippingEnabled","_projScreenMatrix","_vector3","getTargetPixelRatio","contextAttributes","xrCompatible","onContextLost","onContextRestore","message","initGLContext","xr","multiview","preventDefault","onMaterialDispose","releaseMaterialProgramReference","deallocateMaterial","programInfo","forceContextLoss","loseContext","forceContextRestore","restoreContext","setPixelRatio","updateStyle","setViewport","pixelRatio","getCurrentViewport","getScissor","setScissor","getScissorTest","boolean","bits","renderBufferImmediate","hasPositions","hasNormals","hasUvs","hasColors","programAttributes","positionArray","vertexAttribPointer","normalArray","uvArray","colorArray","setProgram","updateBuffers","rangeFactor","isInstancedBufferGeometry","materialDefaultAttributeValues","programAttribute","geometryAttribute","stride","isInstancedInterleavedBuffer","maxInstancedCount","isInstancedBufferAttribute","vertexAttrib2fv","vertexAttrib3fv","vertexAttrib4fv","vertexAttrib1fv","setupVertexAttributes","dataCount","rangeStart","rangeCount","drawStart","drawEnd","drawCount","isLineSegments","isLineLoop","isSprite","compile","initMaterial","projectObject","isLOD","isImmediateRenderObject","renderObjects","camera2","renderObjectImmediate","materialProperties","lightsStateVersion","programCacheKey","programChange","numSupportedMorphTargets","numSupportedMorphNormals","needsLights","isMeshLambertMaterial","isMeshPhongMaterial","isMeshStandardMaterial","isShadowMaterial","materialNeedsLights","progUniforms","uniformsList","useCache","refreshProgram","refreshMaterial","refreshLights","p_uniforms","m_uniforms","uCamPos","cameraPosition","isOrthographicCamera","boneTexture","boneMatrices","boneTextureSize","isFog","density","refreshUniformsFog","refreshUniformsCommon","refreshUniformsLambert","isMeshToonMaterial","refreshUniformsPhong","refreshUniformsToon","isMeshPhysicalMaterial","refreshUniformsStandard","refreshUniformsPhysical","isMeshMatcapMaterial","refreshUniformsMatcap","refreshUniformsDepth","refreshUniformsDistance","isMeshNormalMaterial","refreshUniformsNormal","isLineBasicMaterial","refreshUniformsLine","isLineDashedMaterial","refreshUniformsDash","isPointsMaterial","uvScaleMap","refreshUniformsPoints","isSpriteMaterial","refreshUniformsSprites","ltc_1","LTC_1","ltc_2","LTC_2","opaqueObjects","transparentObjects","readRenderTargetPixels","activeCubeFaceIndex","restore","textureFormat","checkFramebufferStatus","readPixels","copyFramebufferToTexture","level","levelScale","copyTexImage2D","copyTextureToTexture","srcTexture","dstTexture","texSubImage2D","FogExp2","Fog","InterleavedBuffer","InterleavedBufferAttribute","interleavedBuffer","isInterleavedBuffer","_intersectPoint","_worldScale","_mvPosition","_alignedPosition","_rotatedPosition","_viewWorldMatrix","_vA$1","_vB$1","_vC$1","_uvA$1","_uvB$1","_uvC$1","Sprite","transformVertex","vertexPosition","mvPosition","_v1$4","_v2$2","LOD","levels","SkinnedMesh","bindMode","bindMatrix","bindMatrixInverse","addLevel","getObjectForDistance","calculateInverses","normalizeSkinWeights","skinWeight","_offsetMatrix","_identityMatrix","Skeleton","boneInverses","Bone","InstancedMesh","linecap","linejoin","bone","isBone","getBoneByName","setMatrixAt","_start","_end","_inverseMatrix$1","_ray$1","_sphere$2","Line","computeLineDistances","positionAttribute","linePrecision","localPrecision","localPrecisionSq","vStart","vEnd","interSegment","interRay","nbVertices","_start$1","_end$1","LineSegments","LineLoop","_inverseMatrix$2","_ray$2","_sphere$3","_position$1","Points","testPoint","localThresholdSq","rayPointDistanceSq","intersectPoint","distanceToRay","VideoTexture","video","CompressedTexture","CanvasTexture","DepthTexture","WireframeGeometry","ol","edge1","edge2","edge","edges","ParametricGeometry","func","slices","stacks","ParametricBufferGeometry","EPS","pu","pv","sliceCount","PolyhedronGeometry","PolyhedronBufferGeometry","vertexBuffer","uvBuffer","subdivideFace","cols","aj","bj","rows","pushVertex","getVertexByIndex","correctUV","azimuth","subdivide","applyRadius","centroid","uvA","uvB","uvC","azi","correctUVs","correctSeam","generateUVs","TetrahedronGeometry","TetrahedronBufferGeometry","OctahedronGeometry","OctahedronBufferGeometry","IcosahedronGeometry","IcosahedronBufferGeometry","DodecahedronGeometry","DodecahedronBufferGeometry","TubeGeometry","tubularSegments","radialSegments","closed","taper","bufferGeometry","TubeBufferGeometry","tangents","binormals","frames","computeFrenetFrames","generateSegment","getPointAt","N","B","generateIndices","generateBufferData","TorusKnotGeometry","tube","heightScale","TorusKnotBufferGeometry","P1","P2","T","calculatePositionOnCurve","cu","su","quOverP","cs","TorusGeometry","arc","TorusBufferGeometry","threshold","params","localThreshold","readyState","HAVE_CURRENT_DATA","isCanvasTexture","Earcut","holeIndices","dim","invSize","hasHoles","outerLen","outerNode","linkedList","prev","queue","steiner","getLeftmost","compareX","eliminateHole","filterPoints","eliminateHoles","earcutLinked","clockwise","last","sum","signedArea","insertNode","removeNode","again","area","ear","pass","zOrder","prevZ","nextZ","tail","numMerges","pSize","qSize","inSize","sortLinked","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minTX","minTY","maxTX","maxTY","locallyInside","isValidDiagonal","splitPolygon","hole","hx","hy","mx","my","tanMin","findHoleBridge","leftmost","px","py","intersectsPolygon","inside","middleInside","q1","q2","Node","an","bp","ShapeUtils","contour","isClockWise","pts","triangulateShape","holes","removeDupEndPts","addContour","holeIndex","ExtrudeGeometry","ExtrudeBufferGeometry","verticesArray","addShape","placeholder","curveSegments","steps","bevelEnabled","bevelThickness","bevelSize","bevelOffset","bevelSegments","extrudePath","uvgen","UVGenerator","WorldUVGenerator","amount","extrudePts","splineTube","binormal","position2","ahole","hl","extrudeByPath","getSpacedPoints","shapePoints","extractPoints","scalePt2","pt","vec","bs","vert","vlen","flen","getBevelVec","inPt","inPrev","inNext","v_trans_x","v_trans_y","shrink_by","v_prev_x","v_prev_y","v_next_x","v_next_y","v_prev_lensq","collinear0","v_prev_len","v_next_len","ptPrevShift_x","ptPrevShift_y","sf","v_trans_lensq","direction_eq","contourMovements","oneHoleMovements","holesMovements","verticesMovements","sidewalls","layeroffset","sl","slen1","slen2","f4","f3","addVertex","nextIndex","generateTopUV","addUV","generateSideWallUV","vector2","buildLidFaces","buildSideFaces","indexA","indexB","indexC","a_x","a_y","b_x","b_y","c_x","c_y","indexD","a_z","b_z","c_z","d_x","d_y","d_z","TextGeometry","text","TextBufferGeometry","font","isFont","generateShapes","SphereGeometry","phiStart","phiLength","thetaStart","thetaLength","SphereBufferGeometry","thetaEnd","grid","verticesRow","uOffset","RingGeometry","innerRadius","outerRadius","thetaSegments","phiSegments","RingBufferGeometry","segment","radiusStep","thetaSegmentLevel","LatheGeometry","segments","LatheBufferGeometry","base","inverseSegments","n1","n2","ShapeGeometry","ShapeBufferGeometry","shapeHole","indexOffset","shapeVertices","shapeHoles","toJSON$1","EdgesGeometry","thresholdAngle","thresholdDot","sourceVertices","face1","face2","CylinderGeometry","radiusTop","radiusBottom","openEnded","CylinderBufferGeometry","indexArray","generateCap","centerIndexStart","centerIndexEnd","cosTheta","sinTheta","slope","indexRow","generateTorso","ConeGeometry","ConeBufferGeometry","CircleGeometry","CircleBufferGeometry","Geometries","freeze","RawShaderMaterial","Materials","AnimationUtils","arraySlice","isTypedArray","convertArray","forceClone","ArrayBuffer","isView","DataView","getKeyframeOrder","times","sortedArray","nValues","srcOffset","flattenJSON","jsonKeys","valuePropertyName","subclip","sourceClip","startFrame","endFrame","fps","clip","tracks","track","valueSize","getValueSize","minStartTime","resetDuration","Interpolant","parameterPositions","sampleValues","sampleSize","resultBuffer","_cachedIndex","CubicInterpolant","_weightPrev","_offsetPrev","_weightNext","_offsetNext","LinearInterpolant","DiscreteInterpolant","KeyframeTrack","interpolation","TimeBufferType","ValueBufferType","setInterpolation","DefaultInterpolation","BooleanKeyframeTrack","ColorKeyframeTrack","NumberKeyframeTrack","QuaternionLinearInterpolant","QuaternionKeyframeTrack","StringKeyframeTrack","VectorKeyframeTrack","AnimationClip","duration","parseKeyframeTrack","json","trackType","typeName","toLowerCase","getTrackTypeForValueTypeName","evaluate","pp","validate_interval","seek","linear_scan","forward_scan","giveUpAt","afterEnd_","t1global","beforeStart_","mid","intervalChanged_","interpolate_","settings","DefaultSettings_","getSettings_","copySampleValue_","endingStart","endingEnd","iPrev","iNext","tPrev","tNext","halfDt","o1","o0","oP","oN","wP","wN","ppp","sP","sN","offset1","offset0","weight1","weight0","getInterpolation","ValueTypeName","InterpolantFactoryMethodDiscrete","InterpolantFactoryMethodLinear","InterpolantFactoryMethodSmooth","factoryMethod","createInterpolant","timeOffset","timeScale","startTime","endTime","nKeys","validate","valid","prevTime","currTime","optimize","smoothInterpolation","writeIndex","keep","offsetP","offsetN","readOffset","writeOffset","TypedKeyframeTrack","jsonTracks","frameTime","clipTracks","CreateFromMorphTargetSequence","morphTargetSequence","noLoop","numMorphTargets","findByName","objectOrClipArray","clipArray","animations","CreateClipsFromMorphTargetSequences","animationToMorphTargets","pattern","parts","animationMorphTargets","clips","parseAnimation","addNonemptyTrack","trackName","animationKeys","propertyName","destTracks","clipName","hierarchyTracks","hierarchy","morphTargetNames","morphTargetName","animationKey","boneName","Cache","files","file","LoadingManager","onLoad","onProgress","onError","isLoading","itemsLoaded","itemsTotal","urlModifier","handlers","onStart","itemStart","itemEnd","itemError","resolveURL","setURLModifier","addHandler","regex","loader","removeHandler","getHandler","DefaultLoadingManager","Loader","manager","crossOrigin","resourcePath","load","setCrossOrigin","setPath","setResourcePath","loading","FileLoader","AnimationLoader","CompressedTextureLoader","DataTextureLoader","ImageLoader","CubeTextureLoader","TextureLoader","Curve","arcLengthDivisions","EllipseCurve","aX","aY","xRadius","yRadius","aStartAngle","aEndAngle","aClockwise","aRotation","ArcCurve","aRadius","CubicPoly","c0","initCatmullRom","x3","tension","initNonuniformCatmullRom","dt0","dt1","dt2","t2","calc","cached","setTimeout","dataUriRegexResult","mimeType","isBase64","decodeURIComponent","atob","response","responseType","Blob","parser","DOMParser","parseFromString","request","XMLHttpRequest","header","open","callbacks","withCredentials","overrideMimeType","requestHeader","setRequestHeader","setResponseType","setWithCredentials","setMimeType","loadTexture","texDatas","loaded","mipmapCount","isCubemap","texData","onImageLoad","onImageError","substr","urls","isJPEG","search","getPoint","optionalTarget","getUtoTmapping","getPoints","divisions","getLength","lengths","getLengths","cacheArcLengths","current","updateArcLengths","targetArcLength","arcLengths","comparison","lengthBefore","getTangent","pt1","getTangentAt","mat","MAX_VALUE","tz","fromJSON","isEllipseCurve","twoPi","deltaAngle","samePoints","isArcCurve","pz","CatmullRomCurve3","curveType","CatmullRom","QuadraticBezier","QuadraticBezierP0","QuadraticBezierP1","QuadraticBezierP2","CubicBezier","CubicBezierP0","CubicBezierP1","CubicBezierP2","CubicBezierP3","CubicBezierCurve","v3","CubicBezierCurve3","LineCurve","LineCurve3","QuadraticBezierCurve","QuadraticBezierCurve3","SplineCurve","isCatmullRomCurve3","intPoint","weight","isCubicBezierCurve","isCubicBezierCurve3","isLineCurve","isLineCurve3","isQuadraticBezierCurve","isQuadraticBezierCurve3","isSplineCurve","Curves","CurvePath","curves","autoClose","Path","currentPoint","Shape","Light","HemisphereLight","LightShadow","_frameExtents","_viewportCount","_viewports","SpotLightShadow","SpotLight","power","PointLightShadow","_cubeDirections","_cubeUps","PointLight","OrthographicCamera","DirectionalLightShadow","DirectionalLight","AmbientLight","RectAreaLight","MaterialLoader","curve","closePath","startPoint","endPoint","curveLengths","getCurveLengths","segmentLength","lens","cacheLengths","sums","moveTo","lineTo","quadraticCurveTo","aCPx","aCPy","bezierCurveTo","aCP1x","aCP1y","aCP2x","aCP2y","splineThru","absarc","absellipse","ellipse","firstPoint","lastPoint","getPointsHoles","holesPts","_lightPositionWorld","_lookTarget","shadowMatrix","projScreenMatrix","lookTarget","lightPositionWorld","viewportIndex","isSpotLightShadow","zoomW","zoomH","scaleW","scaleH","isDirectionalLightShadow","getTexture","shading","setTextures","LoaderUtils","decodeText","TextDecoder","decode","fromCharCode","escape","extractUrlBase","lastIndexOf","InstancedBufferGeometry","InstancedBufferAttribute","BufferGeometryLoader","typedArray","TYPED_ARRAYS","bufferAttribute","drawcalls","offsets","ObjectLoader","parseShape","parseGeometries","parseImages","parseTextures","parseMaterials","parseObject","parseAnimations","bufferGeometryLoader","details","geometryShapes","THREE","LegacyJSONLoader","loadImage","currentUrl","parseConstant","TEXTURE_MAPPING","TEXTURE_WRAPPING","TEXTURE_FILTER","getGeometry","getMaterial","ImageBitmapLoader","createImageBitmap","fetch","ShapePath","subPaths","currentPath","Font","createPath","char","glyph","glyphs","cpx","cpy","cpx1","cpy1","cpx2","cpy2","outline","_cachedOutline","ha","familyName","FontLoader","setOptions","res","blob","imageBitmap","toShapes","isCCW","noHoles","toShapesNoHoles","inSubpaths","tmpPath","tmpShape","isPointInsidePolygon","inPolygon","polyLen","edgeLowPt","edgeHighPt","edgeDx","edgeDy","perpEdge","solid","holesFirst","tmpPoints","tmpHoles","betterShapeHoles","newShapes","newShapeHoles","mainIdx","ambiguous","toChange","sIdx","sLen","sho","hIdx","ho","hole_unassigned","s2Idx","froms","tos","paths","chars","line_height","yMax","yMin","underlineThickness","ret","createPaths","substring","AudioContext","webkitAudioContext","AudioLoader","SphericalHarmonics3","LightProbe","HemisphereLightProbe","sky","ground","AmbientLightProbe","bufferCopy","decodeAudioData","audioBuffer","isSphericalHarmonics3","zero","getAt","coeff","addScale","getIrradianceAt","getBasisAt","shBasis","isHemisphereLightProbe","isAmbientLightProbe","_eyeRight","_eyeLeft","StereoCamera","eyeSep","_cache","Clock","autoStart","oldTime","elapsedTime","running","xmin","xmax","eyeSepHalf","eyeSepOnProjection","ymax","performance","Date","now","getElapsedTime","getDelta","newTime","_position$2","_quaternion$3","_scale$1","_orientation","AudioListener","gain","createGain","connect","destination","timeDelta","_clock","Audio","getInput","autoplay","detune","loop","loopStart","loopEnd","playbackRate","isPlaying","hasPlaybackControl","sourceType","_startedAt","_pausedAt","filters","removeFilter","disconnect","getFilter","setFilter","getMasterVolume","setMasterVolume","setTargetAtTime","currentTime","positionX","linearRampToValueAtTime","positionY","positionZ","forwardX","forwardY","forwardZ","upX","upY","upZ","setOrientation","getOutput","setNodeSource","audioNode","setMediaElementSource","mediaElement","createMediaElementSource","setMediaStreamSource","mediaStream","createMediaStreamSource","setBuffer","play","delay","createBufferSource","onended","onEnded","setDetune","setPlaybackRate","pause","getFilters","setFilters","getDetune","getPlaybackRate","getLoop","setLoop","setLoopStart","setLoopEnd","getVolume","setVolume","_position$3","_quaternion$4","_scale$2","_orientation$1","PositionalAudio","panner","createPanner","panningModel","AudioAnalyser","audio","fftSize","analyser","createAnalyser","frequencyBinCount","PropertyMixer","binding","mixFunction","_slerp","_select","_lerp","_mixBufferRegion","cumulativeWeight","useCount","referenceCount","getRefDistance","refDistance","setRefDistance","getRolloffFactor","rolloffFactor","setRolloffFactor","getDistanceModel","distanceModel","setDistanceModel","getMaxDistance","maxDistance","setMaxDistance","setDirectionalCone","coneInnerAngle","coneOuterAngle","coneOuterGain","orientationX","orientationY","orientationZ","getFrequencyData","getByteFrequencyData","getAverageFrequency","accumulate","accuIndex","currentWeight","mix","originalValueOffset","saveOriginalState","getValue","restoreOriginalState","_reservedRe","RegExp","_wordCharOrDot","_directoryRe","_nodeRe","_objectRe","_propertyRe","_trackRe","_supportedObjectNames","Composite","targetGroup","optionalParsedPath","parsedPath","PropertyBinding","parseTrackName","_targetGroup","_bindings","subscribe_","rootNode","node","findNode","nodeName","AnimationObjectGroup","nCachedObjects_","_indicesByUUID","_paths","_parsedPaths","_bindingsIndicesByPath","stats","total","AnimationAction","mixer","localRoot","_mixer","_clip","_localRoot","nTracks","interpolants","interpolantSettings","interpolant","_interpolantSettings","_interpolants","_propertyBindings","_cacheIndex","_byClipCacheIndex","_timeScaleInterpolant","_weightInterpolant","_loopCount","_startTime","_effectiveTimeScale","_effectiveWeight","repetitions","paused","clampWhenFinished","zeroSlopeAtStart","zeroSlopeAtEnd","AnimationMixer","root","_root","_initMemoryManager","_accuIndex","Uniform","InstancedInterleavedBuffer","Raycaster","PointCloud","ascSort","_intersectObject","Spherical","Cylindrical","firstValidIndex","bindings","unbind","isAnimationObjectGroup","sanitizeNodeName","matches","results","objectName","objectIndex","propertyIndex","lastDot","subTreeNode","searchNodeSubtree","childNode","_getValue_unavailable","_setValue_unavailable","BindingType","Direct","EntireArray","ArrayElement","HasFromToArray","Versioning","None","NeedsUpdate","MatrixWorldNeedsUpdate","GetterByBindingType","resolvedProperty","SetterByBindingTypeAndVersioning","targetObject","dest","targetArray","sourceArray","nodeProperty","versioning","bindingType","_getValue_unbound","_setValue_unbound","nObjects","nCachedObjects","indicesByUUID","parsedPaths","nBindings","knownObject","firstActiveIndex","lastCachedObject","bindingsForPath","lastCached","lastCachedIndex","firstActiveObject","firstActive","uncache","lastObject","indicesByPath","unsubscribe_","lastBindingsIndex","lastBindings","_activateAction","_deactivateAction","stopFading","stopWarping","isRunning","_isActiveAction","isScheduled","startAt","setEffectiveWeight","getEffectiveWeight","fadeIn","_scheduleFading","fadeOut","crossFadeFrom","fadeOutAction","warp","fadeInDuration","fadeOutDuration","startEndRatio","endStartRatio","crossFadeTo","fadeInAction","weightInterpolant","_takeBackControlInterpolant","setEffectiveTimeScale","getEffectiveTimeScale","setDuration","syncWith","action","halt","startTimeScale","endTimeScale","_lendControlInterpolant","timeScaleInterpolant","getMixer","getClip","getRoot","_update","deltaTime","timeDirection","timeRunning","_updateTimeScale","clipTime","_updateTime","_updateWeight","propertyMixers","interpolantValue","loopCount","pingPong","_setEndings","handle_stop","loopDelta","pending","atStart","atEnd","weightNow","weightThen","_bindAction","prototypeAction","rootUuid","bindingsByRoot","_bindingsByRootAndName","bindingsByName","_addInactiveBinding","clipUuid","actionsForClip","_actionsByClip","knownActions","_addInactiveAction","_lendBinding","_lendAction","_takeBackBinding","_takeBackAction","_actions","_nActiveActions","_nActiveBindings","_controlInterpolants","_nActiveControlInterpolants","actions","controlInterpolants","actionsByClip","actionByRoot","_removeInactiveAction","lastInactiveAction","cacheIndex","knownActionsForClip","lastKnownAction","byClipCacheIndex","_removeInactiveBindingsForAction","_removeInactiveBinding","prevIndex","lastActiveIndex","firstInactiveAction","firstInactiveIndex","lastActiveAction","bindingByName","propBinding","lastInactiveBinding","firstInactiveBinding","lastActiveBinding","_controlInterpolantsResultBuffer","__cacheIndex","lastActiveInterpolant","clipAction","optionalRoot","clipObject","existingAction","newAction","stopAllAction","nActions","setTime","timeInSeconds","uncacheClip","actionsToRemove","uncacheRoot","uncacheAction","setFromCamera","coords","intersectObject","intersectObjects","other","makeSafe","setFromCartesianCoords","_vector$6","Box2","_startP","_startEnd","Line3","ImmediateRenderObject","distanceSq","closestPointToPointParameter","clampToLine","startEnd2","_v1$5","_v2$3","_normalMatrix$1","_keys","VertexNormalsHelper","nNormals","objGeometry","objPos","objNorm","_vector$7","SpotLightHelper","cone","coneLength","coneWidth","_vector$8","_boneMatrix","_matrixWorldInv","SkeletonHelper","getBoneList","boneList","PointLightHelper","sphereSize","RectAreaLightHelper","_vector$9","_color1","_color2","HemisphereLightHelper","LightProbeHelper","GridHelper","PolarGridHelper","radials","circles","PositionalAudioHelper","divisionsInnerAngle","divisionsOuterAngle","materialInnerAngle","materialOuterAngle","halfConeInnerAngle","halfConeOuterAngle","_v1$6","_v2$4","_normalMatrix$2","FaceNormalsHelper","_v1$7","_v2$5","_v3$1","DirectionalLightHelper","lightPlane","targetLine","_vector$a","_camera","CameraHelper","pointMap","colorFrustum","colorCone","colorUp","colorTarget","colorCross","addLine","addPoint","setPoint","_box$2","BoxHelper","Box3Helper","PlaneHelper","_lineGeometry","_coneGeometry","_axis","ArrowHelper","headLength","headWidth","setDirection","AxesHelper","Face4","setColor","LineStrip","LinePieces","MeshFaceMaterial","MultiMaterial","Particle","ParticleSystem","PointCloudMaterial","ParticleBasicMaterial","ParticleSystemMaterial","Vertex","DynamicBufferAttribute","setDynamic","Int8Attribute","Uint8Attribute","Uint8ClampedAttribute","Int16Attribute","Uint16Attribute","Int32Attribute","Uint32Attribute","Float32Attribute","Float64Attribute","ClosedSplineCurve3","SplineCurve3","Spline","AxisHelper","BoundingBoxHelper","EdgesHelper","WireframeHelper","XHRLoader","BinaryTextureLoader","construct","createPointsGeometry","createGeometry","createSpacedPointsGeometry","fromPoints","initFromArray","getControlPointsArray","reparametrizeByArcLength","setColors","Handlers","setTexturePath","isIntersectionBox","isIntersectionSphere","random16","nearestPowerOfTwo","nextPowerOfTwo","flattenToArrayOffset","multiplyVector3","multiplyVector3Array","applyToBuffer","applyToVector3Array","extractPosition","getPosition","multiplyToArray","multiplyVector4","rotateAxis","crossVector","rotateByAxis","makeFrustum","isIntersectionLine","isIntersectionPlane","barycoordFromPoint","midpoint","extractAllPoints","extrude","makeGeometry","fromAttribute","distanceToManhattan","lengthManhattan","setEulerFromRotationMatrix","setEulerFromQuaternion","getPositionFromMatrix","getScaleFromMatrix","getColumnFromMatrix","applyProjection","computeTangents","getChildByName","renderDepth","getWorldRotation","eulerOrder","useQuaternion","initBones","setLens","onlyShadow","shadowCameraFov","shadowCameraLeft","shadowCameraRight","shadowCameraTop","shadowCameraBottom","shadowCameraVisible","shadowDarkness","shadowMapWidth","shadowMapHeight","dynamic","copyIndicesArray","setArray","addIndex","addAttribute","addDrawCall","clearDrawCalls","computeOffsets","removeAttribute","getArrays","addShapeList","wrapAround","overdraw","wrapRGB","metal","clearTarget","animate","getCurrentRenderTarget","getPrecision","resetGLState","supportsFloatTextures","supportsHalfFloatTextures","supportsStandardDerivatives","supportsCompressedTextureS3TC","supportsCompressedTexturePVRTC","supportsBlendMinMax","supportsInstancedArrays","enableScissorTest","addPrePlugin","addPostPlugin","updateShadowMap","setFaceCulling","allocTextureUnit","setTexture","getActiveMipMapLevel","shadowMapCullFace","renderReverseSided","renderSingleSided","activeMipMapLevel","standing","getData","updateCubeMap","GeometryUtils","geometry1","CanvasRenderer","JSONLoader","loadTextureCube","loadCompressedTexture","loadCompressedTextureCube","SceneUtils","createMultiMaterialObject","detach","LensFlare","revision","_slicedToArray","arr","_arr","_n","_d","_e","_s","_i","unsupportedIterableToArray","global","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","sham","_toConsumableArray","arrayLikeToArray","iter","HttpResponse","statusCode","headers","isInstance","resp","HttpRequest","method","hostname","port","query","protocol","req","carry","paramName","param","isValidHostname","__decorate","decorators","desc","Reflect","decorate","asyncGeneratorStep","gen","_next","_throw","arg","_asyncToGenerator","fn","self","args","hasOwn","classNames","classes","argType","inner","default","isObject","it","DISPLAYNAME_PREFIX","INVALID_PROPS","removeNonHTMLProps","props","invalidProps","shouldMerge","curr","_defineProperty","ReactCSS","handleActive","handleHover","hover","_flattenNames2","_interopRequireDefault","_mergeClasses2","_autoprefix2","_hover3","_active2","_loop3","__esModule","_len","activations","_key","activeNames","check","globalThis","componentWillMount","getDerivedStateFromProps","componentWillReceiveProps","nextProps","prevState","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","Component","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","displayName","newApiName","componentDidUpdate","maybeSnapshot","snapshot","__suppressDeprecationWarning","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","CryptoJS","crypto","msCrypto","cryptoSecureRandomInt","getRandomValues","randomBytes","readInt32LE","F","subtype","C","C_lib","lib","Base","extend","overrides","mixIn","$super","WordArray","words","sigBytes","encoder","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","thatByte","nBytes","C_enc","enc","hexChars","bite","hexStr","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","Utf8","utf8Str","unescape","BufferedBlockAlgorithm","_data","_nDataBytes","_append","_process","doFlush","processedWords","dataWords","dataSigBytes","nBlocksReady","nWordsReady","_minBufferSize","nBytesReady","_doProcessBlock","C_algo","Hasher","cfg","_doReset","messageUpdate","finalize","_doFinalize","_createHelper","hasher","_createHmacHelper","HMAC","algo","factory","anObject","isArrayIteratorMethod","toLength","getIteratorMethod","callWithSafeIterationClosing","Result","stopped","iterable","that","AS_ENTRIES","IS_ITERATOR","iterFn","boundFunction","shared","uid","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","fails","toInteger","argument","NAME","NATIVE_ARRAY_BUFFER","DESCRIPTORS","classof","wellKnownSymbol","Int8ArrayPrototype","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","isPrototypeOf","TO_STRING_TAG","TYPED_ARRAY_TAG","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","aTypedArray","aTypedArrayConstructor","ARRAY","TypedArrayConstructor","exportTypedArrayMethod","KEY","exportTypedArrayStaticMethod","klass","IE8_DOM_DEFINE","toPrimitive","nativeDefineProperty","O","Attributes","_classCallCheck","NS","BLUEPRINT_NAMESPACE","REACT_APP_BLUEPRINT_NAMESPACE","ACTIVE","ALIGN_LEFT","ALIGN_RIGHT","DARK","DISABLED","FILL","FIXED","FIXED_TOP","INLINE","INTERACTIVE","LARGE","LOADING","MINIMAL","OUTLINED","MULTILINE","ROUND","SMALL","VERTICAL","POSITION_TOP","positionClass","TOP","POSITION_BOTTOM","BOTTOM","POSITION_LEFT","POSITION_RIGHT","ELEVATION_0","elevationClass","ZERO","ELEVATION_1","ONE","ELEVATION_2","TWO","ELEVATION_3","ELEVATION_4","FOUR","INTENT_PRIMARY","intentClass","PRIMARY","INTENT_SUCCESS","SUCCESS","INTENT_WARNING","WARNING","INTENT_DANGER","DANGER","FOCUS_DISABLED","UI_TEXT","RUNNING_TEXT","MONOSPACE_TEXT","TEXT_LARGE","TEXT_SMALL","TEXT_MUTED","TEXT_DISABLED","TEXT_OVERFLOW_ELLIPSIS","BLOCKQUOTE","CODE","CODE_BLOCK","HEADING","LIST","LIST_UNSTYLED","RTL","ALERT","ALERT_BODY","ALERT_CONTENTS","ALERT_FOOTER","BREADCRUMB","BREADCRUMB_CURRENT","BREADCRUMBS","BREADCRUMBS_COLLAPSED","BUTTON","BUTTON_GROUP","BUTTON_SPINNER","BUTTON_TEXT","CALLOUT","CALLOUT_ICON","CARD","COLLAPSE","COLLAPSE_BODY","COLLAPSIBLE_LIST","CONTEXT_MENU","CONTEXT_MENU_POPOVER_TARGET","CONTROL_GROUP","DIALOG","DIALOG_CONTAINER","DIALOG_BODY","DIALOG_CLOSE_BUTTON","DIALOG_FOOTER","DIALOG_FOOTER_ACTIONS","DIALOG_HEADER","DIVIDER","DRAWER","DRAWER_BODY","DRAWER_FOOTER","DRAWER_HEADER","EDITABLE_TEXT","EDITABLE_TEXT_CONTENT","EDITABLE_TEXT_EDITING","EDITABLE_TEXT_INPUT","EDITABLE_TEXT_PLACEHOLDER","FLEX_EXPANDER","HTML_SELECT","SELECT","HTML_TABLE","HTML_TABLE_BORDERED","HTML_TABLE_CONDENSED","HTML_TABLE_STRIPED","INPUT","INPUT_GHOST","INPUT_GROUP","INPUT_LEFT_CONTAINER","INPUT_ACTION","CONTROL","CONTROL_INDICATOR","CONTROL_INDICATOR_CHILD","CHECKBOX","RADIO","SWITCH","SWITCH_INNER_TEXT","FILE_INPUT","FILE_INPUT_HAS_SELECTION","FILE_UPLOAD_INPUT","FILE_UPLOAD_INPUT_CUSTOM_TEXT","KEY_COMBO","MODIFIER_KEY","HOTKEY","HOTKEY_LABEL","HOTKEY_COLUMN","HOTKEY_DIALOG","LABEL","FORM_GROUP","FORM_CONTENT","FORM_HELPER_TEXT","MENU","MENU_ITEM","MENU_ITEM_LABEL","MENU_SUBMENU","MENU_DIVIDER","MENU_HEADER","NAVBAR","NAVBAR_GROUP","NAVBAR_HEADING","NAVBAR_DIVIDER","NON_IDEAL_STATE","NON_IDEAL_STATE_VISUAL","NUMERIC_INPUT","OVERFLOW_LIST","OVERFLOW_LIST_SPACER","OVERLAY","OVERLAY_BACKDROP","OVERLAY_CONTAINER","OVERLAY_CONTENT","OVERLAY_INLINE","OVERLAY_OPEN","OVERLAY_SCROLL_CONTAINER","PANEL_STACK","PANEL_STACK_HEADER","PANEL_STACK_HEADER_BACK","PANEL_STACK_VIEW","POPOVER","POPOVER_ARROW","POPOVER_BACKDROP","POPOVER_CONTENT","POPOVER_CONTENT_SIZING","POPOVER_DISMISS","POPOVER_DISMISS_OVERRIDE","POPOVER_OPEN","POPOVER_TARGET","POPOVER_WRAPPER","TRANSITION_CONTAINER","PROGRESS_BAR","PROGRESS_METER","PROGRESS_NO_STRIPES","PROGRESS_NO_ANIMATION","PORTAL","SKELETON","SLIDER","SLIDER_AXIS","SLIDER_HANDLE","SLIDER_LABEL","SLIDER_TRACK","SLIDER_PROGRESS","START","END","SPINNER","SPINNER_ANIMATION","SPINNER_HEAD","SPINNER_NO_SPIN","SPINNER_TRACK","TAB","TAB_INDICATOR","TAB_INDICATOR_WRAPPER","TAB_LIST","TAB_PANEL","TABS","TAG","TAG_REMOVE","TAG_INPUT","TAG_INPUT_ICON","TAG_INPUT_VALUES","TOAST","TOAST_CONTAINER","TOAST_MESSAGE","TOOLTIP","TOOLTIP_INDICATOR","TREE","TREE_NODE","TREE_NODE_CARET","TREE_NODE_CARET_CLOSED","TREE_NODE_CARET_NONE","TREE_NODE_CARET_OPEN","TREE_NODE_CONTENT","TREE_NODE_EXPANDED","TREE_NODE_ICON","TREE_NODE_LABEL","TREE_NODE_LIST","TREE_NODE_SECONDARY_LABEL","TREE_NODE_SELECTED","TREE_ROOT","ICON","ICON_STANDARD","ICON_LARGE","getClassNamespace","alignmentClass","alignment","elevation","iconClass","iconName","intent","NONE","alias","_Alpha","_Checkboard","_EditableInput","_Hue","_Raised","_Saturation","_ColorWrap","_Swatch","requireObjectCoercible","_defineProperties","_createClass","protoProps","staticProps","Position","BOTTOM_LEFT","BOTTOM_RIGHT","LEFT_BOTTOM","LEFT_TOP","RIGHT_BOTTOM","RIGHT_TOP","TOP_LEFT","TOP_RIGHT","ReferenceError","aFunction","variable","namespace","ns","CLAMP_MIN_MAX","INPUT_WARN_LEFT_ELEMENT_LEFT_ICON_MUTEX","POPOVER_REQUIRES_TARGET","POPOVER_HAS_BACKDROP_INTERACTION","POPOVER_WARN_TOO_MANY_CHILDREN","POPOVER_WARN_DOUBLE_CONTENT","POPOVER_WARN_DOUBLE_TARGET","POPOVER_WARN_EMPTY_CONTENT","POPOVER_WARN_HAS_BACKDROP_INLINE","POPOVER_WARN_UNCONTROLLED_ONINTERACTION","PORTAL_CONTEXT_CLASS_NAME_STRING","SLIDER_ZERO_STEP","SLIDER_ZERO_LABEL_STEP","MULTISLIDER_INVALID_CHILD","SPINNER_WARN_CLASSES_SIZE","SHORT_TO_HEX","HEX_TO_SHORT","encodedByte","fromHex","encoded","out","toHex","bytes","byteLength","AbstractPureComponent2","timeoutIds","clearTimeouts","timeoutId","clearTimeout","validateProps","_prevProps","_prevState","_snapshot","componentWillUnmount","timeout","handle","_props","SPECIES","defaultConstructor","S","IndexedObject","toObject","arraySpeciesCreate","createMethod","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","callbackfn","specificCreate","some","every","find","undef","Cipher","Base64","EvpKDF","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","process","dataUpdate","keySize","ivSize","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","cipher","encrypt","decrypt","ciphertext","C_mode","StreamCipher","BlockCipherMode","iv","Encryptor","Decryptor","_cipher","_iv","CBC","xorBlock","block","_prevBlock","processBlock","encryptBlock","thisBlock","decryptBlock","Pkcs7","pad","blockSizeBytes","nPaddingBytes","paddingWord","paddingWords","padding","unpad","CipherParams","BlockCipher","modeCreator","_mode","__creator","finalProcessedBlocks","cipherParams","formatter","OpenSSLFormatter","OpenSSL","salt","openSSLStr","ciphertextWords","encryptor","cipherCfg","algorithm","_parse","OpenSSLKdf","kdf","execute","password","compute","derivedParams","propertyIsEnumerableModule","createPropertyDescriptor","toIndexedObject","nativeGetOwnPropertyDescriptor","wrappedWellKnownSymbolModule","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","isFunction","safeInvoke","safeInvokeOrValue","funcOrValue","condition","inspectSource","InternalStateModule","getInternalState","enforceInternalState","enforce","TEMPLATE","unsafe","simple","definePropertyModule","thrower","METHOD_NAME","ACCESSORS","argument0","argument1","rgb","xyz","A","D50","D55","D65","D75","F2","F7","F11","E","10","whitepoint","_xyz","white","AbortIncompleteMultipartUpload","AbortMultipartUploadOutput","AbortMultipartUploadRequest","NoSuchUpload","AccelerateConfiguration","Grantee","Grant","Owner","AccessControlPolicy","AccessControlTranslation","CompleteMultipartUploadOutput","CompletedPart","CompletedMultipartUpload","CompleteMultipartUploadRequest","CopyObjectResult","CopyObjectOutput","CopyObjectRequest","ObjectNotInActiveTierError","BucketAlreadyExists","BucketAlreadyOwnedByYou","CreateBucketOutput","CreateBucketConfiguration","CreateBucketRequest","CreateMultipartUploadOutput","CreateMultipartUploadRequest","DeleteBucketRequest","DeleteBucketAnalyticsConfigurationRequest","DeleteBucketCorsRequest","DeleteBucketEncryptionRequest","DeleteBucketIntelligentTieringConfigurationRequest","DeleteBucketInventoryConfigurationRequest","DeleteBucketLifecycleRequest","DeleteBucketMetricsConfigurationRequest","DeleteBucketOwnershipControlsRequest","DeleteBucketPolicyRequest","DeleteBucketReplicationRequest","DeleteBucketTaggingRequest","DeleteBucketWebsiteRequest","DeleteObjectOutput","DeleteObjectRequest","DeletedObject","_Error","DeleteObjectsOutput","ObjectIdentifier","Delete","DeleteObjectsRequest","DeleteObjectTaggingOutput","DeleteObjectTaggingRequest","DeletePublicAccessBlockRequest","GetBucketAccelerateConfigurationOutput","GetBucketAccelerateConfigurationRequest","GetBucketAclOutput","GetBucketAclRequest","Tag","AnalyticsAndOperator","AnalyticsFilter","AnalyticsS3BucketDestination","AnalyticsExportDestination","StorageClassAnalysisDataExport","StorageClassAnalysis","AnalyticsConfiguration","GetBucketAnalyticsConfigurationOutput","GetBucketAnalyticsConfigurationRequest","CORSRule","GetBucketCorsOutput","GetBucketCorsRequest","ServerSideEncryptionByDefault","ServerSideEncryptionRule","ServerSideEncryptionConfiguration","GetBucketEncryptionOutput","GetBucketEncryptionRequest","IntelligentTieringAndOperator","IntelligentTieringFilter","Tiering","IntelligentTieringConfiguration","GetBucketIntelligentTieringConfigurationOutput","GetBucketIntelligentTieringConfigurationRequest","SSEKMS","SSES3","InventoryEncryption","InventoryS3BucketDestination","InventoryDestination","InventoryFilter","InventorySchedule","InventoryConfiguration","GetBucketInventoryConfigurationOutput","GetBucketInventoryConfigurationRequest","LifecycleExpiration","LifecycleRuleAndOperator","LifecycleRuleFilter","NoncurrentVersionExpiration","NoncurrentVersionTransition","Transition","LifecycleRule","GetBucketLifecycleConfigurationOutput","GetBucketLifecycleConfigurationRequest","GetBucketLocationOutput","GetBucketLocationRequest","TargetGrant","LoggingEnabled","GetBucketLoggingOutput","GetBucketLoggingRequest","MetricsAndOperator","MetricsFilter","MetricsConfiguration","GetBucketMetricsConfigurationOutput","GetBucketMetricsConfigurationRequest","GetBucketNotificationConfigurationRequest","FilterRule","S3KeyFilter","NotificationConfigurationFilter","LambdaFunctionConfiguration","QueueConfiguration","TopicConfiguration","NotificationConfiguration","OwnershipControlsRule","OwnershipControls","GetBucketOwnershipControlsOutput","GetBucketOwnershipControlsRequest","GetBucketPolicyOutput","GetBucketPolicyRequest","PolicyStatus","GetBucketPolicyStatusOutput","GetBucketPolicyStatusRequest","DeleteMarkerReplication","EncryptionConfiguration","ReplicationTimeValue","Metrics","ReplicationTime","Destination","ExistingObjectReplication","ReplicationRuleAndOperator","ReplicationRuleFilter","ReplicaModifications","SseKmsEncryptedObjects","SourceSelectionCriteria","ReplicationRule","ReplicationConfiguration","GetBucketReplicationOutput","GetBucketReplicationRequest","GetBucketRequestPaymentOutput","GetBucketRequestPaymentRequest","GetBucketTaggingOutput","GetBucketTaggingRequest","GetBucketVersioningOutput","GetBucketVersioningRequest","ErrorDocument","IndexDocument","RedirectAllRequestsTo","Condition","Redirect","RoutingRule","GetBucketWebsiteOutput","GetBucketWebsiteRequest","GetObjectOutput","GetObjectRequest","InvalidObjectState","NoSuchKey","GetObjectAclOutput","GetObjectAclRequest","ObjectLockLegalHold","GetObjectLegalHoldOutput","GetObjectLegalHoldRequest","DefaultRetention","ObjectLockRule","ObjectLockConfiguration","GetObjectLockConfigurationOutput","GetObjectLockConfigurationRequest","ObjectLockRetention","GetObjectRetentionOutput","GetObjectRetentionRequest","GetObjectTaggingOutput","GetObjectTaggingRequest","GetObjectTorrentOutput","GetObjectTorrentRequest","PublicAccessBlockConfiguration","GetPublicAccessBlockOutput","GetPublicAccessBlockRequest","HeadBucketRequest","NotFound","HeadObjectOutput","HeadObjectRequest","ListBucketAnalyticsConfigurationsOutput","ListBucketAnalyticsConfigurationsRequest","ListBucketIntelligentTieringConfigurationsOutput","ListBucketIntelligentTieringConfigurationsRequest","ListBucketInventoryConfigurationsOutput","ListBucketInventoryConfigurationsRequest","ListBucketMetricsConfigurationsOutput","ListBucketMetricsConfigurationsRequest","Bucket","ListBucketsOutput","CommonPrefix","Initiator","MultipartUpload","ListMultipartUploadsOutput","ListMultipartUploadsRequest","_Object","ListObjectsOutput","ListObjectsRequest","NoSuchBucket","ListObjectsV2Output","ListObjectsV2Request","DeleteMarkerEntry","ObjectVersion","ListObjectVersionsOutput","ListObjectVersionsRequest","Part","ListPartsOutput","ListPartsRequest","PutBucketAccelerateConfigurationRequest","PutBucketAclRequest","PutBucketAnalyticsConfigurationRequest","CORSConfiguration","PutBucketCorsRequest","PutBucketEncryptionRequest","PutBucketIntelligentTieringConfigurationRequest","PutBucketInventoryConfigurationRequest","BucketLifecycleConfiguration","PutBucketLifecycleConfigurationRequest","BucketLoggingStatus","PutBucketLoggingRequest","PutBucketMetricsConfigurationRequest","PutBucketNotificationConfigurationRequest","PutBucketOwnershipControlsRequest","PutBucketPolicyRequest","PutBucketReplicationRequest","RequestPaymentConfiguration","PutBucketRequestPaymentRequest","Tagging","PutBucketTaggingRequest","VersioningConfiguration","PutBucketVersioningRequest","WebsiteConfiguration","PutBucketWebsiteRequest","PutObjectOutput","PutObjectRequest","PutObjectAclOutput","PutObjectAclRequest","PutObjectLegalHoldOutput","PutObjectLegalHoldRequest","PutObjectLockConfigurationOutput","PutObjectLockConfigurationRequest","PutObjectRetentionOutput","PutObjectRetentionRequest","PutObjectTaggingOutput","PutObjectTaggingRequest","PutPublicAccessBlockRequest","ObjectAlreadyInActiveTierError","RestoreObjectOutput","GlacierJobParameters","filterSensitiveLog","SSEKMSKeyId","SSEKMSEncryptionContext","SSECustomerKey","CopySourceSSECustomerKey","visit","visitor","Prefix","And","$unknown","Filter","KMSMasterKeyID","ApplyServerSideEncryptionByDefault","Rules","item","KeyId","Encryption","S3BucketDestination","AnalyticsConfigurationList","InventoryConfigurationList","MetricsConfigurationList","LifecycleConfiguration","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","store","wmget","wmhas","wmset","STATE","getterFor","quot","tag","val","isUndefined","isArrayBuffer","isBuffer","isFormData","FormData","isArrayBufferView","isString","isNumber","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","product","assignValue","deepMerge","baseMerge","createAssigner","srcIndex","_construct","Parent","pipe_1","InstagramFiltersError_1","applyPresetOnCanvas","presets","InstagramFiltersError","firstPreset","nextPresets","pixels","getImageData","filteredPixels","applyPresetOnImage","createElement","naturalWidth","naturalHeight","toBlob","applyPresetOnImageURL","imageElement","Image","__export","webpackPolyfill","deprecate","retryMiddlewareOptions","getRetryPlugin","clientStack","retryStrategy","userAgent","retry","CLOCK_SKEW_ERROR_CODES","THROTTLING_ERROR_CODES","TRANSIENT_ERROR_CODES","TRANSIENT_ERROR_STATUS_CODES","$metadata","httpStatusCode","$retryable","throttling","rnds8","rng","byteToHex","RETRY_MODES","buf","rnds","DEFAULT_RETRY_MODE","STANDARD","delayBase","attempts","isRetryableByTrait","StandardRetryStrategy","maxAttemptsProvider","retryDecider","delayDecider","retryQuota","initialRetryTokens","MAX_CAPACITY","noRetryIncrement","retryCost","timeoutRetryCost","availableCapacity","getCapacityAmount","hasRetryTokens","retrieveRetryTokens","capacityAmount","releaseRetryTokens","capacityReleaseAmount","shouldRetry","maxAttempts","getMaxAttempts","retryTokenAmount","totalDelay","_loop_1","this_1","state_1","delay_1","beforeRequest","afterRequest","totalRetryDelay","asSdkError","DefaultRateLimiter","currentCapacity","lastMaxRate","measuredTxRate","requestCount","lastTimestamp","timeWindow","beta","minCapacity","minFillRate","scaleConstant","smooth","currentTimeInSeconds","getCurrentTimeInSeconds","lastThrottleTime","lastTxRateBucket","fillRate","maxCapacity","getSendToken","acquireTokenBucket","refillTokenBucket","timestamp","fillAmount","updateClientSendingRate","calculatedRate","updateMeasuredRate","rateToUse","calculateTimeWindow","cubicThrottle","enableTokenBucket","cubicSuccess","newRate","updateTokenBucketRate","getPrecise","timeBucket","currentRate","num","toFixed","AdaptiveRetryStrategy","rateLimiter","superOptions","ADAPTIVE","input","retryMode","retryModeProvider","promisified_1","CORRECT_PROTOTYPE_GETTER","IE_PROTO","freeGlobal","freeSelf","TextEncoder","encode","surrogatePair","decoded","byte","nextByte","byteValue","IconSvgPaths16","IconSvgPaths20","Icon","Icon_1","icon","className","htmlTitle","iconSize","SIZE_STANDARD","title","tagName","htmlprops","pixelGridSize","SIZE_LARGE","renderSvgPaths","viewBox","fill","pathsSize","pathStrings","fillRule","_createForOfIteratorHelper","normalCompletion","didErr","_e2","mod","aa","execScript","POSITIVE_INFINITY","bufferSize","resize","ba","ca","U","V","D","M","fa","G","H","I","J","K","L","da","ea","R","ga","Q","W","verify","Y","Z","$","ia","X","BLOCK","Zlib","NURBSUtils","findSpan","calcBasisFunctions","span","saved","rv","lv","temp","calcBSplinePoint","Nj","wNj","calcBasisFunctionDerivatives","zeroArr","ders","ndu","rk","pk","j2","calcBSplineDerivatives","nd","du","CK","nders","Pw","calcKoverI","nom","calcRationalCurveDerivatives","Pders","Aders","wders","calcNURBSDerivatives","calcSurfacePoint","uspan","vspan","Nu","Nv","Sw","degree","knots","controlPoints","startKnot","endKnot","hpoint","fbxTree","connections","sceneGraph","FBXLoader","FBXTreeParser","textureLoader","GeometryParser","AnimationParser","TextParser","BinaryParser","BinaryReader","littleEndian","dv","FBXTree","getFbxVersion","convertFBXTimeToSeconds","FBXBuffer","CORRECT","convertArrayBufferToString","isFbxFormatBinary","FBXText","cursor","read","isFbxFormatASCII","parseConnections","deformers","parseDeformers","geometryMap","parseScene","connectionMap","Map","Connections","rawConnection","fromID","toID","relationship","parents","parentRelationship","ID","childRelationship","blobs","Objects","videoNodes","Video","nodeID","videoNode","RelativeFilename","Filename","arrayBufferContent","Content","base64Content","parseImage","filename","content","fileName","URL","createObjectURL","textureMap","textureNodes","parseTexture","textureNode","attrName","wrapModeU","WrapModeU","wrapModeV","WrapModeV","valueU","valueV","Scaling","FileName","materialMap","materialNodes","parseMaterial","materialNode","ShadingModel","parseParameters","BumpFactor","Diffuse","DiffuseColor","DisplacementFactor","Emissive","EmissiveColor","EmissiveFactor","Opacity","ReflectionFactor","Shininess","Specular","SpecularColor","LayeredTexture","skeletons","DeformerNodes","Deformer","deformerNode","relationships","attrType","parseSkeleton","geometryID","rawTargets","parseMorphTargets","deformerNodes","rawBones","boneNode","rawBone","weights","transformLink","TransformLink","Indexes","Weights","rawMorphTargets","morphTargetNode","rawMorphTarget","initialWeight","DeformPercent","fullWeights","FullWeights","geoID","modelMap","parseModels","modelNodes","Model","model","modelNode","setLookAtProperties","connection","bindSkeleton","createAmbientLight","setupMorphMaterials","transformData","parentMatrixWorld","generateTransform","buildSkeleton","createCamera","createLight","createMesh","createCurve","getTransformData","subBone","cameraAttribute","attr","NodeAttribute","CameraProjectionType","nearClippingPlane","NearPlane","farClippingPlane","FarPlane","innerWidth","innerHeight","AspectWidth","AspectHeight","FieldOfView","FocalLength","lightAttribute","LightType","Intensity","CastLightOnObject","FarAttenuationEnd","EnableFarAttenuation","InnerAngle","OuterAngle","CastShadows","FBX_Deformer","geo","inheritType","InheritType","getEulerOrder","RotationOrder","translation","Lcl_Translation","preRotation","PreRotation","Lcl_Rotation","postRotation","PostRotation","Lcl_Scaling","scalingOffset","ScalingOffset","scalingPivot","ScalingPivot","rotationOffset","RotationOffset","rotationPivot","RotationPivot","lookAtTarget","pos","bindMatrices","parsePoseNodes","geoConnParent","BindPoseNode","Pose","poseNodes","PoseNode","poseNode","Matrix","GlobalSettings","ambientColor","AmbientColor","setupMorphMaterial","matUuid","sharedMat","clonedMat","geoNodes","parseGeometry","geoNode","parseMeshGeometry","parseNurbsGeometry","GeometricTranslation","GeometricRotation","GeometricScaling","genGeometry","preTransform","geoInfo","parseGeoNode","genBuffers","weightsIndices","vertexWeights","normalAttribute","mappingType","prevMaterialIndex","startIndex","currentIndex","lastGroup","addMorphTargets","vertexPositions","Vertices","vertexIndices","PolygonVertexIndex","LayerElementColor","parseVertexColors","LayerElementMaterial","parseMaterialIndices","LayerElementNormal","parseNormals","LayerElementUV","parseUVs","weightTable","polygonIndex","faceLength","displayedWeightsWarning","facePositionIndexes","faceColors","faceUVs","faceWeights","faceWeightIndices","vertexIndex","polygonVertexIndex","endOfFace","weightIndices","wt","wIndex","Weight","weightIndex","comparedWeight","comparedWeightIndex","comparedWeightArray","genFace","parentGeo","parentGeoNode","rawTarget","morphGeoNode","genMorphGeometry","morphGeo","morphPositions","morphIndex","morphGeoInfo","morphBuffers","NormalNode","MappingInformationType","referenceType","ReferenceInformationType","Normals","indexBuffer","NormalIndex","NormalsIndex","dataSize","UVNode","UV","UVIndex","ColorNode","Colors","ColorIndex","MaterialNode","materialIndexBuffer","materialIndices","Order","KnotVector","pointsValues","Form","animationClips","rawClips","parseClips","rawClip","addClip","AnimationCurve","curveNodesMap","parseAnimationCurveNodes","parseAnimationCurves","layersMap","parseAnimationLayers","parseAnimStacks","rawCurveNodes","AnimationCurveNode","rawCurveNode","curveNode","rawCurves","animationCurve","KeyTime","KeyValueFloat","animationCurveID","animationCurveRelationship","rawLayers","AnimationLayer","layerCurveNodes","modelID","modelName","rawModel","initialPosition","initialRotation","initialScale","morph","deformerID","morpherID","morphName","rawStacks","AnimationStack","rawTracks","generateTracks","positionTrack","generateVectorTrack","rotationTrack","generateRotationTrack","scaleTrack","morphTrack","generateMorphTrack","initialValue","getTimesForAllAxes","getKeyframeTrackValues","interpolateRotations","quaternionValues","morphNum","elem","prevValue","xIndex","yIndex","zIndex","xValue","yValue","zValue","valuesSpan","absoluteSpan","numSubIntervals","nextValue","initialTime","interval","nextTime","interpolatedTimes","interpolatedValues","inject","getPrevNode","nodeStack","currentIndent","getCurrentNode","getCurrentProp","currentProp","pushStack","popStack","setCurrentProp","currentPropName","allNodes","matchComment","matchEmpty","matchBeginning","matchProperty","parseNodeBegin","parseNodeProperty","parseNodePropertyContinued","nodeAttrs","attrs","parseNodeAttr","currentNode","contentLine","propName","propValue","connProps","rest","append","parseNumberArray","parseNodeSpecialProperty","prop","innerPropName","innerPropType1","innerPropType2","innerPropFlag","innerPropValue","reader","skip","getUint32","endOfContent","parseNode","getOffset","endOffset","getUint64","numProperties","nameLen","getUint8","getString","propertyList","parseProperty","singleProperty","subNode","parseSubNode","getBoolean","getFloat64","getFloat32","getInt32","getInt64","getArrayBuffer","getInt16","arrayLength","compressedLength","getBooleanArray","getFloat64Array","getFloat32Array","getInt32Array","getInt64Array","reader2","Inflate","decompress","nullByte","dataArray","infoObject","tempEuler","tempVec","lTranslationM","lPreRotationM","lRotationM","lPostRotationM","lScalingM","lScalingPivotM","lScalingOffsetM","lRotationOffsetM","lRotationPivotM","lParentGX","lGlobalT","lLRM","lParentGRM","lLSM","lParentGSM","lParentGRSM","lGlobalRS","lParentTM","lParentLSM","lParentGSM_noLocal","lTransform","lLocalTWithAllPivotAndOffsetInfo","lGlobalTranslation","enums","PREFERRED_STRING","valueOf","IS_PURE","getIterator","red","getContrastingColor","isValidHex","toState","simpleCheckForValidColor","_each2","_tinycolor2","checked","passed","letter","oldHue","hsl","toHsl","hsv","toHsv","toRgb","lh","isValid","col","ManagerReferenceNodeContext","ManagerReferenceNodeSetterContext","_React$Component","Manager","newReferenceNode","referenceNode","forceUpdate","_proto","Provider","setReferenceNode","unwrapArray","setRef","ref","InnerReference","innerRef","Boolean","refHandler","Reference","Consumer","initialStyle","pointerEvents","initialArrowStyle","InnerPopper","placement","popperNode","updatePopperInstance","arrowNode","eventsEnabled","positionFixed","modifiers","arrow","applyStyle","updateStateModifier","popper","styles","arrowStyles","hide","popperInstance","destroyPopperInstance","referenceElement","getOptions","scheduleUpdate","strict","enableEventListeners","disableEventListeners","setPopperNode","getPopperStyle","getPopperPlacement","outOfBoundaries","getOutOfBoundariesState","arrowProps","setArrowNode","getArrowStyle","placements","Popper","_ref","isVerticalPosition","getOppositePosition","getAlignment","getTransformOrigin","arrowElement","arrowSizeShift","clientHeight","arrowOffsetModifier","arrowSize","clientWidth","isVertical","offsetSide","arrowOffsetSize","getArrowAngle","positionToPlacement","assertNever","PopoverInteractionKind","CLICK","CLICK_TARGET_ONLY","HOVER","HOVER_TARGET_ONLY","Popover","hasDarkParent","isOpen","getIsOpen","transformOrigin","isMouseInTargetOrPopover","lostFocusOnSamePage","refHandlers","popover","popoverElement","popoverRef","targetElement","reposition","popperScheduleUpdate","renderPopover","popperProps","usePortal","interactionKind","popoverHandlers","onClick","handlePopoverClick","onMouseEnter","handleMouseEnter","onMouseLeave","handleMouseLeave","popoverClasses","inheritDarkTheme","minimal","popoverClassName","onResize","isArrowEnabled","understandChildren","referenceProps","openOnTargetFocus","targetClassName","targetProps","isControlled","isHoverInteractionKind","targetTagName","finalTargetProps","onBlur","handleTargetBlur","onFocus","handleTargetFocus","handleTargetClick","rawTabIndex","tabIndex","clonedTarget","disabled","relatedTarget","isElementInPopover","setOpenState","hoverOpenDelay","hoverCloseDelay","eventTarget","dismissElement","closest","shouldDismiss","classList","contains","isDisabled","isDefaultPrevented","captureDismiss","handleOverlayClose","nativeEvent","KeyboardEvent","updatePopoverState","wrapperTagName","isContentEmpty","wrapperClasses","wrapper","autoFocus","backdropClassName","backdropProps","canEscapeKeyClose","canOutsideClickClose","portalClassName","enforceFocus","hasBackdrop","onClose","onClosed","onClosing","onOpened","onOpening","transitionDuration","transitionName","portalContainer","getPopperModifiers","componentDidMount","updateDarkParent","nextIsOpen","onInteraction","childrenCount","hasContentProp","hasTargetProp","contentProp","targetProp","targetChild","contentChild","defaultIsOpen","boundary","flip","preventOverflow","arrowOffset","boundariesElement","cancelOpenTimeout","defaultProps","deserializerMiddlewareOption","serializerMiddlewareOption","getSerdePlugin","serializer","deserializer","commandStack","parsed","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","anInstance","toIndex","toOffset","getOwnPropertyNames","typedArrayFrom","setSpecies","getOwnPropertyDescriptorModule","inheritIfRequired","setInternalState","RangeError","fromList","addGetter","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","CLAMPED","BYTES","CONSTRUCTOR_NAME","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","exported","addElement","byteOffset","getter","setter","dummy","typedArrayOffset","$length","$len","img","fetchBlobCallback","isInstanceOf","onerror","onload","hasMetaOption","fetchBlob","readFile","urlAPI","revokeObjectURL","webkitURL","revokeHelper","noRevoke","originalWidth","originalHeight","FileReader","fileReader","nameStartChar","nameRegexp","regexName","isExist","isEmptyObject","arrayMode","buildOptions","defaultOptions","newOptions","isTagNameInArrayMode","parentTagName","isName","getAllMatches","allmatches","Elevation","Intent","XmlNode","withName","addChildNode","hasChildren","xmlText","attributeName","XmlText","basePath","resolvedPath","labelValue","contents","endpoint","isSerializableHeaderValue","MFA","RequestPayer","BypassGovernanceRetention","ExpectedBucketOwner","endsWith","Delimiter","delimiter","EncodingType","Marker","marker","MaxKeys","ACL","CacheControl","ContentDisposition","ContentEncoding","ContentLanguage","ContentLength","ContentMD5","ContentType","Expires","expires","GrantFullControl","GrantRead","GrantReadACP","GrantWriteACP","ServerSideEncryption","StorageClass","WebsiteRedirectLocation","SSECustomerAlgorithm","SSECustomerKeyMD5","BucketKeyEnabled","ObjectLockMode","ObjectLockRetainUntilDate","toISOString","ObjectLockLegalHoldStatus","Metadata","acc","suffix","Key","Body","deserializeMetadata","Deleted","Errors","RequestCharged","deserializeAws_restXmlDeletedObjects","deserializeAws_restXmlErrors","parsedOutput","errorCode","parsedBody","loadRestXmlErrorCode","code","Code","Message","$fault","CommonPrefixes","Contents","IsTruncated","Name","NextMarker","deserializeAws_restXmlCommonPrefixList","deserializeAws_restXmlObjectList","ETag","Expiration","VersionId","collectBody","bodyNode","serializeAws_restXmlObjectIdentifierList","Quiet","DeleteMarker","DeleteMarkerVersionId","LastModified","Size","DisplayName","requestId","extendedRequestId","cfId","streamBody","streamCollector","collectBodyString","utf8Encoder","parsedObj","attributeNamePrefix","ignoreAttributes","parseNodeValue","trimValues","tagValueProcessor","parsedObjToReturn","isClient","on","off","escapeUri","uri","hexEncode","isCommonjs","fnMap","eventNameMap","change","fullscreenchange","fullscreenerror","screenfull","onFullScreenEntered","returnPromise","documentElement","requestFullscreen","exit","isFullscreen","onFullScreenExit","exitFullscreen","onchange","eventName","raw","fullscreenElement","isEnabled","fullscreenEnabled","bitmap","integer","activeXDocument","enumBugKeys","html","documentCreateElement","EmptyConstructor","scriptTag","LT","_NullProtoObject","domain","ActiveXObject","write","close","parentWindow","NullProtoObjectViaActiveX","iframeDocument","iframe","display","appendChild","contentWindow","NullProtoObjectViaIFrame","Properties","UNSCOPABLES","ArrayPrototype","TYPED_OK","_has","sources","shrinkBuf","fnTyped","arraySet","src_offs","dest_offs","flattenChunks","chunk","fnUntyped","setTyped","Buf8","Buf16","Buf32","DOMAIN_PATTERN","IP_ADDRESS_PATTERN","DOTS_PATTERN","DOT_PATTERN","S3_HOSTNAME_PATTERN","S3_US_EAST_1_ALTNAME_PATTERN","getPseudoRegion","region","isFipsRegion","getRegionalSuffix","validateRegion","clientRegion","allowFipsRegion","isEqualRegions","useArnRegion","clientSigningRegion","regionA","regionB","validateDNSHostLabel","tlsCompatible","validateNoDualstack","dualstackEndpoint","isCustomEndpoint","baseHostname","accelerateEndpoint","bucketName","isBucketNameOptions","hostnameSuffix","pathStyleEndpoint","clientPartition","validateArnEndpointOptions","service","partition","accountId","resource","validateService","validatePartition","validateAccountId","validateRegionalClient","_f","resourceType","accesspointName","outpostId","DNSHostLabel","endpointRegion","signingRegion","bucketEndpoint","signingService","validateOutpostService","validateNoFIPS","validateS3Service","_g","isDnsCompatibleBucketName","bucketEndpointMiddlewareOptions","getBucketEndpointPlugin","replaceBucketInPath","bucketArn","modifiedSigningRegion","regionInfoProvider","useAccelerateEndpoint","useDualstackEndpoint","forcePathStyle","resolveBucketEndpointConfig","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","for","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","getKeys","symbol","getEnumerableOwnPropertySymbols","propertyIsOnObject","mergeObject","propertyIsUnsafe","customMerge","getMergeFunction","arrayMerge","sourceIsArray","all","deepmerge_1","alphabetByEncoding","alphabetByValue","limit","fromBase64","totalByteLength","dataView","bitLength","chunkOffset","setUint8","toBase64","bitClusterCount","ProviderError","tryNextLink","CredentialsProviderError","provider","isExpired","requiresRefresh","hasResult","isConstant","resolved","internalObjectKeys","FREEZING","METADATA","isExtensible","setMetadata","objectID","weakData","REQUIRED","fastKey","getWeakData","onFreeze","propertyKey","getRawTag","objectToString","symToStringTag","toStringTag","baseIsNative","arrayMap","baseIteratee","baseMap","collection","iteratee","MD5","iterations","derivedKey","derivedKeyWords","isRefObject","getRef","v4","Converter","each","measures","mass","volume","temperature","digital","partsPer","speed","pace","pressure","voltage","reactivePower","apparentPower","energy","reactiveEnergy","volumeFlowRate","illuminance","frequency","numerator","getUnit","throwUnsupportedUnitError","abbr","measure","to_anchor","anchor_shift","system","_anchors","ratio","toBest","best","exclude","cutOffNumber","possibilities","possibility","describe","singular","plural","found","systems","testAbbr","testMeasure","what","validUnits","HandleType","FULL","HandleInteractionKind","LOCK","PUSH","formatPercentage","fillValues","endIndex","fillValue","inc","NUMBER_PROPS","Handle","isMoving","el","handleElement","beginHandleMovement","handleHandleMovement","endHandleMovement","changeValue","clientToValue","mouseEventClientOffset","beginHandleTouchMovement","handleHandleTouchMovement","endHandleTouchMovement","touchEventClientOffset","handleMoveEndedAt","clientPixel","removeDocumentEventListeners","onRelease","finalValue","handleMovedTo","handleKeyDown","stepSize","which","ARROW_DOWN","ARROW_LEFT","ARROW_UP","ARROW_RIGHT","handleKeyUp","tickSizeRatio","vertical","handleMidpoint","getHandleMidpointAndOffset","offsetCalc","onKeyDown","onKeyUp","onMouseDown","onTouchStart","tickSize","pixelDelta","getHandleElementCenterPixel","clientY","clientX","touch","changedTouches","NUMBER_PROPS_1","onChange","handleOffset","useOppositeDimension","handleRect","getBoundingClientRect","sizeKey","MultiSliderHandle","MultiSlider","labelPrecision","getLabelPrecision","handleElements","addHandleRef","maybeHandleTrackClick","canHandleTrackEvent","foundHandle","nearestHandleForValue","maybeHandleTrackTouch","getHandlerForIndex","getNewHandleValues","handleChange","newValues","handleProps","getSortedInteractiveHandleProps","oldValues","handleRelease","MultiSlider_1","prevHandleProps","labelRenderer","trackElement","renderTracks","renderLabels","renderHandles","updateTickSize","labelStepSize","anyInvalidChildren","formatLabel","labels","stepSizeRatio","offsetRatio","offsetPercentage","trackStops","getSortedHandleProps","previous","handles","renderTrackFill","getOffsetRatio","startRatio","endRatio","startOffset","orientationStyle","trackStyleAfter","trackStyleBefore","getTrackIntent","argFn","minValue","minArg","argMin","offsetValue","handleValue","oldIndex","newIndex","lockIndex","findFirstLockedHandleIndex","showTrackFill","intentAfter","intentBefore","defaultTrackIntent","trackSize","defaultSliderProps","childProps","predicate","maybeHandles","_extends","aPossiblePrototype","CORRECT_SETTER","proto","getBuiltIn","whitespace","ltrim","rtrim","__webpack_amd_options__","isLength","_map","base64Chars","triplet","paddingChar","base64Str","base64StrLength","reverseMap","_reverseMap","paddingIndex","bits1","bits2","bitsCombined","parseLoop","_hash","offset_i","M_offset_i","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","FF","GG","HH","II","nBitsTotal","nBitsLeft","nBitsTotalH","nBitsTotalL","H_i","HmacMD5","_unsupportedIterableToArray","minLen","subClass","superClass","_assertThisInitialized","useDebounce_1","useDebounce","useDebouncedCallback_1","useDebouncedCallback","resolveHostHeaderConfig","hostHeaderMiddlewareOptions","getHostHeaderPlugin","handlerProtocol","hostHeaderMiddleware","FetchHttpHandler","requestTimeout","abortSignal","requestTimeoutInMs","aborted","abortError","queryString","iLen","qsEntry","buildQueryString","requestOptions","Headers","AbortController","timeoutInMs","fetchRequest","Request","raceOfPromises","fetchHeaders","transformedHeaders","pair","timeoutError","onabort","race","stream","base64","arrayBuffer","readToBase64","collectBlob","isDone","prior","getReader","collectStream","onloadend","commaIndex","dataOffset","readAsDataURL","tls","urlParser","promisified_2","normalizeRegion","resolveUserAgentConfig","customUserAgent","UA_ESCAPE_REGEX","prefixSeparatorIndex","uaName","getUserAgentMiddlewareOptions","getUserAgentPlugin","defaultUserAgent","sdkUserAgentValue","normalUAValue","defaultUserAgentProvider","section","runtime","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","runClearTimeout","Item","noop","nextTick","browser","env","argv","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","cwd","chdir","umask","postfix","toAbsoluteIndex","IS_INCLUDES","fromIndex","replacement","feature","detection","POLYFILL","NATIVE","preventExtensions","Iterators","ITERATOR","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","originalArray","V8_VERSION","foo","reNative","hasSymbols","toStr","origDefineProperty","supportsDescriptors","arePropertyDescriptorsSupported","predicates","arrayLikeKeys","baseKeys","isArrayLike","Alignment","CENTER","ResizeSensor","observer","only","observeElement","observeParents","getElement","Element","observe","parent_1","parentElement","_arrayLikeToArray","arr2","pako","isNodeEnv","arrayLengthCompare","approxEqual","tolerance","countDecimalPlaces","_inherits","_taggedTemplateLiteral","strings","interleave","interpolations","_typeof","classCallCheck","createClass","inherits","possibleConstructorReturn","isPlainObject","EMPTY_ARRAY","EMPTY_OBJECT","getComponentName","isStyledComponent","styledComponentId","SC_ATTR","REACT_APP_SC_ATTR","IS_BROWSER","DISABLE_SPEEDY","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","StyledComponentsError","SC_COMPONENT_ID","extractComps","maybeCSS","css","existingComponents","componentId","matchIndex","nextComp","cssFromDOM","COMMENT_REGEX","stylisSplitter","cascade","keyframe","compress","semicolon","stylis","parsingRules","returnRulesPlugin","parsedRules","parseRulesPlugin","rule","_componentId","_selector","_selectorRegexp","selfReferenceReplacer","selectors","splitByRules","stringifyRules","rules","selector","flatCSS","cssStr","getNonce","addNameForId","names","resetIdNames","hasNameForId","stringifyNames","sheetForTag","sheet","ownerDocument","styleSheets","ownerNode","safeInsertRule","cssRule","maxIndex","cssRules","insertRule","makeTextMarker","addUpUntilIndex","sizes","totalUpToIndex","wrapAsHtmlTag","additionalAttrs","nonce","SC_VERSION_ATTR","wrapAsElement","dangerouslySetInnerHTML","__html","getIdsFromMarkersFactory","markers","makeTextNode","targetDocument","createTextNode","makeServerTag","namesArg","markersArg","insertMarker","cssForId","namesClone","cloneNames","markersClone","getIds","insertRules","removeRules","sealed","styleTag","toElement","toHTML","makeTag","tagEl","forceServer","insertBefore","getImportRuleTag","parentNode","nextSibling","makeStyleTag","extractImport","usedImportRuleTag","importRules","cssRulesSize","mayHaveImport","separator","appendData","newMarker","replaceChild","makeBrowserTag","cssText","insertIndex","injectedRules","isConnected","removalIndex","lowerBound","deleteRule","deleteRules","makeSpeedyTag","SPLIT_REGEX","MAX_SIZE","sheetRunningId","master","StyleSheet","head","importRuleTag","firstTag","tagMap","deferred","rehydratedNames","ignoreRehydratedNames","capacity","clones","rehydrate","els","extracted","isStreamed","nodes","querySelectorAll","nodesSize","elNames","elNamesSize","textContent","extractedSize","_extracted$i","removeChild","_j","ids","newTag","sealAllTags","lastEl","getTagForId","hasId","deferredInject","toReactElements","Keyframes","styleSheet","getName","uppercasePattern","msPattern","hyphenateStyleName","isFalsish","objToCssArray","prevKey","executionContext","ruleSet","murmurhash","getAlphabeticChar","generateAlphabeticName","isStaticRules","hasFunctionObjectKey","_TYPE_STATICS","ComponentStyle","isStatic","generateAndInjectStyles","lastClassName","generateName","determineTheme","fallbackTheme","isDefaultTheme","theme","escapeRegex","dashesAtEnds","isTag","REACT_STATICS","childContextTypes","contextTypes","propTypes","KNOWN_STATICS","caller","arity","TYPE_STATICS","defineProperty$1","_Object$getOwnPropert","objectPrototype","arrayPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","ThemeContext","ThemeConsumer","StyleSheetContext","_Component","ThemeProvider","renderInner","outerTheme","getTheme","ServerStyleSheet","masterSheet","seal","collectStyles","StyleSheetManager","getStyleTags","getStyleElement","interleaveWithNodeStream","readableStream","StyleSheetConsumer","identifiers","StyledComponent","renderOuter","forwardedComponent","componentStyle","_props$forwardedCompo","foldedComponentIds","generatedClassName","elementToBeCreated","as","isTargetTag","propsForElement","computedProps","buildExecutionContext","attrDef","resolvedAttrDef","attrDefWasFn","_props$forwardedCompo2","warnTooManyClasses","createStyledComponent","isTargetStyledComp","isClass","_options$displayName","generateDisplayName","_options$componentId","_ComponentStyle","_displayName","parentComponentId","nr","generateId","_options$ParentCompon","ParentComponent","_options$attrs","finalAttrs","WrappedStyledComponent","forwardRef","forwardedRef","withComponent","previousComponentId","optionsToCopy","objectWithoutProperties","newComponentId","_foldedDefaultProps","styled","constructWithOptions","componentConstructor","templateFunction","withConfig","GlobalStyle","createStyles","removeStyles","renderStyles","scCGSHMRCache","arn","AMZ_DATE_HEADER","GENERATED_HEADERS","SIGNATURE_HEADER","TOKEN_HEADER","ALWAYS_UNSIGNABLE_HEADERS","authorization","expect","pragma","referer","trailer","upgrade","PROXY_HEADER_PATTERN","SEC_HEADER_PATTERN","EVENT_ALGORITHM_IDENTIFIER","signingKeyCache","cacheQueue","createScope","shortDate","hmac","ctor","secret","digest","getCanonicalHeaders","unsignableHeaders","signableHeaders","canonical","headerName","canonicalHeaderName","getPayloadHash","hashConstructor","hashCtor","cloneRequest","cloneQuery","prepareRequest","iso8601","toDate","SignatureV4","applyChecksum","credentials","sha256","uriEscapePath","regionProvider","normalizeRegionProvider","credentialProvider","normalizeCredentialsProvider","presign","originalRequest","signingDate","expiresIn","unhoistableHeaders","longDate","canonicalHeaders","_h","_k","_l","lname","moveHeadersToQuery","sessionToken","accessKeyId","getCanonicalHeaderList","getSignature","getSigningKey","createCanonicalRequest","toSign","signString","payload","signEvent","signRequest","priorSignature","hashedPayload","hashedHeaders","stringToSign","requestToSign","payloadHash","signature","soughtHeader","hasHeader","ALGORITHM_IDENTIFIER","sortedHeaders","getCanonicalPath","serialized","getCanonicalQuery","createStringToSign","credentialScope","canonicalRequest","hashedRequest","keyPromise","sha256Constructor","credsHash","signable","secretAccessKey","signer","normalizedCreds","credentialDefaultProvider","signingEscapePath","systemClockOffset","normalizeProvider","regionInfo","signingName","serviceId","expiration","getTime","getSkewCorrectedDate","awsAuthMiddleware","dateHeader","serverTime","newServerTime","awsAuthMiddlewareOptions","getAwsAuthPlugin","_getPrototypeOf","_possibleConstructorReturn","assertThisInitialized","_createSuper","Derived","Super","isNativeReflectConstruct","NewTarget","u8","u16","u32","fleb","fdeb","clim","freb","eb","revfl","fd","revfd","rev","hMap","cd","mb","co","le","rvb","sv","r_1","flt","fdt","flm","flrm","fdm","fdrm","bits16","shft","slc","inflt","dat","st","noBuf","noSt","cbuf","bl","nbuf","final","bt","lm","dm","lbt","dbt","tbts","hLit","hcLen","tl","ldt","clt","clb","clbmsk","clm","lt","dt","lms","dms","mxa","dsym","wbits","wbits16","hTree","maxSym","tr","mbt","ln","lft","cst","i2_1","i2_2","i2_3","lc","cl","cli","cln","cls","clen","wfblk","wblk","syms","lf","li","dlt","mlb","ddt","mdb","lclt","nlc","lcdt","ndc","lcfreq","lct","mlcb","nlcc","ll","dl","ftlen","dtlen","llm","lcts","clct","deo","et","dflt","lvl","plvl","pre","post","lst","opt","msk_1","bs1_1","bs2_1","hsh","lc_1","wi","hv","imod","pimod","rem","ch_1","dif","maxn","maxd","nl","mmd","md","ti","lin","din","adler","dopt","mem","wbytes","zlh","zlv","zlibSync","opts","unzlibSync","InternalMetadataModule","iterate","checkCorrectnessOfIteration","setToStringTag","IS_WEAK","ADDER","NativeConstructor","NativePrototype","fixMethod","nativeMethod","getConstructor","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setStrong","nativePropertyIsEnumerable","NASHORN_BUG","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","Wrapper","NewTargetPrototype","defineIterator","iterated","CONVERT_TO_STRING","first","second","codeAt","iteratorMethod","addToUnscopables","kind","Arguments","IS_RIGHT","argumentsLength","memo","nativeExpm1","expm1","exp","__defineSetter__","ignoreCase","multiline","dotAll","unicode","sticky","regexpFlags","stickyHelpers","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","re","flags","charsAdded","strCopy","regexpExec","REPLACE_SUPPORTS_NAMED_GROUPS","REPLACE_KEEPS_$0","REPLACE","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","methods","regexp","arg2","forceStringMethod","stringMethod","regexMethod","objectTypes","t3","ypbpr","kb","kr","pb","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","eq","nativeCreate","getNative","isKeyable","__data__","baseGetTag","toSource","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","Ctor","ctorString","isSymbol","baseAssignValue","customizer","isNew","isObjectLike","hasblobSlice","webkitSlice","mozSlice","blobSlice","metaDataParsers","jpeg","parseMetaData","maxMetaDataSize","markerBytes","markerLength","parsers","maxOffset","getUint16","disableMetaDataParsers","disableImageHead","imageHead","replaceHead","originalTransform","util","xmlNode","attrNodeName","textNodeName","ignoreNameSpace","allowBooleanAttributes","parseAttributeValue","cdataTagName","cdataPositionChar","attrValueProcessor","stopNodes","processTagValue","parseValue","parseTrueNumberOnly","resolveNameSpace","tagname","shouldParse","attrsRegx","buildAttributesMap","attrStr","attrCollection","closingIndexForOpeningTag","attrBoundary","tagExp","ch","findClosingIndex","xmlData","errMsg","closingIndex","getTraversalObj","xmlObj","textData","closeIndex","colonIndex","attrsMap","_closeIndex","_closeIndex2","_tagExp","addChild","_tagExp2","_closeIndex3","separatorIndex","_tagName","shouldBuildAttributesMap","_colonIndex","_childNode","_childNode2","X32WordArray","C_x64","x64","Word","toX32","x64Words","x64WordsLength","x32Words","x64Word","wordsLength","Tooltip","restProps","lazy","Overlay","containerElement","maybeRenderChild","decoratedChild","CSSTransitionImplicit","onEntering","onEntered","onExiting","onExited","handleBackdropMouseDown","bringFocusInsideOverlay","handleDocumentClick","stackIndex","Overlay_1","openStack","isClickInThisOverlayOrDescendant","isSameNode","handleDocumentFocus","stopImmediatePropagation","ESCAPE","hasEverOpened","childrenWithTransitions","maybeRenderBackdrop","containerClasses","transitionGroup","appear","component","overlayWillOpen","overlayWillClose","activeElement","autofocusElement","querySelector","wrapperElement","lastOpenedOverlay","getLastOpened","cannotCreatePortal","REACT_CONTEXT_TYPES","blueprintPortalClassName","Portal","hasMounted","portalElement","createContainerElement","onChildrenMount","unstableRenderNoPortal","maybeAddClass","Spinner","Spinner_1","strokeWidth","strokeOffset","getViewBox","strokeDasharray","PATH_LENGTH","strokeDashoffset","SIZE_SMALL","viewBoxX","viewBoxWidth","htmlElement","tagClassName","elementRef","htmlProps","H1","H2","H3","H4","H5","H6","Menu","large","ulRef","Divider","MenuDivider","MenuItem","active","labelElement","labelClassName","shouldDismissPopover","popoverProps","textClassName","hasSubmenu","anchorClasses","DISABLED_PROPS","ellipsize","maybeRenderLabel","liClasses","maybeRenderPopover","SUBMENU_POPOVER_MODIFIERS","href","Text","isContentOverflowing","textRef","newState","scrollWidth","_setPrototypeOf","_isNativeReflectConstruct","Proxy","fromSpace","spaces","hsi","hwb","cmyk","cmy","xyy","yiq","yuv","ydbdr","ycgco","ycbcr","xvycc","yccbccrc","ucs","uvw","lab","labh","lchab","luv","lchuv","hsluv","hpluv","cubehelix","coloroid","hcg","hcy","tsl","yes","osaucs","hsp","fromSpaceName","toSpaceName","getConvertor","effect","contentLengthMiddlewareOptions","getContentLengthPlugin","bodyLengthChecker","contentLengthMiddleware","WebCryptoSha256","Ie11Sha256","__exportStar","ie11Sha256_1","Sha256","webCryptoSha256_1","Crc32","crc32","tslib_1","checksum","data_1","data_1_1","lookupTable","calculateBodyLength","clientVersion","parsedUA","sections","os","invalidProvider","loggerMiddlewareOptions","getLoggerPlugin","clientName","commandName","inputFilterSensitiveLog","logger","outputFilterSensitiveLog","outputWithoutMetadata","pathname","querystring","parseQueryString","_CSSTransition","_ReplaceTransition","_TransitionGroup","_Transition","TransitionGroup","ReplaceTransition","CSSTransition","SCRIPT_LOADING_STATE","DISPATCH_ACTION","SCRIPT_ID","getPayPalWindowNamespace$1","getScriptID","hashStr","scriptReducer","LOADING_STATUS","loadingStatus","RESET_OPTIONS","reactPayPalScriptID","scriptNode","destroySDKScript","PENDING","SET_BRAINTREE_INSTANCE","braintreePayPalCheckoutInstance","ScriptContext","contextNotEmptyValidator","scriptContext","dispatch","usePayPalScriptReducer","isInitial","INITIAL","isPending","isResolved","RESOLVED","isRejected","REJECTED","PayPalButtons","forceReRender","buttonProps","buttonsContainerRef","initActions","setInitActions","isEligible","setIsEligible","setErrorState","closeButtonsComponent","paypalWindowNamespace","Buttons","errorMessage","getErrorMessage$2","onInit","fundingSource","isDisabledStyle","processOptions","sdkBaseURL","processedMerchantIDAttributes","merchantID","dataMerchantID","newMerchantID","newDataMerchantID","processMerchantID","accumulator","dataAttributes","queryParams","objectToQueryString","createScriptElement","newScript","loadScript","PromisePonyfill","getDefaultPromiseImplementation","validateArguments","existingWindowNamespace","getPayPalWindowNamespace","currentScript","nextScript","currentScriptDataset","dataset","uidAuto","isExactMatch","findScript","loadCustomScript","newWindowNamespace","onSuccess","firstElementChild","insertScriptElement","PayPalScriptProvider","deferLoading","isSubscribed","FUNDING","PAYPAL","VENMO","APPLEPAY","ITAU","CREDIT","PAYLATER","IDEAL","SEPA","BANCONTACT","GIROPAY","SOFORT","MYBANK","P24","VERKKOPANKKI","PAYU","BLIK","TRUSTLY","ZIMPLER","MAXIMA","OXXO","BOLETO","WECHATPAY","MERCADOPAGO","EXISTS","functionToString","copyright","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","createIteratorConstructor","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","v8","propIsEnumerable","test1","test2","test3","shouldUseNative","endPos","redefineAll","IEEE754","arrayFill","NativeArrayBuffer","$ArrayBuffer","$DataView","$DataViewPrototype","packIEEE754","unpackIEEE754","unpack","packInt8","number","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","isLittleEndian","intIndex","conversion","NaN","ArrayBufferPrototype","testView","nativeSetInt8","setInt8","getInt8","bufferLength","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","defer","IS_IOS","location","setImmediate","clearImmediate","MessageChannel","Dispatch","counter","runner","postMessage","host","port2","port1","onmessage","importScripts","MATCH","isRegExp","RE","whitespaces","setBindData","hi","_luv","hr","baseForOwn","castFunction","stubFalse","freeExports","nodeType","freeModule","Buffer","freeProcess","nodeUtil","types","require","objectProto","getPrototype","overArg","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","arrayFilter","stubArray","nativeGetSymbols","getSymbols","reIsDeepProp","reIsPlainProp","Checkboard","_react","_react2","_reactcss2","checkboard","newObj","_interopRequireWildcard","grey","renderers","borderRadius","boxShadow","absolute","isValidElement","cloneElement","baseIsArguments","isArguments","baseIsTypedArray","baseUnary","nodeIsTypedArray","reIsUint","fallbackWindow","locateWindow","SHA1","HmacSHA1","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","warning","_implementation2","createContext","isBrowser","timeoutDuration","longerTimeoutBrowsers","debounce","scheduled","functionToCheck","getStyleComputedProperty","defaultView","getComputedStyle","getParentNode","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","getReferenceNode","reference","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","findCommonOffsetParent","element1","element2","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","createRange","setStart","setEnd","commonAncestorContainer","isOffsetContainer","element1root","getScroll","upperSide","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","getBordersSize","sideA","sideB","computedStyle","getWindowSizes","getClientRect","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","getBoundaries","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","computeAutoPlacement","refRect","rects","sortedAreas","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","marginRight","getOppositePlacement","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","ends","cur","isDestroyed","flipped","originalPlacement","isCreated","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","willChange","removeOnDestroy","getWindow","setupEventListeners","updateBound","passive","scrollElement","attachToScrollParents","scrollParents","isBody","cancelAnimationFrame","isNumeric","setStyles","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","validPlacements","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","divider","splitRegex","mergeWithPrevious","toValue","Defaults","shiftvariation","_data$offsets","shiftOffsets","transformProp","popperStyles","primary","escapeWithReference","secondary","keepTogether","opSide","_data$offsets$arrow","sideCapitalized","altSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","modifierOptions","jquery","Utils","PopperUtils","pe","ke","ge","Ae","Ce","we","ve","xe","$e","ye","Oe","qe","Be","De","Ee","Ge","He","je","ze","Je","Re","Te","Ue","Ve","Xe","Ye","Qe","Pe","Ie","Me","Le","Ke","areInputsEqual","newInputs","lastInputs","resultFn","isEqual","lastThis","lastResult","lastArgs","calledOnce","newArgs","_inheritsLoose","isarray","pathToRegexp","tokensToFunction","tokensToRegExp","PATH_REGEXP","tokens","defaultDelimiter","escaped","capture","asterisk","partial","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","pretty","token","attachKeys","sensitive","route","endsWithDelimiter","regexpToRegexp","arrayToRegexp","stringToRegexp","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","genFun","mark","awrap","async","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","collectionStrong","ENTRIES","returnMethod","internalStateGetterFor","define","getEntry","removed","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","objectKeys","PrototypeOfArrayIteratorPrototype","arrayIterator","wasDeleted","remover","allDeleted","mapFn","nextItem","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","nativeObjectCreate","getOwnPropertyNamesExternal","defineWellKnownSymbol","$forEach","HIDDEN","TO_PRIMITIVE","$stringify","nativeGetOwnPropertyNames","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","description","$defineProperty","$defineProperties","$getOwnPropertySymbols","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","keyFor","useSetter","useSimple","replacer","space","$replacer","windowNames","getWindowNames","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","createProperty","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","arrayLike","mapfn","asap","LAST_ERROR","IS_ERROR","_U","_V","_W","_X","doResolve","_Y","onFulfilled","onRejected","ex","tryCallOne","promise","handleResolved","getThen","finale","_Z","Handler","tryCallTwo","reason","_0","safeThen","copyWithin","flattenIntoArray","original","sourceLen","mapper","targetIndex","sourceIndex","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","nativeLastIndexOf","NEGATIVE_ZERO","searchElement","log1p","nativeAssign","chr","TO_ENTRIES","is","notify","macrotask","MutationObserver","WebKitMutationObserver","IS_NODE","queueMicrotaskDescriptor","queueMicrotask","enter","characterData","task","newPromiseCapability","promiseCapability","PromiseCapability","$$resolve","$$reject","IS_END","maxLength","fillString","fillLen","stringFiller","stringLength","fillStr","intMaxLength","toPositiveInteger","ArrayIterationModule","$has","uncaughtFrozenStore","frozen","UncaughtFrozenStore","findUncaughtFrozen","searchParams","username","USE_NATIVE_URL","$fetch","getInternalParamsState","URL_SEARCH_PARAMS","plus","sequences","percentSequence","percentDecode","sequence","parseSearchParams","updateSearchParams","validateArgumentsLength","required","URLSearchParamsIterator","URLSearchParamsConstructor","entryIterator","entryNext","updateURL","URLSearchParamsPrototype","getAll","entriesIndex","sliceIndex","getState","bth","paramsSerializer","serializedParams","hashmarkIndex","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","defaults","adapter","getDefaultAdapter","transformRequest","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","auth","Authorization","btoa","fullPath","baseURL","onreadystatechange","responseURL","responseHeaders","getAllResponseHeaders","responseText","statusText","ontimeout","timeoutErrorMessage","cookies","xsrfValue","onDownloadProgress","onUploadProgress","cancelToken","cancel","abort","enhanceError","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","axiosKeys","otherKeys","Cancel","shimKeys","nativeKeys","support","reFuncName","reThis","fnToString","argCount","bindData","__bindData__","funcNames","funcDecomp","baseCreate","crcTable","table","makeTable","crc","STR_APPLY_OK","STR_APPLY_UIA_OK","_utf8len","buf2binstring","string2buf","m_pos","str_len","buf_len","binstring2buf","buf2string","c_len","utf16buf","utf8border","next_in","avail_in","total_in","next_out","avail_out","total_out","data_type","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","BACKSPACE","ENTER","SHIFT","SPACE","DELETE","isKeyboardClick","keyCode","arrA","arrB","compare","shallowCompareKeys","objA","objB","shallowCompareKeysImpl","keysA","keysB","deepCompareKeys","isSimplePrimitiveType","deepCompareKeysImpl","getDeepUnequalKeyValues","compareFn","valueA","valueB","getUnequalKeyValues","keySet","arrayToObject","unionKeys","isWhitelist","isBlacklist","keySet_1","filterKeys","elementIsOrContains","testElement","throttleEvent","newEventName","throttledFunc","throttleImpl","throttleReactEventCallback","event2","persist","throttle","onAnimationFrameRequested","onBeforeIsRunningCheck","onAfterIsRunningCheck","isReactNodeEmpty","skipArray","ensureElement","getDisplayName","ComponentClass","isElementOfType","ComponentType","safeInvokeMember","member","EXITING","ENTERED","ENTERING","EXITED","UNMOUNTED","PropTypes","_reactDom","_reactLifecyclesCompat","initialStatus","parentGroup","isMounting","appearStatus","in","unmountOnExit","mountOnEnter","nextCallback","getChildContext","updateStatus","nextStatus","cancelNextCallback","getTimeouts","mounting","findDOMNode","performEnter","performExit","appearing","timeouts","enterTimeout","onEnter","safeSetState","onTransitionEnd","onExit","setNextCallback","_this4","doesNotHaveTimeoutOrListener","addEndListener","_this$props","_objectWithoutPropertiesLoose","Children","_default","classNamesShape","timeoutsShape","_propTypes","_ChildMapping","handleExited","firstRender","appeared","mounted","prevChildMapping","getInitialChildMapping","getNextChildMapping","currentChildMapping","getChildMapping","childFactory","isArgs","origKeys","keysShim","originalKeys","shim","GetIntrinsic","$apply","$call","$reflectApply","implementation","origSymbol","hasSymbolSham","numberIsNaN","$Object","$TypeError","$gOPD","ButtonGroup","alignText","buttonGroupClasses","Card","interactive","Control","alignIndicator","indicatorChildren","inline","inputRef","typeClassName","Switch","innerLabelChecked","innerLabel","controlProps","switchLabels","Radio","Checkbox","indeterminate","defaultIndeterminate","evt","handleInputRef","updateIndeterminate","FormGroup","contentClassName","helperText","labelFor","labelInfo","getClassName","htmlFor","InputGroup","leftElement","rightElement","small","paddingLeft","leftElementWidth","paddingRight","rightElementWidth","maybeRenderLeftElement","maybeRenderRightElement","updateInputWidth","leftIcon","Slider","wh","_u","_v","xn","yn","zn","un","vn","yr","intersectLineLine","intercept","distanceFromOrigin","distanceLineFromOrigin","perpendicularThroughPoint","angleFromOrigin","normalizeAngle","lengthOfRayUntilIntersect","Hsluv","getBounds","sub1","sub2","epsilon","kappa","m1","m2","m3","_g1","top1","maxSafeChromaForL","maxChromaForLH","hrad","dotProduct","fromLinear","toLinear","xyzToRgb","tuple","rgbToXyz","rgbl","minv","yToL","refY","lToY","xyzToLuv","varU","varV","refU","refV","luvToXyz","luvToLch","lchToLuv","Hrad","hsluvToLch","lchToHsluv","hpluvToLch","lchToHpluv","rgbToHex","chan","digit2","digit1","hexToRgb","lchToRgb","rgbToLch","hsluvToRgb","rgbToHsluv","hpluvToRgb","rgbToHpluv","hsluvToHex","hpluvToHex","hexToHsluv","hexToHpluv","firstFn","fns","prevFn","nextFn","baseFor","baseTimes","isIndex","inherited","isArr","isArg","isBuff","isType","skipIndexes","funcToString","baseIsEqualDeep","baseIsEqual","bitmask","SetCache","arraySome","cacheHas","equalFunc","isPartial","arrLength","othLength","stacked","seen","arrValue","othValue","compared","othIndex","baseGetAllKeys","arrayPush","keysFunc","symbolsFunc","srcValue","castPath","toKey","isKey","stringToPath","objValue","baseKeysIn","getSymbolsIn","createBaseFor","toNumber","nativeMax","nativeMin","wait","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","ColorWrap","_debounce2","Picker","ColorPicker","onChangeComplete","handleSwatchHover","onSwatchHover","optionalEvents","PureComponent","baseEach","createBaseEach","pink","purple","deepPurple","indigo","blue","lightBlue","cyan","teal","green","lightGreen","lime","yellow","amber","orange","deepOrange","brown","blueGrey","darkText","lightText","darkIcons","lightIcons","black","transformCoordinates","getTransformedOptions","aspectRatio","crop","maxWidth","maxHeight","renderImageToCanvas","sourceX","sourceY","sourceWidth","sourceHeight","destX","destY","destWidth","destHeight","ctx","imageSmoothingEnabled","imageSmoothingQuality","hasCanvasOption","minWidth","minHeight","downsamplingRatio","useCanvas","scaleUp","scaleDown","contain","cover","ExifMap","tagCode","privateIFDs","Orientation","Thumbnail","Exif","GPSInfo","Interoperability","ExifTagTypes","ascii","3","4","5","9","getExifValue","tiffOffset","tagSize","tagType","parseExifTags","dirOffset","tagOffsets","includeTags","excludeTags","tagsNumber","dirEndOffset","tagOffset","tagNumber","tagValue","parseExifData","disableExif","includeExifTags","excludeExifTags","exif","disableExifOffsets","exifOffsets","exifTiffOffset","exifLittleEndian","disableExifThumbnail","getExifThumbnail","parseExifPrivateIFD","exifWriters","writeExifData","IptcMap","getTagValue","outstr","getStringValue","combineTagValues","parseIptcTags","segmentOffset","segmentEnd","iptc","iptcOffsets","isSegmentStart","getHeaderLength","ObjectName","200","201","202","parseIptcData","disableIptc","headerLength","disableIptcOffsets","includeIptcTags","excludeIptcTags","isEmptyData_1","constants_1","util_utf8_browser_1","util_locate_window_1","operation","keyOperation","subtle","importKey","toArrayBufferView","SHA_256_HMAC_ALGO","oncomplete","getKeyPromise","keyData","toHash","isEmptyData","fromUtf8","EMPTY_DATA_SHA_256","SHA_256_HASH","convertToBuffer","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","__createBinding","k2","__spread","__spreadArrays","__asyncDelegator","__makeTemplateObject","cooked","__importStar","__importDefault","__classPrivateFieldGet","receiver","privateMap","__classPrivateFieldSet","MAX_HASHABLE_LENGTH","INIT","DIGEST_LENGTH","BLOCK_SIZE","decodeHTML","decodeHTMLStrict","decodeXML","entities_json_1","legacy_json_1","xml_json_1","decode_codepoint_1","strictEntityRe","getStrictDecoder","getReplacer","sorter","secondChar","legacy","escapeUTF8","encodeNonAsciiHTML","encodeHTML","encodeXML","inverseXML","getInverseObj","xmlReplacer","getInverseReplacer","getASCIIEncoder","inverseHTML","htmlReplacer","single","multiple","reNonASCII","singleCharReplacer","getCodePoint","codePointAt","reEscapeChars","react_1","maxWaitHandler","useRef","maxWaitArgs","leadingCall","functionTimeoutHandler","isComponentUnmounted","debouncedFunction","cancelDebouncedCallback","useCallback","useEffect","debouncedCallback","shouldCallFunction","callPending","isPrime","sqrtN","getFractionalBits","nPrime","SHA256","gamma0x","gamma0","gamma1x","gamma1","maj","sigma0","HmacSHA256","X64Word","X64WordArray","X64Word_create","SHA512","H0","H7","H0h","H0l","H1h","H1l","H2h","H2l","H3h","H3l","H4h","H4l","H5h","H5l","H6h","H6l","H7h","H7l","ah","al","bh","dh","eh","fh","gh","hh","Wil","Wih","Wi","gamma0xh","gamma0xl","gamma0h","gamma0l","gamma1xh","gamma1xl","gamma1h","gamma1l","Wi7","Wi7h","Wi7l","Wi16","Wi16h","Wi16l","t1l","chh","chl","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Ki","Kih","Kil","t1h","t2l","HmacSHA512","AbstractButton","isActive","currentKeyDown","buttonRef","click","getCommonButtonProps","outlined","renderChildren","rightIcon","Button","handleRef","AnchorButton","commonProps","role","alea","xor128","xorwow","xorshift7","xor4096","tychei","sr","contextMenuElement","contextMenu","POPPER_MODIFIERS","ContextMenu","isDarkTheme","menu","cancelContextMenu","handleBackdropContextMenu","newTarget","elementFromPoint","newEventInit","MouseEvent","handlePopoverInteraction","nextOpenState","onContextMenu","show","MapShim","class_1","__entries__","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","trailingCall","resolvePending","proxy","timeoutCallback","timeStamp","addObserver","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","childList","subtree","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","isDocumentElement","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","ResizeObserver","isRegex","deepEqual","actual","expected","isUndefinedOrNull","aIsRegex","bIsRegex","aIsBuffer","bIsBuffer","ka","objEquiv","DelayRender","ready","onRender","INSTANCE_MAP","OBSERVER_MAP","ROOT_IDS","consecutiveRootId","_options","rootMargin","observerId","getRootId","observerInstance","IntersectionObserver","inView","thresholds","itemsLeft","rootObserved","isIntersecting","intersectionRatio","InView","triggerOnce","observeNode","_this$state","isPlainChildren","handleNode","_this$props2","initialState","useInView","_React$useState","resetWarningCache","bool","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","sourceRoot","useState","isDragging","knobPosition","knobColor","knobSize","hideKnob","knob","dragging","animationPlayState","animationTimingFunction","animationDuration","animationIterationCount","animationName","fillOpacity","stroke","knobRadius","labelColor","labelBottom","labelFontSize","valueFontSize","appendToValue","prependToValue","verticalOffset","hideLabelValue","flexDirection","justifyContent","alignItems","userSelect","fontSize","bottomMargin","appended","prepended","progressColorFrom","progressColorTo","trackColor","progressSize","svgFullPath","radiansOffset","progressLineCap","svg","stopColor","strokeLinecap","circularSlider","transition","knobDraggable","ee","ne","oe","ie","ue","se","fe","dataIndex","renderLabelValue","he","dashFullArray","dashFullOffset","useReducer","Se","Fe","DOWN","UP","MOVE","pageXOffset","pageYOffset","pageX","pageY","getTotalLength","CustomPicker","TwitterPicker","SwatchesPicker","SliderPicker","SketchPicker","PhotoshopPicker","MaterialPicker","HuePicker","GithubPicker","CompactPicker","ChromePicker","CirclePicker","BlockPicker","AlphaPicker","_Block","_Circle","_Chrome","_Compact","_Github","_Material","_Photoshop","_Sketch","_Slider","_Swatches","_Twitter","_Chrome2","_localizedStrings2","placeholderRegex","formatString","valuesForPlaceholders","hasObject","textPart","matchedKey","valueForPlaceholder","valueFromObjectPlaceholder","toSheet","column","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","orphans","tabSize","widows","WebkitLineClamp","floodOpacity","stopOpacity","strokeMiterlimit","strokeOpacity","createEvent","initMouseEvent","saveAs","HTMLAnchorElement","download","rel","msSaveOrOpenBlob","autoBom","innerText","HTMLElement","safari","ok","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","greenyellow","honeydew","hotpink","indianred","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightsteelblue","lightyellow","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","plum","powderblue","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","thistle","tomato","turquoise","violet","violetred","wheat","whitesmoke","yellowgreen","example","toRGB","print","modify","perm","processOwnerPassword","encryptionKey","lsbFirstWord","hexToBytes","subscribe","unsubscribe","publish","getTopics","objectNumber","gState","xStep","yStep","cloneIndex","compressPdf","encryption","userPassword","ownerPassword","userPermissions","userUnit","floatPrecision","defaultPathOperation","putOnlyUsedFonts","internal","__private__","PubSub","getPdfVersion","setPdfVersion","a0","a3","a4","a5","a6","a7","a8","a9","a10","b3","b4","b5","b6","b7","b8","b9","b10","c4","c5","c6","c7","c8","c9","c10","legal","ledger","tabloid","getPageFormats","getPageFormat","COMPAT","ADVANCED","saveGraphicsState","ct","Ht","xt","Er","setFontSize","getFontSize","restoreGraphicsState","advancedAPI","compatAPI","isAdvancedAPI","roundToPrecision","hpf","f2","setPrecision","getFileId","setFileId","We","convertDateToPDFDate","getTimezoneOffset","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","convertPDFDateToDate","setCreationDate","getCreationDate","padd2","padd2Hex","tt","rt","nt","ot","Zt","Jt","$t","setCustomOutputDestination","ut","resetCustomOutputDestination","ht","ft","getStandardFonts","gt","mt","R2L","setR2L","getR2L","vt","setZoomMode","getZoomMode","yt","setPageMode","getPageMode","Nt","setLayoutMode","getLayoutMode","setDisplayMode","Lt","subject","author","keywords","creator","getDocumentProperty","getDocumentProperties","setDocumentProperties","setProperties","setDocumentProperty","At","St","_t","Pt","kt","It","Ft","Ct","jt","Ot","Bt","Mt","Et","qt","Rt","Tt","hotfixes","Dt","Ut","zt","shx","shy","inversed","applyToPoint","applyToRectangle","Ir","Vt","matrixMult","Wt","unitMatrix","identityMatrix","Gt","ShadingPattern","TilingPattern","addShadingPattern","beginTilingPattern","Cr","endTilingPattern","Yt","newObject","Xt","newObjectDeferred","Kt","newAdditionalObject","objId","Qt","decodeColorString","encodeColorString","ch1","ch2","ch3","ch4","pdfColorType","putStream","alreadyAppliedFilters","addLength1","objectId","additionalKeyValues","API","processDataByFilters","reverseChain","putPage","contentsObjId","rootDictionaryObjId","resourceDictionaryObjId","mediaBox","bottomLeftX","bottomLeftY","topRightX","topRightY","cropBox","bleedBox","trimBox","artBox","pageContext","pageNumber","page","putPages","pdfEscapeWithNeededParanthesis","isAlreadyPutted","postScriptName","pages","resourcesOid","objectOid","oid","toHexString","Ne","MAX_SAFE_INTEGER","fontName","fontStyle","isStandardFont","fonts","dictionary","alert","bar","sourceEncoding","autoencode","codePages","noBOM","pdfEscape","beginPage","lr","Sr","_r","setPage","getNumberOfPages","disableWarning","noFallback","putInfo","putCatalog","putTrailer","putHeader","putXRef","buildDocument","getBlob","save","pdfObjectUrl","pdfJsUrl","PDFViewerApplication","getPageInfo","getPageInfoByObjId","getCurrentPageInfo","addPage","insertPage","movePage","deletePage","align","lineHeightFactor","cr","scaleFactor","TabLen","baseline","splitTextToSize","mutex","activeFontKey","activeFontSize","rotationDirection","charSpace","Ar","setCharSpace","getCharSpace","lang","renderingMode","usedRenderingMode","pageSize","getWidth","getStringUnitWidth","doKerning","gr","mr","isHex","Nr","clipEvenOdd","discardPath","Ze","isValidStyle","setDefaultPathOperation","fillEvenOdd","fillStroke","fillStrokeEvenOdd","er","rr","ir","setGState","or","curveTo","roundedRect","SQRT2","circle","setFont","ur","getFont","getFontList","addFont","setLineDash","setLineDashPattern","fr","getLineHeight","dr","setLineHeightFactor","pr","getLineHeightFactor","getHorizontalCoordinate","getVerticalCoordinate","getHorizontalCoordinateString","br","getVerticalCoordinateString","strokeColor","getStrokeColor","getDrawColor","setStrokeColor","setDrawColor","wr","fillColor","getFillColor","setFillColor","textColor","Lr","getTextColor","setTextColor","CapJoinStyles","butt","but","miter","rounded","projecting","square","bevel","setLineCap","setLineJoin","setLineMiterLimit","setMiterLimit","GState","Pr","addGState","setCurrentTransformationMatrix","comment","Fr","currentPage","pagesContext","Br","outputDestination","Mr","qr","jr","Or","beginFormObject","endFormObject","doFormObject","getFormObject","unload","events","getPageWidth","setPageWidth","getPageHeight","setPageHeight","getCoordinateString","collections","newObjectDeferredBegin","setWidth","getHeight","setHeight","encryptionOptions","getEncryptor","getPDFVersion","Point","Rectangle","hasHotfix","__acroform__","BBox","clearBit","getBit","getBitForPdf","setBitForPdf","clearBitForPdf","calculateCoordinates","lowerLeft_X","lowerLeft_Y","upperRight_X","upperRight_Y","appearanceStreamContent","DV","maxFontSize","textAlign","fields","xForms","acroFormDictionaryRoot","printedOut","isInitialized","annotations","arrayToPdfArray","_objId","_scope","getKeyValueListForStream","FieldNum","_t2","Rect","hasAnnotation","Ff","FT","addOption","removeOption","combo","hasAppearanceStream","edit","_t3","CA","pushButton","radio","_t4","caption","appearanceState","_AppearanceType","RadioButton","Circle","createAppearanceStream","optionName","setAppearance","Kids","getCA","createOption","CheckBox","On","YesNormal","YesPushDown","Off","OffPushDown","Bezier_C","Cross","calculateCross","x4","createDefaultAppearanceStream","addField","acroformPlugin","_eventID","Fields","DA","AcroFormChoiceField","AcroFormListBox","AcroFormComboBox","AcroFormEditBox","AcroFormButton","AcroFormPushButton","AcroFormRadioButton","AcroFormCheckBox","AcroFormTextField","AcroFormPasswordField","AcroFormAppearance","AcroForm","ChoiceField","ListBox","ComboBox","EditBox","PushButton","TextField","PasswordField","Appearance","__addimage__","PNG","TIFF","JPEG","JPEG2000","GIF87a","GIF89a","WEBP","BMP","getImageFileTypeByImageData","colorSpace","INDEXED","palette","sMask","DEVICE_CMYK","bitsPerComponent","decodeParameters","predictor","addImage_images","hasAttribute","loadFile","color_spaces","DEVICE_RGB","DEVICE_GRAY","CAL_GREY","CAL_RGB","LAB","ICC_BASED","PATTERN","SEPARATION","DEVICE_N","DCT_DECODE","FLATE_DECODE","LZW_DECODE","JPX_DECODE","JBIG2_DECODE","ASCII85_DECODE","ASCII_HEX_DECODE","RUN_LENGTH_DECODE","CCITT_FAX_DECODE","image_compression","FAST","MEDIUM","SLOW","sHashCode","validateStringAsBase64","extractImageFromDataUrl","charset","supportsArrayBuffer","binaryStringToUint8Array","arrayBufferToBinaryString","addImage","imageData","compression","convertBase64ToBinaryString","getImageProperties","fileType","_nameMap","finalBounds","magFactor","createAnnotation","link","textWithLink","getTextWidth","1569","1570","1571","1572","1573","1574","1575","1576","1577","1578","1579","1580","1581","1582","1583","1584","1585","1586","1587","1588","1589","1590","1591","1592","1593","1594","1601","1602","1603","1604","1605","1606","1607","1608","1609","1610","1649","1655","1657","1658","1659","1662","1663","1664","1667","1668","1670","1671","1672","1676","1677","1678","1681","1688","1700","1702","1705","1709","1711","1713","1715","1722","1723","1726","1728","1729","1733","1734","1735","1736","1737","1739","1740","1744","1746","1747","65247","65154","65156","65160","65166","65248","65165","65258","1617","1612","1613","1614","1615","1616","__arabicParser__","isInArabicSubstitutionA","isArabicLetter","isArabicEndLetter","isArabicAlfLetter","arabicLetterHasIsolatedForm","arabicLetterHasFinalForm","arabicLetterHasInitialForm","arabicLetterHasMedialForm","resolveLigatures","isArabicDiacritic","getCorrectForm","processArabic","autoPrint","variant","addJS","pageWrapXEnabled","pageWrapX","pageWrapYEnabled","pageWrapY","pdf","context2d","__cell__","headerFunction","margins","lastCell","lineNumber","setHeaderFunction","getTextDimensions","cellAddPage","cell","tableHeaderRow","printHeaders","printHeaderRow","autoSize","headerBackgroundColor","table_font_size","prompt","setTableHeaderRow","table_x","table_y","italic","oblique","family","stretch","fixed","monospace","terminal","cursive","fantasy","serif","trimLeft","isStrokeTransparent","strokeStyle","fillStyle","isFillTransparent","textBaseline","lineJoin","lineCap","globalCompositeOperation","globalAlpha","clip_path","miterLimit","ignoreClearRect","fontFaces","defaultFontFamily","genericFontFamilies","arial","Arial","verdana","Verdana","helvetica","Helvetica","beginPath","isIdentity","startAngle","endAngle","counterclockwise","arcTo","fillRect","strokeRect","clearRect","ctxStack","isCanvasGradient","getColor","fillText","strokeText","measureText","setTransform","autoPaging","posX","posY","begin","deltas","createLinearGradient","colorStops","addColorStop","createPattern","createRadialGradient","y3","y4","loadImageFile","html2canvas","DOMPurify","innerHTML","dompurify","sanitize","template","setProgress","overlay","progress","margin","enableLinks","jsPDF","backgroundColor","toContainer","toCanvas","toImg","toPdf","thenList","setPageSize","nodeValue","cloneNode","firstChild","javascriptEnabled","scrollHeight","border","float","onrendered","toContext2d","allowTaint","scrollX","scrollY","imageTimeout","logging","removeContainer","foreignObjectRendering","useCORS","windowHeight","quality","outputImg","outputPdf","doCallback","setMargin","getPageSize","updateProgress","thenCore","thenExternal","catchExternal","using","export","worker","createNamedDestinations","makeRef","genIds_r","renderRoot","objStart","count_r","objEnd","makeString","processJPEG","numcomponents","imgData","readUInt32","colorType","compressionMethod","filterMethod","interlaceMethod","numFrames","numPlays","yOffset","readUInt16","disposeOp","blendOp","indexed","grayscale","hasAlphaChannel","pixelBitlength","decodePixels","decodePalette","copyToImageData","_decodedPalette","_t5","decodeFrames","createImageData","renderFrame","_e3","_timeout","stopAnimation","_png","has_local_palette","palette_offset","palette_size","data_offset","data_length","transparent_index","interlaced","disposal","frameInfo","decodeAndBlitFrameBGRA","decodeAndBlitFrameRGBA","datav","is_with_alpha","bottom_up","flag","parseHeader","parseBGR","jc","Qb","pd","Rr","Ca","Ka","oa","pa","Jd","Yc","Zc","Sb","Ra","bb","Ur","Dr","Tr","zr","Hr","Mb","Xa","ud","hd","jd","Ea","Hn","Vn","Wn","Gn","fb","Tc","Ed","Cd","Fd","lb","Db","Ab","Rd","RGBA","sd","Pd","Qd","Id","Md","hb","ib","Da","Sd","ob","vi","cc","dc","Mc","Nc","ec","fc","Rc","Dn","Kb","Sn","An","ma","qn","Tn","Un","Ib","Jb","Nd","Oa","Ci","ji","Si","Mi","Bi","Oi","Pi","ki","Ei","qi","Dc","$n","xc","Wb","Ya","Ta","Ua","gc","nc","hc","Gr","Vr","Wr","Zr","$r","Yr","Ba","Ma","En","Qr","tn","Rn","nn","en","rn","ua","qd","rd","mi","tb","Xr","Pb","Wa","wc","wd","xd","yc","xb","gi","VP8LMapColor32b","Jr","VP8LMapColor8b","Kr","Oc","Qn","Xn","Zn","Jn","Yn","Kn","pi","ub","yd","td","Rb","Kd","Ld","Ud","Td","Fb","Bb","Cb","Zb","Lb","Yb","jb","Wc","Xc","Pc","wb","Tb","zd","vd","od","ld","La","dd","tc","Na","la","Sc","Eb","Qc","Za","Ob","$b","Ad","Gc","Hc","Dd","uc","Nb","wa","ya","sc","Od","Kc","ed","Qa","Ic","$c","Aa","Xb","Va","Hb","zb","yb","Ub","za","Jc","Pa","Bd","kc","Ac","Bc","zc","Gd","Hd","rb","sb","oc","pc","sa","ta","ra","Ha","Ia","Ec","ja","Vb","Fc","gd","Fa","Cc","qc","Gb","Uc","nb","rc","Ga","Vc","put","ni","ei","ri","ci","si","ii","ai","Ti","Ui","Vd","Cn","Pn","kn","In","Fn","cn","sn","hn","dn","pn","gn","mn","bn","wn","Nn","Ln","fi","di","ui","oi","Bn","jn","Mn","kd","na","xa","gb","Ja","Sa","Lc","$a","ic","mc","bi","yi","Ni","Li","Ai","xi","Fi","Ii","Ri","zi","Predictor0","Predictor1","Predictor2","Predictor3","Predictor4","Predictor5","Predictor6","Predictor7","Predictor8","Predictor9","Predictor10","Predictor11","Predictor12","Predictor13","PredictorAdd0","PredictorAdd1","PredictorAdd2","ColorIndexInverseTransform","MapARGB","VP8LColorIndexInverseTransformAlpha","MapAlpha","VP8LPredictorsAdd","VP8LPredictors","VP8LPredictorsAdd_C","VP8LPredictors_C","UpsampleRgbLinePair","UpsampleBgrLinePair","UpsampleRgbaLinePair","UpsampleBgraLinePair","UpsampleArgbLinePair","UpsampleRgba4444LinePair","UpsampleRgb565LinePair","Di","WebPDecodeRGBA","src_off","src_size","feature_flags","canvas_width","canvas_height","bgcolor","loop_count","offset_x","offset_y","blend","rgbaoutput","dataurl","loop_counter","rgba","imgwidth","imgheight","_n2","processPNG","processGIF89A","processGIF87A","fileSize","reserved","headerSize","bitPP","rawSize","importantColors","quad","bit1","bit4","bit8","bit15","bit16","bit24","bit32","processBMP","processWEBP","setLanguage","languageSettings","sq","ast","eu","bg","zh","cv","eo","fo","fj","fy","fur","gu","hu","iu","ks","kk","km","ky","tlh","ko","mk","ms","mo","nv","ng","no","om","qu","rm","ro","ru","sg","sk","so","es","sw","th","tig","ts","tk","uk","hsb","vo","xh","zu","languageCode","getCharWidthsArray","widths","Unicode","fof","kerning","widthOfString","widthOfGlyph","characterToGlyph","textIndent","lineIndent","__fontmetrics__","uncompress","WinAnsiEncoding","Courier","ZapfDingbats","existsFileInVFS","getFileFromVFS","TTFFont","glyIdsUsed","canvg","addSvgAsImage","ignoreMouse","ignoreAnimation","ignoreDimensions","fromString","putTotalPages","pdfEscape16","viewerPreferences","HideToolbar","defaultValue","explicitSet","valueSet","pdfVersion","HideMenubar","HideWindowUI","FitWindow","CenterWindow","DisplayDocTitle","NonFullScreenPageMode","Direction","ViewArea","ViewClip","PrintArea","PrintClip","PrintScaling","Duplex","PickTrayByPDFSize","PrintPageRange","NumCopies","viewerpreferences","configuration","__metadata__","namespaceuri","metadata_object_number","addMetadata","toUnicode","subset","PDFObject","stemV","italicAngle","ascender","decender","capHeight","rawData","hmtx","unitsPerEm","cmap","codeMap","vFS","addFileToVFS","__bidiEngine__","EN","AN","6","7","32","251","254","255","hiLevel","doBidiReorder","isInputVisual","isOutputVisual","isInputRtl","isOutputRtl","isSymmetricSwapping","readString","registerTTF","directory","hhea","maxp","os2","loca","glyf","exists","lineGap","xMin","xMax","italic_angle","xHeight","familyClass","isSerif","isScript","isFixedPitch","forGlyph","advance","readByte","writeByte","writeUInt32","readInt32","writeInt32","writeUInt16","readInt16","writeInt16","writeString","readShort","writeShort","readLongLong","writeLongLong","readInt","writeInt","scalarType","tableCount","searchRange","entrySelector","rangeShift","tables","_t6","__super__","checkSumAdjustment","magicNumber","created","modified","macStyle","lowestRecPPEM","fontDirectionHint","indexToLocFormat","glyphDataFormat","platformID","encodingID","language","isUnicode","old","new","charMap","subtable","maxGlyphID","advanceWidthMax","minLeftSideBearing","minRightSideBearing","xMaxExtent","caretSlopeRise","caretSlopeRun","caretOffset","metricDataFormat","numberOfMetrics","averageCharWidth","weightClass","widthClass","ySubscriptXSize","ySubscriptYSize","ySubscriptXOffset","ySubscriptYOffset","ySuperscriptXSize","ySuperscriptYSize","ySuperscriptXOffset","ySuperscriptYOffset","yStrikeoutSize","yStrikeoutPosition","panose","charRange","vendorID","selection","firstCharIndex","lastCharIndex","ascent","descent","winAscent","winDescent","codePageRange","defaultChar","breakChar","maxContext","underlinePosition","minMemType42","maxMemType42","minMemType1","maxMemType1","glyphNameIndex","numGlyphs","languageID","nameID","fontFamily","fontSubfamily","uniqueSubfamily","postscriptName","trademark","manufacturer","designer","vendorUrl","designerUrl","license","licenseUrl","preferredFamily","preferredSubfamily","compatibleFull","sampleText","maxPoints","maxContours","maxCompositePoints","maxComponentContours","maxZones","maxTwilightPoints","maxStorage","maxFunctionDefs","maxInstructionDefs","maxStackElements","maxSizeOfInstructions","maxComponentElements","maxComponentDepth","metrics","lsb","leftSideBearings","glyphFor","lengthOf","numberOfContours","compound","glyphIDs","glyphOffsets","unicodes","generateCmap","glyphsFor","_t7","17","getFirstMatch","getSecondMatch","matchAndReturnConst","getWindowsVersionName","getMacOSVersionName","getAndroidVersionName","getVersionPrecision","compareVersions","getBrowserAlias","BROWSER_ALIASES_MAP","getBrowserTypeByAlias","BROWSER_MAP","18","ENGINE_MAP","OS_MAP","PLATFORMS_MAP","Bada","BlackBerry","Chrome","Chromium","Electron","Epiphany","Firefox","Focus","Generic","Googlebot","Maxthon","Opera","PhantomJS","Puffin","QupZilla","QQ","QQLite","Safari","Sailfish","SeaMonkey","Sleipnir","Swing","Tizen","Vivaldi","WeChat","Roku","amazon_silk","android","bada","blackberry","chrome","chromium","electron","epiphany","firefox","generic","googlebot","google_search","k_meleon","maxthon","mz","naver","opera_coast","phantomjs","puffin","qupzilla","qq","qqlite","sailfish","samsung_internet","seamonkey","sleipnir","swing","tizen","vivaldi","webos","wechat","yandex","tablet","mobile","desktop","tv","WindowsPhone","Windows","MacOS","iOS","Android","WebOS","Linux","ChromeOS","PlayStation4","EdgeHTML","Blink","Trident","Presto","Gecko","WebKit","90","getParser","getResult","91","_ua","parsedResult","getUA","parseBrowser","getBrowser","getBrowserName","getBrowserVersion","getOS","parseOS","getOSName","getOSVersion","getPlatform","platform","parsePlatform","getPlatformType","getEngine","engine","parseEngine","getEngineName","satisfies","isOS","isPlatform","compareVersion","isEngine","92","93","versionName","94","vendor","95","nodeToJson","xmlToNodeobj","x2xmlnode","validator","validationOption","traversableObj","convertToJson","convertTonimn","convert2nimn","convertToJsonString","j2xParser","parseToNimn","schema","decodeXMLStrict","decodeHTML5Strict","decodeHTML4Strict","decodeHTML5","decodeHTML4","encodeHTML5","encodeHTML4","decodeStrict","decode_1","encode_1","encode_2","decode_2","getElementsByTagName","getElementById","paddingTop","paddingBottom","xmlns","disabledStyle","buttonText","onAutoLoadFinished","onRequest","onFailure","onScriptLoadFailure","clientId","cookiePolicy","loginHint","hostedDomain","autoLoad","isSignedIn","fetchBasicProfile","redirectUri","discoveryDocs","uxMode","accessType","jsSrc","signIn","onMouseUp","getBasicProfile","getAuthResponse","googleId","getId","tokenObj","tokenId","id_token","accessToken","access_token","profileObj","imageUrl","getImageUrl","email","getEmail","givenName","getGivenName","getFamilyName","gapi","auth2","getAuthInstance","grantOfflineAccess","client_id","cookie_policy","login_hint","hosted_domain","fetch_basic_profile","ux_mode","redirect_uri","access_type","currentUser","onLogoutSuccess","signOut","isSdkLoaded","isProcessing","responseApi","FB","api","locale","checkLoginState","setStateIfMounted","authResponse","checkLoginAfterRefresh","login","appId","returnScopes","disableMobileRedirect","authType","defaultPrevented","return_scopes","response_type","auth_type","isMobile","_isMounted","sdkLoaded","setFbAsyncInit","loadSdkAsynchronously","getLoginStatus","xfbml","cookie","fbAsyncInit","isRedirectedFromFb","standalone","cssClass","containerStyle","textButton","typeButton","buttonStyle","renderOwnButton","locals","medium","metro","commonjsGlobal","createEventEmitter","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","emitter","oldValue","_Component2","observedBits","_proto2","reactIs","contextType","getDefaultProps","getDerivedStateFromError","mixins","MEMO_STATICS","getStatics","isMemo","ForwardRef","Memo","isAbsolute","spliceOne","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","part","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","createTransitionManager","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","notifyListeners","canUseDOM","getConfirmation","confirm","getHistoryState","history","createBrowserHistory","globalHistory","canUseHistory","supportsHistory","needsHashChangeListener","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","transitionManager","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toLocation","allKeys","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","pushState","nextKeys","replaceState","goBack","goForward","unblock","listen","unlisten","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","baseTag","pushHashPath","nextPaths","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextEntries","canGo","historyContext","Router","_pendingLocation","staticContext","computeRootMatch","isExact","cache$1","cacheCount$1","matchPath","_options$exact","_options$strict","_options$sensitive","_compilePath","pathCache","compilePath$1","createURL","staticHandler","useContext","BrowserRouter","resolveToLocation","forwardRefShim","LinkAnchor","navigate","_onClick","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","Link","_ref2$component","isDuplicateNavigation","forwardRefShim$1","forwardRef$1","_ref$ariaCurrent","ariaCurrent","_ref$activeClassName","activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","reactPropsRegex","getType","assignProp","newVal","originalObject","propType","mergeRecursively","newComer","targetVal","newComers","vendors","raf","caf","_now","cp","cancelled","collectionDeleteAll","real","deleteAll","getMapIterator","speciesConstructor","newMap","findKey","groupBy","keyDerivative","sameValueZero","keyBy","keyOf","mapKeys","mapValues","of","noInitial","isPresentInMap","collectionAddAll","addAll","adder","difference","newSet","getSetIterator","hasCheck","isDisjointFrom","isSubsetOf","otherSet","isSupersetOf","sep","symmetricDifference","DEFAULT_WHITELIST","matchWhitelist","displayId","rejections","onUnhandled","allRejections","whitelist","logged","logError","_1","onHandled","rawAsap","requestFlush","scan","newLength","BrowserMutationObserver","makeRequestCallFromTimer","timeoutHandle","handleTimer","intervalHandle","setInterval","clearInterval","makeRequestCallFromMutationObserver","TRUE","valuePromise","FALSE","NULL","UNDEFINED","EMPTYSTRING","_iterableToArray","remaining","viewClasses","normalizeName","normalizeValue","iteratorFor","items","consumed","bodyUsed","fileReaderReady","readBlobAsArrayBuffer","readAsArrayBuffer","bufferClone","_initBody","_bodyInit","_bodyText","_bodyBlob","_bodyFormData","_bodyArrayBuffer","readAsText","readBlobAsText","readArrayBufferAsText","formData","signal","upcased","normalizeMethod","referrer","form","rawHeaders","Response","bodyInit","redirectStatuses","redirect","DOMException","xhr","abortXhr","fixUrl","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","uptime","$every","$filter","HAS_SPECIES_SUPPORT","$find","SKIPS_HOLES","$findIndex","flat","depthArg","flatMap","$includes","$indexOf","nativeIndexOf","nativeJoin","ES3_STRINGS","$map","$reduce","$reduceRight","reduceRight","nativeReverse","nativeSlice","fin","$some","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","comparefn","deleteCount","insertCount","actualDeleteCount","actualStart","arrayBufferModule","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","nBits","nativeArrayBufferSlice","viewSource","viewTarget","dateToPrimitive","DatePrototype","hint","HAS_INSTANCE","FunctionPrototype","FunctionPrototypeToString","nameRE","nativeAcosh","acosh","nativeAsinh","asinh","nativeAtanh","atanh","cbrt","clz32","nativeCosh","cosh","fround","EPSILON32","MAX32","MIN32","$abs","$sign","$hypot","hypot","value1","value2","div","aLen","larg","nativeImul","imul","xl","yl","LOG10E","log10","log2","sinh","tanh","trunc","NativeNumber","NumberPrototype","BROKEN_CLASSOF","third","radix","maxCode","digits","NumberWrapper","globalIsFinite","isSafeInteger","MIN_SAFE_INTEGER","$parseFloat","trimmedString","$parseInt","thisNumberValue","nativeToFixed","fractionDigits","fractDigits","dataToString","__defineGetter__","$entries","nativeFreeze","fromEntries","FAILS_ON_PRIMITIVES","nativeGetPrototypeOf","nativeIsExtensible","nativeIsFrozen","isFrozen","nativeIsSealed","isSealed","__lookupGetter__","__lookupSetter__","nativePreventExtensions","nativeSeal","$values","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","newGenericPromiseCapability","DISPATCH_EVENT","PromiseRejectionEvent","FakePromise","INCORRECT_ITERATION","isThenable","isReject","notified","chain","reactions","exited","reaction","fail","rejection","onHandleUnhandled","initEvent","isUnhandled","unwrap","internalReject","internalResolve","executor","capability","$promiseResolve","alreadyCalled","onFinally","nativeApply","functionApply","thisArgument","argumentsList","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","$args","factories","argsLength","partArgs","deleteProperty","objectGetPrototypeOf","objectIsExtensible","objectPreventExtensions","existingDescriptor","ownDescriptor","objectSetPrototypeOf","getFlags","NativeRegExp","RegExpPrototype","CORRECT_NEW","RegExpWrapper","thisIsRegExp","patternIsRegExp","flagsAreUndefined","objectDefinePropertyModule","regExpFlags","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","notARegExp","correctIsRegExpLogic","nativeEndsWith","CORRECT_IS_REGEXP_LOGIC","searchString","endPosition","nativeFromCodePoint","fromCodePoint","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","nativeMatch","maybeCallNative","matcher","rx","fullUnicode","matchStr","$padEnd","padEnd","$padStart","padStart","rawTemplate","literalSegments","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","UNSAFE_SUBSTITUTE","searchValue","replaceValue","functionalReplace","accumulatedResult","nextSourcePosition","captures","namedCaptures","replacerArgs","getSubstitution","tailPos","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","callRegExpExec","SUPPORTS_Y","SPLIT","nativeSplit","internalSplit","lim","lastLength","lastLastIndex","separatorCopy","splitter","unicodeMatching","nativeStartsWith","$trim","forcedStringTrimMethod","$trimEnd","trimEnd","trimRight","$trimStart","trimStart","createHTML","forcedStringHTMLMethod","anchor","big","blink","bold","fontcolor","fontsize","italics","strike","sup","createTypedArrayConstructor","$copyWithin","$fill","ArrayIterators","arrayValues","arrayKeys","arrayEntries","nativeTypedArrayIterator","CORRECT_ITER_NAME","typedArrayValues","$join","$lastIndexOf","middle","$slice","$sort","beginIndex","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","arrayJoin","IS_NOT_ARRAY_METHOD","InternalWeakMap","collectionWeak","enforceIternalState","IS_IE11","$WeakMap","WeakMapPrototype","nativeDelete","nativeHas","nativeGet","nativeSet","isNode","EOF","arrayFrom","toASCII","URLSearchParamsModule","NativeURL","getInternalSearchParamsState","getInternalURLState","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","codePoints","parseIPv6","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","ipv4","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","pointer","serializeHost","ignore0","ipv6","currStart","currLength","findLongestZeroSequence","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","specialSchemes","ftp","http","https","ws","wss","scheme","includesCredentials","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","startsWithWindowsDriveLetter","shortenURLsPath","pathSize","isSingleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","bufferCodePoints","failure","seenAt","seenBracket","seenPasswordToken","fragment","codePoint","encodedCodePoints","URLConstructor","baseState","urlString","searchParamsState","serializeURL","getOrigin","getProtocol","getUsername","getPassword","getHost","getHostname","getPort","getPathname","getSearch","getSearchParams","getHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","nativeRevokeObjectURL","regexNonASCII","regexSeparators","OVERFLOW_ERROR","stringFromCharCode","digitToBasic","digit","adapt","numPoints","firstTime","baseMinusTMin","inputLength","extra","ucs2decode","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","baseMinusT","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","updater","isPureReactComponent","__self","__source","_owner","keyPrefix","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Fragment","Profiler","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","createFactory","createRef","_ctor","_status","_result","useDebugValue","useImperativeHandle","useLayoutEffect","useMemo","currentTarget","extractEvents","eventTypes","phasedRegistrationNames","registrationName","dependencies","stateNode","acceptsBooleans","attributeNamespace","mustUseProperty","sanitizeURL","xlinkHref","setAttributeNS","db","_debugOwner","_debugSource","_valueTracker","stopTracking","defaultChecked","_wrapperState","initialChecked","controlled","selected","defaultSelected","MSApp","execUnsafeLocalFunction","namespaceURI","lastChild","animationend","animationiteration","animationstart","transitionend","alternate","effectTag","memoizedState","dehydrated","sibling","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","srcElement","correspondingUseElement","topLevelType","targetInst","ancestors","eventSystemFlags","containerInfo","blockedOn","pointerId","unstable_runWithPriority","hydrate","unstable_scheduleCallback","unstable_NormalPriority","bubbled","captured","eventPriority","unstable_UserBlockingPriority","gridArea","lineClamp","setProperty","menuitem","embed","keygen","wbr","HTMLIFrameElement","contentEditable","previousSibling","dispatchConfig","_targetInst","Wd","Xd","Yd","Zd","$d","Interface","returnValue","eventPool","destructor","getPooled","stopPropagation","cancelBubble","eventPhase","bubbles","cancelable","isTrusted","beforeInput","compositionEnd","compositionStart","compositionUpdate","datetime","tel","week","detachEvent","attachEvent","_isInputEventSupported","Alt","Meta","Shift","getModifierState","screenX","screenY","fromElement","movementX","movementY","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","mouseEnter","mouseLeave","pointerEnter","pointerLeave","select","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","onSelect","pseudoElement","mf","clipboardData","nf","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Apps","Scroll","MozPrintableKey","qf","8","12","13","16","19","20","27","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","dataTransfer","tf","touches","targetTouches","uf","vf","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","responders","tg","ug","updateQueue","baseQueue","effects","vg","wg","suspenseConfig","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","Mg","Ng","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","memoizedProps","revealOrder","ih","responder","jh","kh","mh","nh","oh","ph","qh","rh","uh","vh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","yh","Ah","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","pendingContext","retryTime","fallback","unstable_avoidThisFallback","isBackwards","rendering","renderingStartTime","tailExpiration","tailMode","wasMultiple","onclick","WeakSet","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ji","Qi","_reactRootContainer","Vi","Xi","Yi","Zi","$i","componentDidCatch","componentStack","Rj","cj","dj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","pingCache","Oj","Pj","Qj","Sj","firstSuspendedTime","activeElementDetached","focusedElem","selectionRange","Tj","removeAllRanges","addRange","Uj","Vj","Wj","hidden","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","_internalRoot","gk","ik","hk","jk","unmount","Lj","lk","Events","findFiberByHostInstance","supportsFiber","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","unstable_forceFrameRate","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","_nodeId","_clockseq","bytesToUuid","_lastMSecs","_lastNSecs","clockseq","seedBytes","msecs","nsecs","tmh","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","promises","spread","InterceptorManager","dispatchRequest","interceptors","interceptor","getUri","eject","throwIfCancellationRequested","throwIfRequested","normalizedName","isAxiosError","columnNumber","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","originURL","msie","urlParsingNode","requestURL","secure","toGMTString","resolvePromise","baseCreateCallback","forOwn","createWrapper","baseBind","baseCreateWrapper","partialArgs","partialRightArgs","isBind","isCurry","isPartialRight","thisBinding","isBindKey","isCurryBound","WinRTError","ownIndex","ownProps","metric","imperial","mm","cm","mm2","cm2","km2","yd2","ft2","mi2","mcg","oz","mm3","cm3","km3","krm","tsk","msk","kkp","glas","kanna","tsp","Tbs","in3","cup","pnt","gal","ft3","yd3","mu","KB","MB","GB","TB","ppm","ppb","ppt","ppq","knot","kPa","MPa","hPa","torr","psi","ksi","mA","kA","mV","kV","mW","kW","MW","GW","VAR","mVAR","kVAR","MVAR","GVAR","VA","mVA","kVA","MVA","GVA","mWh","kWh","MWh","GWh","kJ","VARh","mVARh","kVARh","MVARh","GVARh","mHz","Hz","kHz","MHz","GHz","THz","rpm","rad","deg","grad","arcmin","arcsec","zlib_deflate","ZStream","Deflate","chunkSize","windowBits","memLevel","strategy","gzip","ended","strm","deflateInit2","deflateSetHeader","dict","deflateSetDictionary","_dict_set","deflate","deflator","onEnd","onData","deflateEnd","deflateRaw","configuration_table","trees","adler32","rank","flush_pending","pending_buf","pending_out","flush_block_only","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","longest_match","cur_match","chain_length","max_chain_length","best_len","prev_length","nice_match","w_size","MAX_MATCH","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","more","_w_size","window_size","hash_size","insert","ins_h","hash_shift","hash_mask","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","MIN_MATCH","last_lit","deflate_slow","max_insert","prev_match","match_available","Config","good_length","max_lazy","nice_length","max_chain","DeflateState","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","HEAP_SIZE","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","MAX_BITS","heap","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","deflateResetKeep","_tr_init","deflateReset","max_block_size","max_start","deflateInit","old_flush","beg","hcrc","bstate","deflate_huff","deflate_rle","_tr_align","_tr_stored_block","avail","tmpDict","dictLength","deflateInfo","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","static_dtree","D_CODES","_dist_code","_length_code","base_length","static_l_desc","static_d_desc","static_bl_desc","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","send_bits","send_code","tree","bi_reverse","gen_codes","next_code","init_block","LITERALS","END_BLOCK","bi_windup","smaller","_m2","pqdownheap","compress_block","ltree","dtree","lx","build_tree","stree","xbits","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","stored_len","copy_block","LENGTH_CODES","L_CODES","tr_static_init","opt_lenb","static_lenb","max_blindex","black_mask","detect_data_type","BL_CODES","build_bl_tree","lcodes","dcodes","blcodes","send_all_trees","STATIC_TREES","bi_flush","zlib_inflate","GZheader","inflateInit2","inflateGetHeader","inflateSetDictionary","inflate","inflator","next_out_utf8","utf8str","allowBufError","inflateEnd","inflateRaw","ungzip","inflate_fast","inflate_table","zswap32","InflateState","havedict","dmax","wsize","whave","wnext","hold","lencode","distcode","lenbits","distbits","ncode","nlen","ndist","have","work","lendyn","distdyn","sane","back","was","inflateResetKeep","inflateReset","inflateReset2","lenfix","distfix","virgin","fixedtables","updatewindow","inflateInit","_in","_out","from_source","here_bits","here_op","here_val","last_bits","last_op","last_val","here","hbuf","inf_leave","xflags","extra_len","inflateInfo","s_window","lcode","dcode","lmask","dmask","dolen","dodist","lbase","lext","dbase","dext","lens_index","codes","table_index","incr","drop","used","huff","base_index","MAXBITS","offs","extra_index","Alea","seed","mash","Mash","impl","prng","int32","double","quick","XorGen","strseed","pool","math","nodecrypto","startdenom","significance","seedrandom","shortseed","mixkey","typ","entropy","tostring","plugins","screen","autoseed","arc4","ARC4","is_math_call","keylen","smear","stringseed","createDocumentFragment","enoughArguments","mutationMacro","textNodeIfPrimitive","TemporaryPrototype","TemporaryTokenList","wrapVerifyToken","hOP","noClassName","isSVG","baseVal","_isSVG","classListDescriptor","DocumentFragmentPrototype","DocumentFragment","NodePrototype","CharacterData","CharacterDataPrototype","DocumentType","DocumentTypePrototype","ElementPrototype","selectRemove","matchesSelector","webkitMatchesSelector","khtmlMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","had","replaceWith","_dom4","o_O","verifyToken","rAF","cAF","goOn","defaultInitDict","initCustomEvent","eventInitDict","Event","$Event","$KeyboardEvent","eventType","initType","altGraphKey","initKeyboardEvent","keyIdentifier","keyLocation","getModifier","withDefaults","withInitValues","initKeyEvent","$MouseEvent","patch","dataScope","$0","$1","$2","$3","DOMMap","dispatched","shouldDrop","__ce__","handleEvent","Dict","createEventListener","eventListener","augment","dE","aEL","rEL","increment","getListenerKey","createAEL","createREL","EventTarget","HTMLDocument","Window","_propTypes2","_gud2","_temp","_temp2","_len2","_key2","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","propFullName","getShim","ReactPropTypes","_addClass","_removeClass","addClass","removeClass","getClassNames","removeClasses","reflowAndAddClass","appearClassName","doneClassName","enterClassName","isStringClassNames","_this$getClassNames6","_hasClass","replaceClassName","origClass","classToRemove","_args","handleEnter","handleLifecycle","handleEntering","_len3","_key3","handleEntered","_len4","_key4","handleExit","_len5","_key5","handleExiting","_len6","_key6","_len7","_key7","originalArgs","_child$props","inProp","_React$Children$toArr","mergeChildMappings","getProp","nextChildMapping","hasPrev","hasNext","prevChild","isLeaving","getValueForKey","nextKeysPending","pendingKeys","childMapping","pendingNextKey","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","hasToStringTag","isStandardArguments","isLegacyArguments","supportsStandardArguments","callBind","getPolyfill","ERROR_MESSAGE","binder","boundLength","boundArgs","Empty","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","asyncGenIterator","INTRINSICS","Atomics","eval","EvalError","SharedArrayBuffer","SyntaxError","$replace","rePropName","reEscapeChar","quote","subString","getBaseIntrinsic","allowMissing","symObj","regexExec","isRegexMarker","badStringifier","throwRegexMarker","flagsBound","gOPD","TypeErr","getDay","tryDateObject","pi3","HPE","VONKRIES","BFD","CAT97","CAT00","CAT02","lch","_hsluv","gamma","fraction","amp","angleTable","ew","row","Yl","pure","chroma","r_","g_","Y0","L_","minOverMax","filters_1","clarendon","brightness","contrast","gingham","sepia","moon","lark","rgbAdjust","reyes","juno","slumber","crema","ludwig","aden","colorFilter","perpetua","amaro","mayfair","rise","hudson","valencia","xpro2","sierra","willow","lofi","inkwell","hefe","nashville","stinson","vesper","earlybird","brannan","sutro","toaster","walden","year1977","kelvin","maven","ginza","skyline","dogpatch","brooklyn","helena","ashby","charmes","presetsMapping","Clarendon","Gingham","Moon","Lark","Reyes","Juno","Slumber","Crema","Ludwig","Aden","Perpetua","Amaro","Mayfair","Rise","Hudson","Valencia","Sierra","Willow","Inkwell","Hefe","Nashville","Stinson","Vesper","Earlybird","Brannan","Sutro","Toaster","Walden","Kelvin","Maven","Ginza","Skyline","Dogpatch","Brooklyn","Helena","Ashby","Charmes","avg","adjustment","_common","_AlphaPointer2","_ref$className","picker","Alpha","flattenNames","_isString3","_forOwn3","_isPlainObject3","_map3","things","thing","nativeObjectToString","isOwn","unmasked","fromRight","typedArrayTags","isPrototype","funcProto","objectCtorString","baseMatches","baseMatchesProperty","baseIsMatch","getMatchData","matchesStrictComparable","matchData","noCustomizer","COMPARE_PARTIAL_FLAG","assocIndexOf","pairs","LARGE_ARRAY_SIZE","isMasked","reIsHostCtor","reIsNative","coreJsData","maskSrcKey","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","getMapData","equalArrays","equalByTag","equalObjects","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","setCacheAdd","setCacheHas","mapToArray","setToArray","symbolProto","symbolValueOf","getAllKeys","objProps","objLength","skipCtor","objCtor","othCtor","resIndex","isStrictComparable","hasIn","baseGet","memoizeCapped","memoize","resolver","memoized","baseToString","baseHasIn","hasPath","hasFunc","baseProperty","basePropertyDeep","eachFunc","mergeClasses","_cloneDeep3","toMerge","baseClone","CLONE_DEEP_FLAG","arrayEach","baseAssign","baseAssignIn","cloneBuffer","copySymbols","copySymbolsIn","getAllKeysIn","initCloneArray","initCloneByTag","initCloneObject","isMap","isSet","cloneableTags","isDeep","isFlat","isFull","isFunc","subValue","keysIn","copyObject","nativeKeysIn","isProto","allocUnsafe","cloneArrayBuffer","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","reFlags","objectCreate","baseIsMap","nodeIsMap","baseIsSet","nodeIsSet","autoprefix","_forOwn2","transforms","msBorderRadius","MozBorderRadius","OBorderRadius","WebkitBorderRadius","msBoxShadow","MozBoxShadow","OBoxShadow","WebkitBoxShadow","WebkitTouchCallout","KhtmlUserSelect","MozUserSelect","msUserSelect","WebkitUserSelect","WebkitBoxFlex","MozBoxFlex","WebkitFlex","msFlex","flexBasis","WebkitFlexBasis","WebkitJustifyContent","msTransition","MozTransition","OTransition","WebkitTransition","msTransform","MozTransform","OTransform","WebkitTransform","otherElementStyles","otherStyle","prefixed","expanded","Span","Hover","handleMouseOver","handleMouseOut","onMouseOver","onMouseOut","Active","handleMouseDown","handleMouseUp","setProp","_Checkboard2","calculateChange","unbindEventListeners","gradient","slider","overwrite","onTouchMove","initialA","containerWidth","containerHeight","checkboardCache","serverCanvas","EditableInput","VALID_KEY_CODES","handleBlur","blurValue","setUpdatedValue","getNumberValue","getArrowOffset","updatedValue","handleDrag","dragLabel","dragMax","getValueObjectWithLabel","onChangeValue","spellCheck","hideLabel","Hue","_props$direction","Raised","_merge2","zDepth","_ref$styles","passedStyles","assignMergeValue","baseMergeDeep","safeGet","isArrayLikeObject","toPlainObject","mergeFunc","isCommon","isTyped","baseRest","isIterateeCall","assigner","guard","overRest","setToString","otherArgs","baseSetToString","shortOut","nativeNow","lastCalled","stamp","Saturation","_throttle2","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","_container$getBoundin","bright","tinyCounter","mathRound","mathMin","mathMax","mathRandom","tinycolor","named","matchers","hsla","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","convertToPercentage","hsvToRgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","rgbToHsl","rgbToHsv","allow3Char","pad2","rgbaToArgbHex","convertDecimalToHex","_desaturate","clamp01","_saturate","_greyscale","desaturate","_lighten","_brighten","_darken","_spin","_complement","_triad","_tetrad","_splitcomplement","_analogous","_monochromatic","modification","isDark","getBrightness","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","rgb1","rgb2","readability","isReadable","wcag2","wcag2Parms","parms","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","burntsienna","darkgrey","darkslategrey","dimgrey","lightgray","lightslategrey","rebeccapurple","slategrey","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","Swatch","_interaction","_ref$onClick","onHover","_ref$title","_ref$focusStyle","focusStyle","swatch","handleFocus","AlphaPointer","Block","_BlockSwatches2","hexCode","card","borderStyle","borderWidth","borderColor","BlockSwatches","_map2","swatches","_CircleSwatch2","circleSize","circleSpacing","flexWrap","CircleSwatch","_reactcss","_ChromeFields2","_ChromePointer2","_ChromePointerCircle2","disableAlpha","controls","toggles","ChromeFields","_isUndefined2","_UnfoldMoreHorizontalIcon2","toggleViews","showHighlight","hideHighlight","field","iconHighlight","textTransform","_ref$fill","_ref$width","_ref$height","_ref$style","ChromePointer","ChromePointerCircle","Compact","_CompactColor2","_CompactFields2","compact","CompactColor","CompactFields","HEXwrap","HEXinput","HEXlabel","RGBwrap","RGBinput","RGBlabel","Github","_GithubSwatch2","borderBottomColor","triangleShadow","GithubSwatch","hoverSwatch","_HuePointer2","SliderPointer","borderBottom","Photoshop","_PhotoshopFields2","_PhotoshopPointerCircle2","_PhotoshopPointer2","_PhotoshopButton2","_PhotoshopPreviews2","currentColor","_props$styles","_props$className","backgroundImage","previews","onAccept","onCancel","fieldSymbols","PhotoshopPointerCircle","triangleBorder","Extend","leftInside","rightInside","PhotoshopButton","PhotoshopPreviews","Sketch","_SketchFields2","_SketchPresetColors2","presetColors","sliders","activeColor","SketchFields","SketchPresetColors","borderTop","swatchWrap","handleClick","colorObjOrString","_SliderSwatches2","_SliderPointer2","SliderSwatches","_SliderSwatch2","SliderSwatch","Swatches","_SwatchesGroup2","SwatchesGroup","_SwatchesColor2","SwatchesColor","_CheckIcon2","Twitter","hexcode","sliceIterator","placeholderReplaceRegex","placeholderReferenceRegex","LocalizedStrings","customLanguageInterface","_opts","getInterfaceLanguage","pseudo","pseudoMultipleLanguages","logsEnabled","_interfaceLanguage","_language","setContent","_Object$keys","defaultLang","_defaultLanguage","_defaultLanguageFirstLevelKeys","validateTranslationKeys","_pseudoAllValues","strArr","randomPseudo","bestLanguage","getBestMatchingLanguage","defaultLanguage","localizedStrings","_fallbackValues","defaultStrings","_this5","_availableLanguages","_this6","referenceValue","omitWarning","nav","languages","userLanguage","browserLanguage","auxLang","translationKeys","reservedNames","possible","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","ProgressEvent","ExifMapProto","stringValues","ExposureProgram","MeteringMode","LightSource","11","14","15","21","22","23","24","Flash","SensingMethod","SceneCaptureType","SceneType","CustomRendered","WhiteBalance","GainControl","Contrast","Sharpness","SubjectDistanceRange","FileSource","ComponentsConfiguration","getText","privateIFD","subTags","IptcMapProto","25","26","30","42","47","50","55","60","62","63","65","70","75","80","85","100","101","103","105","110","125","130","131","135","150","151","152","153","154","184","185","186","187","188","221","225","228","230","231","232","originalHasCanvasOption","originalHasMetaOption","originalTransformCoordinates","originalGetTransformedOptions","styleWidth","styleHeight","equal","sha256_js_1","supports_web_crypto_1","ie11_detection_1","supportsWebCrypto","isMsWindow","RawSha256_1","RawSha256","outer","bufferHash","bufferFromSecret","digestSync","finished","bytesHashed","hashBuffer","bitsHashed","bufferView","undecoratedLength","state0","state1","state2","state3","state4","state5","state6","state7","t1_1","t2_1","supportsZeroByteGCM","supportsSubtleCrypto","supportsSecureRandom","subtleCryptoMethods","generateKey","additionalData","tagLength","msSubtleCryptoMethods","quacksLikeAnMsWindow","subtle_1","jObj","asArray","_asArray","readPI","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","tagFound","reachedRoot","closingTag","readAttributeStr","validateAttributeString","tagClosed","otg","_isValid","afterAmp","validateAmpersand","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","validateAttrName","validateNumberAmpersand","nilChar","missingChar","nilPremitive","missingPremitive","emptyChar","emptyValue","boundryChar","arrStart","arrayEnd","charsArr","e_schema","hasValidData","itemSchema","arr_len","arr_i","processValue","_arr_i","_r2","isAppChar","x2j","_cToJsonStr","indentBy","supressEmptyNode","Parser","isAttribute","attrPrefixLen","isCDATA","replaceCDATAstr","replaceCDATAarr","indentate","tagEndChar","newLine","buildTextNode","buildEmptyTextNode","buildObjNode","buildEmptyObjNode","buildTextValNode","buildObjectNode","cdata","j2x","arrLen","Ks","decode_json_1","valueEquality","equalityFn","previousValue","superInit","typedArrayByteLength","swapEndian","word","Utf16","Utf16BE","utf16Chars","utf16Str","utf16StrLength","Utf16LE","Base64url","urlSafe","_safe_map","byte1","byte2","byte3","SHA224","HmacSHA224","SHA384","HmacSHA384","RHO_OFFSETS","PI_INDEXES","ROUND_CONSTANTS","newY","LFSR","roundConstantMsw","roundConstantLsw","bitPosition","SHA3","outputLength","nBlockSizeLanes","M2i","M2i1","lane","tMsw","tLsw","Tx","Tx4","Tx1","Tx1Msw","Tx1Lsw","laneIndex","laneMsw","laneLsw","rhoOffset","TPiLane","T0","TLane","Tx1Lane","Tx2Lane","roundConstant","blockSizeBits","outputLengthBytes","outputLengthLanes","hashWords","HmacSHA3","_zl","_zr","_sl","_sr","_hl","_hr","RIPEMD160","zl","f1","f5","rotl","HmacRIPEMD160","PBKDF2","blockIndex","blockIndexWords","blockWords","blockWordsLength","intermediate","intermediateWords","CFB","generateKeystreamAndEncrypt","keystream","CTR","_counter","CTRGladman","incWord","incCounter","OFB","_keystream","ECB","AnsiX923","lastBytePos","Ansix923","Iso10126","Iso97971","ZeroPadding","NoPadding","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","x8","RCON","AES","_nRounds","_keyPriorReset","keyWords","ksRows","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","_doCryptBlock","nRounds","PC1","PC2","BIT_SHIFTS","SBOX_P","SBOX_MASK","DES","keyBits","keyBitPos","subKeys","_subKeys","nSubKey","subKey","bitShift","invSubKeys","_invSubKeys","_lBlock","_rBlock","exchangeLR","exchangeRL","lBlock","rBlock","TripleDES","key1","key2","key3","_des1","_des2","_des3","RC4","keySigBytes","_S","keyByteIndex","keyByte","generateKeystreamWord","keystreamWord","RC4Drop","C_","Rabbit","_C","IV","IV_0","IV_1","i3","gx","RabbitLegacy","ListObjectsCommand","handlerExecutionContext","setIsFullscreen","onWebkitEndFullscreen","isScreenfullFullscreen","webkitEnterFullscreen","webkitExitFullscreen","Int64","fromNumber","negative","HEADER_VALUE_TYPE","HeaderMarshaller","toUtf8","e_2","formatHeaderValue","chunks_1","chunks_1_1","e_2_1","shortView","intView","longBytes","binView","binBytes","utf8Bytes","strView","strBytes","tsBytes","UUID_PATTERN","uuidBytes","nameLength","BOOLEAN_TAG","BYTE_TAG","SHORT_TAG","INT_TAG","LONG_TAG","binaryLength","BINARY_TAG","STRING_TAG","TIMESTAMP_TAG","UUID_TAG","EventStreamMarshaller","headerMarshaller","marshall","unmarshall","PRELUDE_LENGTH","messageLength","expectedPreludeChecksum","PRELUDE_MEMBER_LENGTH","expectedMessageChecksum","checksummer","splitMessage","formatHeaders","utf8Decoder","eventMarshaller","utfEncoder","source_1","source_1_1","messageType","unmodeledError","deserializedException","deserialized","getUnmarshalledStream","currentMessageTotalLength","currentMessagePendingLength","currentMessage","messageLengthBuffer","allocateMessage","sourceIterator","chunkLength","currentOffset","bytesRemaining","numBytesForTotal","numBytesToWrite","getChunkedStream","input_1","input_1_1","payloadBuf","universalMarshaller","bodyIterable","isReadableStream","releaseLock","serialziedIterable","ReadableStream","asyncIterable","pull","enqueue","blobReader","onChunk","totalBytesRead","Md5","sourceData","cmn","AWS_REGIONS","AWS_CN_REGIONS","AWS_ISO_REGIONS","AWS_ISO_B_REGIONS","AWS_US_GOV_REGIONS","_m","_o","_p","_q","clientSharedValues","apiVersion","disableHostPrefix","base64Decoder","base64Encoder","eventStreamSerdeProvider","md5","streamHasher","addExpectContinueMiddlewareOptions","getAddExpectContinuePlugin","Expect","addExpectContinueMiddleware","validateBucketNameMiddlewareOptions","getValidateBucketNamePlugin","unused","validateBucketNameMiddleware","useRegionalEndpointMiddlewareOptions","getUseRegionalEndpointPlugin","S3Client","_config_0","_config_1","_config_2","_config_3","_config_4","_config_5","_config_6","_config_7","_config_8","eventStreamMarshaller","AmbiguousRoleResolutionType","ErrorCode","MappingRuleMatchType","RoleMappingType","parseBody","loadRestJsonErrorCode","CustomRoleArn","IdentityId","Logins","AccountId","IdentityPoolId","AccessKeyId","SecretKey","SessionToken","Credentials","resolvedHostname","sanitizeErrorCode","rawValue","cleanValue","headerKey","GetIdCommand","GetCredentialsForIdentityCommand","resolveLogins","logins","tokenOrProvider","resolvedPairs","fromCognitoIdentity","client","customRoleArn","identityId","throwOnMissingCredentials","throwOnMissingAccessKeyId","throwOnMissingSecretKey","IndexedDbStorage","dbName","getItem","withObjectStore","onsuccess","removeItem","setItem","getDb","openDbRequest","indexedDB","onblocked","onupgradeneeded","createObjectStore","keyPath","transaction","objectStore","inMemoryStorage","InMemoryStorage","fromCognitoIdentityPool","localStorage","identityPoolId","userIdentifier","_provider","throwOnMissingId","AWS_TEMPLATE","CognitoIdentityClient","applyMd5BodyChecksumMiddlewareOptions","getApplyMd5BodyChecksumPlugin","DeleteObjectsCommand","fnRef","useEffectOnce","setRafState","initialWidth","initialHeight","handler_1","noTrailing","debounceMode","timeoutID","lastExec","clearExistingTimeout","arguments_","elapsed","defaultEvents","localState","onEvent","onVisibility","ssecMiddlewareOptions","getSsecPlugin","properties_1","properties_1_1","valueView","ssecMiddleware","PutObjectCommand"],"mappings":"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,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChuBmgD,EAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACrD4hI,EAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IACvC//B,EAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KACrDE,EAAI,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI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GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACthBC,GAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChjBF,GAAK,KACLK,GAAK,CAAC,CAAC,IAAK,IAAK,IAAK,GAAI,CAAC,IAAK,IAAK,IAAK,IAAK,GAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACzIC,GAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,IACxDuB,GAAK,EAAE,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GACnEzB,GAAK,CAAC,CAAC,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAAQ,CAAC,CAAC,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAAQ,CAAC,CAAC,CAAC,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAAQ,CAAC,CAAC,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,QACryKwB,GAAK,CAAC,CAAC,CAAC,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,CAAC,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,CAAC,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,KAAM,CAAC,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,CAAC,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,CAAC,GAAI,GAAI,EAAG,IAAK,IAAK,IAAK,GAAI,EAAG,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,KAAM,CAAC,CAAC,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,KAAM,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,CAAC,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,EAAG,IAAK,IAAK,IAAK,GAAI,EAAG,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,KAAM,CAAC,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,KAAM,CAAC,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,CAAC,CAAC,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,CAAC,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,CAAC,IAAK,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,CAAC,CAAC,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,CAAC,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,CAAC,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,EAAG,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,EAAG,KAAM,CAAC,IAAK,GAAI,EAAG,GAAI,IAAK,EAAG,GAAI,GAAI,IAAK,CAAC,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,EAAG,IAAK,IAAK,IAAK,EAAG,EAAG,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,CAAC,CAAC,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,GAAI,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,KAAM,CAAC,GAAI,EAAG,EAAG,IAAK,GAAI,IAAK,GAAI,EAAG,KAAM,CAAC,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,KAAM,CAAC,CAAC,IAAK,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,IAAK,IAAK,EAAG,GAAI,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,KAAM,CAAC,GAAI,EAAG,GAAI,IAAK,EAAG,GAAI,EAAG,IAAK,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,EAAG,GAAI,KAAM,CAAC,CAAC,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,CAAC,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,CAAC,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,EAAG,IAAK,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,KAAM,CAAC,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,CAAC,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,CAAC,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,KAAM,CAAC,CAAC,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,CAAC,GAAI,GAAI,IAAK,GAAI,EAAG,GAAI,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,CAAC,GAAI,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,CAAC,GAAI,GAAI,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,CAAC,GAAI,EAAG,GAAI,EAAG,GAAI,IAAK,GAAI,IAAK,GAAI,CAAC,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,KAAM,CAAC,CAAC,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,CAAC,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,EAAG,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,EAAG,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,EAAG,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,EAAG,GAAI,IAAK,IAAK,EAAG,EAAG,KAAM,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,MAAO,CAAC,CAAC,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,CAAC,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,CAAC,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,KAAM,CAAC,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,CAAC,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,IAAK,IAAK,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,CAAC,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,MACrgIzB,GAAK,CAAC,CAAC,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAAQ,CAAC,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAAQ,CAAC,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAAQ,CAAC,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IA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IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,MAAO,IAAK,MAAO,MAAO,IAAK,MAAO,MAAO,IAAK,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,MAAO,MAAO,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC3wWyC,EAAI,IAAIjD,EAAEqhW,eAAe,CAC3BW,eAAe,IAEjBhiW,EAAEu8T,IAAI6K,OAAOxkU,KAAK,CAAC,kBAAmB,SAAU5C,GAC9C,IAAIQ,EAAIR,EAAEyvG,KACNtvG,GAAKH,EAAE0O,EAAG1O,EAAE+B,EAAG/B,EAAE4H,SAAW,IAC5B1H,GAAKF,EAAEkhU,MAAO/gU,EAAEuhU,KAAM,IAE1B,GAAIvhU,EAAE6hW,cAAgB,kBAAoB7hW,EAAE6hW,eAAiB7hW,EAAE6hW,cAAe/+V,EAAEosH,WAAWlvH,GAAI,mBAAqBpB,OAAOK,UAAUkM,SAAShM,KAAKkB,GAAI,CACrJ,IAAIuD,EAAI,EAER,IAAK7D,EAAI,GAAI6D,EAAI,EAAGA,EAAIvD,EAAEH,OAAQ0D,GAAK,EACrC,mBAAqBhF,OAAOK,UAAUkM,SAAShM,KAAKkB,EAAEuD,IAAM7D,EAAE0C,KAAK,CAACK,EAAE8+V,cAAcvhW,EAAEuD,GAAG,IAAKvD,EAAEuD,GAAG,GAAIvD,EAAEuD,GAAG,KAAO7D,EAAE0C,KAAK,CAACK,EAAE8+V,cAAcvhW,EAAEuD,MAG/I/D,EAAEyvG,KAAOvvG,OACJF,EAAEyvG,KAAOxsG,EAAE8+V,cAAcvhW,GAEhCyC,EAAEosH,WAAW,CACX2yO,eAAe,OAlRrB,CAqREh4M,GAAIA,EAAEuyK,IAAIyhC,QAAU,WACpB,SAASh+V,EAAEA,GACT,IAAIQ,EACJ,GAAIb,KAAKmhW,QAAU9gW,EAAGQ,EAAIb,KAAK21M,SAAW,IAAIlxL,GAAGpkB,GAAIL,KAAK21M,SAASpjB,IAAM,EAAG,SAAW1xL,EAAE6hW,WAAW,GAAI,MAAM,IAAIp7V,MAAM,uBACxHzG,EAAE0xL,IAAM,EAAGvyL,KAAK8M,QAAS9M,KAAK4gW,OAAS,IAAI7rF,GAAG/0Q,MAAOA,KAAK2iW,cAG5D,OAAOtiW,EAAEqiH,KAAO,SAAU7hH,GACxB,OAAO,IAAIR,EAAEQ,IACZR,EAAEZ,UAAUqN,MAAQ,WACrB,OAAO9M,KAAK4iW,UAAY,IAAI1gD,GAAGliT,KAAK21M,UAAW31M,KAAKwnO,KAAO,IAAI66E,GAAGriT,MAAOA,KAAKmH,KAAO,IAAIw7S,GAAG3iT,MAAOA,KAAKshW,KAAO,IAAIl/C,GAAGpiT,MAAOA,KAAK2gW,UAAY,GAAI3gW,KAAK6iW,KAAO,IAAItgD,GAAGviT,MAAOA,KAAK8iW,KAAO,IAAItgD,GAAGxiT,MAAOA,KAAKohW,KAAO,IAAI1sU,GAAG10B,MAAOA,KAAK8+O,KAAO,IAAItqN,GAAGx0B,MAAOA,KAAK+iW,IAAM,IAAIzgD,GAAGtiT,MAAOA,KAAKgjW,KAAO,IAAIx3U,GAAGxrB,MAAOA,KAAKijW,KAAO,IAAIzuF,GAAGx0Q,MAAOA,KAAKghW,SAAWhhW,KAAK+iW,IAAIG,QAAUljW,KAAK+iW,IAAI/B,UAAYhhW,KAAK6iW,KAAK7B,SAAUhhW,KAAKihW,SAAWjhW,KAAK+iW,IAAIG,QAAUljW,KAAK+iW,IAAI9B,UAAYjhW,KAAK6iW,KAAK5B,SAAUjhW,KAAKmjW,QAAUnjW,KAAK+iW,IAAIG,QAAUljW,KAAK+iW,IAAII,SAAWnjW,KAAK6iW,KAAKM,QAASnjW,KAAKw6S,KAAO,CAACx6S,KAAKwnO,KAAK47H,KAAMpjW,KAAKwnO,KAAKp1G,KAAMpyH,KAAKwnO,KAAK67H,KAAMrjW,KAAKwnO,KAAKr1G,OAC9mB9xH,EAAEZ,UAAUkjW,YAAc,WAC3B,IAAItiW,EAAGQ,EAAGyC,EAAG9C,EAAGD,EAChB,GAAIP,KAAKmhU,YAAc,IAAMnhU,KAAKwnO,KAAK65H,WAAYrhW,KAAKw6S,KAAO,WAC7D,IAAI35S,EAAGyC,EAAG9C,EAAGD,EAEb,IAAKA,EAAI,GAAIM,EAAI,EAAGyC,GAAK9C,EAAIR,KAAKw6S,MAAM95S,OAAQG,EAAIyC,EAAGzC,IACrDR,EAAIG,EAAEK,GAAIN,EAAE0C,KAAKwL,KAAKqR,MAAMzf,EAAIL,KAAKmhU,cAGvC,OAAO5gU,GACPZ,KAAKK,MAAOA,KAAK8gW,MAAQ,EAAG9gW,KAAK8+O,KAAKokH,QAAU5/V,EAAI,KAAO9C,EAAIR,KAAK8+O,KAAKwkH,cAAe,IAAM,OAASziW,EAAIL,GAAK,OAASK,IAAM,GAAK,MAAQA,KAAMb,KAAK+gW,cAAgBlgW,EAAI,IAAMyC,IAAMtD,KAAK+gW,YAAc,EAAG/gW,KAAKghW,SAAWvyV,KAAKqR,MAAM9f,KAAKghW,SAAWhhW,KAAKmhU,aAAcnhU,KAAKihW,SAAWxyV,KAAKqR,MAAM9f,KAAKihW,SAAWjhW,KAAKmhU,aAAcnhU,KAAKmjW,QAAU10V,KAAKqR,MAAM9f,KAAKmjW,QAAUnjW,KAAKmhU,aAAcnhU,KAAKkhW,UAAYlhW,KAAK+iW,IAAIG,QAAUljW,KAAK+iW,IAAI7B,WAAalhW,KAAKghW,SAAUhhW,KAAKujW,QAAUvjW,KAAK+iW,IAAIG,QAAUljW,KAAK+iW,IAAIQ,SAAW,EAAGvjW,KAAKwjW,aAAexjW,KAAK+iW,IAAIG,QAAUljW,KAAK+iW,IAAIS,aAAe,IAAM,EAAGxjW,KAAKyjW,QAAU,KAAOljW,EAAIP,KAAKwjW,cAAgB,IAAMjjW,GAAK,IAAMA,GAAK,IAAMA,GAAK,IAAMA,GAAK,IAAMA,EAAGP,KAAK0jW,SAAW,KAAO1jW,KAAKwjW,YAAaxjW,KAAK2kP,MAAQ,EAAG3kP,KAAK8+O,KAAK6kH,eAAiB3jW,KAAK2kP,OAAS,GAAI3kP,KAAKyjW,UAAYzjW,KAAK2kP,OAAS,GAAI3kP,KAAK0jW,WAAa1jW,KAAK2kP,OAAS,GAAI,IAAM3kP,KAAK+gW,cAAgB/gW,KAAK2kP,OAAS,IAAK3kP,KAAK2kP,OAAS,IAAK3kP,KAAKshW,KAAK19G,QAAS,MAAM,IAAIt8O,MAAM,6BACr8BjH,EAAEZ,UAAUk+V,iBAAmB,SAAUt9V,GAC1C,IAAIQ,EACJ,OAAQ,OAASA,EAAIb,KAAKshW,KAAK19G,SAAW/iP,EAAE0gW,QAAQlhW,QAAK,IAAW,GACnEA,EAAEZ,UAAUi+V,aAAe,SAAUr9V,GACtC,IAAIQ,EACJ,OAAOA,EAAI,IAAMb,KAAKwnO,KAAK65H,WAAYrhW,KAAKohW,KAAKwC,SAASvjW,GAAGwjW,QAAUhjW,GACtER,EAAEZ,UAAUg+V,cAAgB,SAAUp9V,EAAGQ,EAAGyC,GAC7C,IAAI9C,EAAGD,EAAG6D,EAAGjB,EAEb,IAAKiB,EAAI,EAAG7D,EAAI,EAAG4C,GAAK9C,EAAI,GAAKA,GAAGK,OAAQ,GAAKyC,EAAI5C,EAAI4C,EAAI5C,EAAI4C,EAAG5C,EAAI,GAAK4C,IAAM5C,IAAMA,EACvFC,EAAIH,EAAEqL,WAAWnL,GAAI6D,GAAKpE,KAAK09V,aAAa19V,KAAK29V,iBAAiBn9V,IAAM8C,GAAK,IAAMzC,IAAM,EAG3F,OAAOuD,GAAKvD,EAAI,MACfR,EAAEZ,UAAUgoT,WAAa,SAAUpnT,EAAGQ,GACvC,IAAIyC,EACJ,OAAO,MAAQzC,IAAMA,GAAI,GAAKyC,EAAIzC,EAAIb,KAAKmjW,QAAU,GAAInjW,KAAKghW,SAAW19V,EAAItD,KAAKihW,UAAY,IAAM5gW,GACnGA,EAvCiB,GA0CtB,IAAI07T,GACAt3S,GAAK,WACP,SAASpkB,EAAEA,GACTL,KAAKy/B,KAAO,MAAQp/B,EAAIA,EAAI,GAAIL,KAAKuyL,IAAM,EAAGvyL,KAAKU,OAASV,KAAKy/B,KAAK/+B,OAGxE,OAAOL,EAAEZ,UAAUqkW,SAAW,WAC5B,OAAO9jW,KAAKy/B,KAAKz/B,KAAKuyL,QACrBlyL,EAAEZ,UAAUskW,UAAY,SAAU1jW,GACnC,OAAOL,KAAKy/B,KAAKz/B,KAAKuyL,OAASlyL,GAC9BA,EAAEZ,UAAUuiV,WAAa,WAC1B,OAAO,SAAWhiV,KAAK8jW,YAAc9jW,KAAK8jW,YAAc,KAAO9jW,KAAK8jW,YAAc,GAAK9jW,KAAK8jW,YAC3FzjW,EAAEZ,UAAUukW,YAAc,SAAU3jW,GACrC,OAAOL,KAAK+jW,UAAU1jW,IAAM,GAAK,KAAML,KAAK+jW,UAAU1jW,GAAK,GAAK,KAAML,KAAK+jW,UAAU1jW,GAAK,EAAI,KAAML,KAAK+jW,UAAU,IAAM1jW,IACxHA,EAAEZ,UAAUwkW,UAAY,WACzB,IAAI5jW,EACJ,OAAQA,EAAIL,KAAKgiV,eAAiB,WAAa3hV,EAAI,WAAaA,GAC/DA,EAAEZ,UAAUykW,WAAa,SAAU7jW,GACpC,OAAOA,EAAI,IAAMA,GAAK,YAAaL,KAAKgkW,YAAY3jW,IACnDA,EAAEZ,UAAU+iV,WAAa,WAC1B,OAAOxiV,KAAK8jW,YAAc,EAAI9jW,KAAK8jW,YAClCzjW,EAAEZ,UAAU0kW,YAAc,SAAU9jW,GACrC,OAAOL,KAAK+jW,UAAU1jW,GAAK,EAAI,KAAML,KAAK+jW,UAAU,IAAM1jW,IACzDA,EAAEZ,UAAU2kW,UAAY,WACzB,IAAI/jW,EACJ,OAAQA,EAAIL,KAAKwiV,eAAiB,MAAQniV,EAAI,MAAQA,GACrDA,EAAEZ,UAAU4kW,WAAa,SAAUhkW,GACpC,OAAOA,EAAI,IAAMA,GAAK,OAAQL,KAAKmkW,YAAY9jW,IAC9CA,EAAEZ,UAAUijW,WAAa,SAAUriW,GACpC,IAAIQ,EAAGyC,EAEP,IAAKA,EAAI,GAAIzC,EAAI,EAAG,GAAKR,EAAIQ,EAAIR,EAAIQ,EAAIR,EAAGQ,EAAI,GAAKR,IAAMQ,IAAMA,EAC/DyC,EAAEzC,GAAKf,OAAOqsH,aAAansH,KAAK8jW,YAGlC,OAAOxgW,EAAEomD,KAAK,KACbrpD,EAAEZ,UAAU6kW,YAAc,SAAUjkW,GACrC,IAAIQ,EAAGyC,EAAG9C,EAEV,IAAKA,EAAI,GAAIK,EAAI,EAAGyC,EAAIjD,EAAEK,OAAQ,GAAK4C,EAAIzC,EAAIyC,EAAIzC,EAAIyC,EAAGzC,EAAI,GAAKyC,IAAMzC,IAAMA,EAC7EL,EAAEyC,KAAKjD,KAAK+jW,UAAU1jW,EAAEqL,WAAW7K,KAGrC,OAAOL,GACNH,EAAEZ,UAAU8kW,UAAY,WACzB,OAAOvkW,KAAKokW,aACX/jW,EAAEZ,UAAU+kW,WAAa,SAAUnkW,GACpC,OAAOL,KAAKqkW,WAAWhkW,IACtBA,EAAEZ,UAAUglW,aAAe,WAC5B,IAAIpkW,EAAGQ,EAAGyC,EAAG9C,EAAGD,EAAG6D,EAAGjB,EAAG7C,EACzB,OAAOD,EAAIL,KAAK8jW,WAAYjjW,EAAIb,KAAK8jW,WAAYxgW,EAAItD,KAAK8jW,WAAYtjW,EAAIR,KAAK8jW,WAAYvjW,EAAIP,KAAK8jW,WAAY1/V,EAAIpE,KAAK8jW,WAAY3gW,EAAInD,KAAK8jW,WAAYxjW,EAAIN,KAAK8jW,WAAY,IAAMzjW,GAAK,GAAK,mBAAqB,IAAMA,GAAK,iBAAmB,IAAMQ,GAAK,eAAiB,IAAMyC,GAAK,YAAc,IAAM9C,GAAK,UAAY,IAAMD,GAAK,OAAS,IAAM6D,GAAK,KAAO,IAAMjB,IAAM,IAAM7C,GAAK,GAAK,kBAAoBD,EAAI,gBAAkBQ,EAAI,cAAgByC,EAAI,WAAa9C,EAAI,SAAWD,EAAI,MAAQ6D,EAAI,IAAMjB,EAAI7C,GACvfD,EAAEZ,UAAUilW,cAAgB,SAAUrkW,GACvC,IAAIQ,EAAGyC,EACP,OAAOzC,EAAI4N,KAAKI,MAAMxO,EAAI,YAAaiD,EAAI,WAAajD,EAAGL,KAAK+jW,UAAUljW,GAAK,GAAK,KAAMb,KAAK+jW,UAAUljW,GAAK,GAAK,KAAMb,KAAK+jW,UAAUljW,GAAK,EAAI,KAAMb,KAAK+jW,UAAU,IAAMljW,GAAIb,KAAK+jW,UAAUzgW,GAAK,GAAK,KAAMtD,KAAK+jW,UAAUzgW,GAAK,GAAK,KAAMtD,KAAK+jW,UAAUzgW,GAAK,EAAI,KAAMtD,KAAK+jW,UAAU,IAAMzgW,IAChSjD,EAAEZ,UAAUklW,QAAU,WACvB,OAAO3kW,KAAKikW,aACX5jW,EAAEZ,UAAUmlW,SAAW,SAAUvkW,GAClC,OAAOL,KAAKkkW,WAAW7jW,IACtBA,EAAEZ,UAAU6oL,KAAO,SAAUjoL,GAC9B,IAAIQ,EAAGyC,EAEP,IAAKzC,EAAI,GAAIyC,EAAI,EAAG,GAAKjD,EAAIiD,EAAIjD,EAAIiD,EAAIjD,EAAGiD,EAAI,GAAKjD,IAAMiD,IAAMA,EAC/DzC,EAAEoC,KAAKjD,KAAK8jW,YAGd,OAAOjjW,GACNR,EAAEZ,UAAUm+M,MAAQ,SAAUv9M,GAC/B,IAAIQ,EAAGyC,EAAG9C,EAAGD,EAEb,IAAKA,EAAI,GAAI+C,EAAI,EAAG9C,EAAIH,EAAEK,OAAQ4C,EAAI9C,EAAG8C,IACvCzC,EAAIR,EAAEiD,GAAI/C,EAAE0C,KAAKjD,KAAK+jW,UAAUljW,IAGlC,OAAON,GACNF,EAzEI,GA2EL6hT,GAAK,WACP,IAAI7hT,EAEJ,SAASQ,EAAER,GACT,IAAIQ,EAAGyC,EAAG9C,EAEV,IAAKR,KAAK6kW,WAAaxkW,EAAEskW,UAAW3kW,KAAK8kW,WAAazkW,EAAEkkW,YAAavkW,KAAK+kW,YAAc1kW,EAAEkkW,YAAavkW,KAAKglW,cAAgB3kW,EAAEkkW,YAAavkW,KAAKilW,WAAa5kW,EAAEkkW,YAAavkW,KAAKklW,OAAS,GAAI5hW,EAAI,EAAG9C,EAAIR,KAAK8kW,WAAY,GAAKtkW,EAAI8C,EAAI9C,EAAI8C,EAAI9C,EAAG8C,EAAI,GAAK9C,IAAM8C,IAAMA,EACrQzC,EAAI,CACFg2K,IAAKx2K,EAAEqiW,WAAW,GAClB7sG,SAAUx1P,EAAEskW,UACZrjV,OAAQjhB,EAAEskW,UACVjkW,OAAQL,EAAEskW,WACT3kW,KAAKklW,OAAOrkW,EAAEg2K,KAAOh2K,EAI5B,OAAOA,EAAEpB,UAAU6gL,OAAS,SAAUz/K,GACpC,IAAIyC,EAAG9C,EAAGD,EAAG6D,EAAGjB,EAAG7C,EAAGiqC,EAAG9+B,EAAG5H,EAAG+oB,EAAGzqB,EAAGjD,EAAGM,EAExC,IAAKA,KAAK2C,EAAI/C,OAAO2F,KAAKlE,GAAGH,OAAQJ,EAAImO,KAAK+O,IAAI,GAAI3Z,EAAI,GAAK4K,KAAKI,MAAMJ,KAAK+O,IAAIrb,GAAK7B,GAAI8D,EAAIqK,KAAKI,MAAMhL,EAAIvD,GAAImL,EAAI,GAAKtJ,EAAI0B,GAAIrD,EAAI,IAAIikB,IAAMmgV,SAAS5kW,KAAK6kW,YAAarkW,EAAEgkW,WAAWriW,GAAI3B,EAAEgkW,WAAW3gW,GAAIrD,EAAEgkW,WAAWpgW,GAAI5D,EAAEgkW,WAAW/4V,GAAIlL,EAAI,GAAK4B,EAAGooC,EAAI/pC,EAAE+xL,IAAMhyL,EAAG4C,EAAI,KAAMjE,EAAI,GAAI2B,EAC5R,IAAK+rB,EAAI/rB,EAAErB,GAAIgB,EAAE8jW,YAAY9kW,GAAIgB,EAAEokW,SAASvkW,EAAEusB,IAAKpsB,EAAEokW,SAASr6T,GAAI/pC,EAAEokW,SAASh4U,EAAElsB,QAASxB,EAAIA,EAAE6E,OAAO6oB,GAAI,SAAWptB,IAAM2D,EAAIonC,GAAIA,GAAK3d,EAAElsB,OAAQ6pC,EAAI,GACnJrrC,EAAE+D,KAAK,GAAIsnC,IAIf,OAAO/pC,EAAEo9M,MAAM1+M,GAAIoE,EAAI,WAAajD,EAAEG,EAAEi/B,MAAOj/B,EAAE+xL,IAAMpvL,EAAI,EAAG3C,EAAEwjW,YAAY1gW,GAAI9C,EAAEi/B,MACjFp/B,EAAI,SAAW8kW,GAChB,IAAItkW,EAAGyC,EAAG9C,EAAGD,EAEb,IAAK4kW,EAAM7wF,GAAG30Q,KAAKwlW,GAAMA,EAAIzkW,OAAS,GACpCykW,EAAIliW,KAAK,GAGX,IAAKzC,EAAI,IAAIikB,GAAG0gV,GAAM7hW,EAAI,EAAGzC,EAAI,EAAGN,EAAI4kW,EAAIzkW,OAAQG,EAAIN,EAAGM,EAAIA,GAAK,EAClEyC,GAAK9C,EAAEwhV,aAGT,OAAO,WAAa1+U,GACnBzC,EAtCI,GAwCL6jP,GAAK,GAAGhlP,eACRyiT,GAAK,SAAY9hT,EAAGQ,GACtB,IAAK,IAAIyC,KAAKzC,EACZ6jP,GAAG/kP,KAAKkB,EAAGyC,KAAOjD,EAAEiD,GAAKzC,EAAEyC,IAG7B,SAAS9C,IACPR,KAAKC,YAAcI,EAGrB,OAAOG,EAAEf,UAAYoB,EAAEpB,UAAWY,EAAEZ,UAAY,IAAIe,EAAKH,EAAE+kW,UAAYvkW,EAAEpB,UAAWY,GAGtF07T,GAAK,WACH,SAAS17T,EAAEA,GACT,IAAIQ,EACJb,KAAK49G,KAAOv9G,EAAGQ,EAAIb,KAAK49G,KAAKglP,UAAUsC,OAAOllW,KAAK62K,KAAM72K,KAAKkjW,SAAWriW,EAAGA,IAAMb,KAAKshB,OAASzgB,EAAEygB,OAAQthB,KAAKU,OAASG,EAAEH,OAAQV,KAAK8M,MAAM9M,KAAK49G,KAAK+3F,WAGzJ,OAAOt1M,EAAEZ,UAAUqN,MAAQ,aAAgBzM,EAAEZ,UAAU6gL,OAAS,aAAgBjgL,EAAEZ,UAAUm9M,IAAM,WAChG,OAAO58M,KAAKkjW,QAAUljW,KAAK49G,KAAK+3F,SAASpjB,IAAMvyL,KAAKshB,OAAQthB,KAAK49G,KAAK+3F,SAASrtB,KAAKtoL,KAAKU,SAAW,MACnGL,EARA,GAWL,IAAIgiT,GAAK,SAAUhiT,GACjB,SAASQ,IACP,OAAOA,EAAEukW,UAAUnlW,YAAYU,MAAMX,KAAMS,WAG7C,OAAO0hT,GAAGthT,EAAGk7T,IAAKl7T,EAAEpB,UAAUo3K,IAAM,OAAQh2K,EAAEpB,UAAUqN,MAAQ,SAAUzM,GACxE,OAAOA,EAAEkyL,IAAMvyL,KAAKshB,OAAQthB,KAAKwwB,QAAUnwB,EAAEskW,UAAW3kW,KAAKi7I,SAAW56I,EAAEskW,UAAW3kW,KAAKqlW,mBAAqBhlW,EAAEskW,UAAW3kW,KAAKslW,YAAcjlW,EAAEskW,UAAW3kW,KAAK2kP,MAAQtkP,EAAEkkW,YAAavkW,KAAKqhW,WAAahhW,EAAEkkW,YAAavkW,KAAKulW,QAAUllW,EAAEokW,eAAgBzkW,KAAKwlW,SAAWnlW,EAAEokW,eAAgBzkW,KAAKojW,KAAO/iW,EAAEkkW,YAAavkW,KAAKoyH,KAAO/xH,EAAEkkW,YAAavkW,KAAKqjW,KAAOhjW,EAAEkkW,YAAavkW,KAAKmyH,KAAO9xH,EAAEkkW,YAAavkW,KAAKylW,SAAWplW,EAAEkkW,YAAavkW,KAAK0lW,cAAgBrlW,EAAEkkW,YAAavkW,KAAK2lW,kBAAoBtlW,EAAEkkW,YAAavkW,KAAK4lW,iBAAmBvlW,EAAEkkW,YAAavkW,KAAK6lW,gBAAkBxlW,EAAEkkW,aACljB1jW,EAAEpB,UAAU6gL,OAAS,SAAUjgL,GAChC,IAAIQ,EACJ,OAAQA,EAAI,IAAI4jB,IAAMmgV,SAAS5kW,KAAKwwB,SAAU3vB,EAAE+jW,SAAS5kW,KAAKi7I,UAAWp6I,EAAE+jW,SAAS5kW,KAAKqlW,oBAAqBxkW,EAAE+jW,SAAS5kW,KAAKslW,aAAczkW,EAAE2jW,WAAWxkW,KAAK2kP,OAAQ9jP,EAAE2jW,WAAWxkW,KAAKqhW,YAAaxgW,EAAE6jW,cAAc1kW,KAAKulW,SAAU1kW,EAAE6jW,cAAc1kW,KAAKwlW,UAAW3kW,EAAE2jW,WAAWxkW,KAAKojW,MAAOviW,EAAE2jW,WAAWxkW,KAAKoyH,MAAOvxH,EAAE2jW,WAAWxkW,KAAKqjW,MAAOxiW,EAAE2jW,WAAWxkW,KAAKmyH,MAAOtxH,EAAE2jW,WAAWxkW,KAAKylW,UAAW5kW,EAAE2jW,WAAWxkW,KAAK0lW,eAAgB7kW,EAAE2jW,WAAWxkW,KAAK2lW,mBAAoB9kW,EAAE2jW,WAAWnkW,GAAIQ,EAAE2jW,WAAWxkW,KAAK6lW,iBAAkBhlW,EAAE4+B,MACngB5+B,EAVI,GAYL0qB,GAAK,WACP,SAASlrB,EAAEA,EAAGQ,GACZ,IAAIyC,EAAG9C,EAAGD,EAAG6D,EAAGjB,EAAG7C,EAAGiqC,EAAG9+B,EAAG5H,EAAG+oB,EAAGzqB,EAAGjD,EAAGM,EAAG6C,EAAGe,EAAGN,EAAG3D,EAEpD,OAAQa,KAAK8lW,WAAazlW,EAAEmiV,aAAcxiV,KAAK+lW,WAAa1lW,EAAEkkW,YAAavkW,KAAKshB,OAASzgB,EAAIR,EAAEskW,UAAW9gW,EAAIxD,EAAEkyL,IAAKlyL,EAAEkyL,IAAMvyL,KAAKshB,OAAQthB,KAAK2vB,OAAStvB,EAAEmiV,aAAcxiV,KAAKU,OAASL,EAAEmiV,aAAcxiV,KAAKgmW,SAAW3lW,EAAEmiV,aAAcxiV,KAAKimW,UAAY,IAAMjmW,KAAK8lW,YAAc,IAAM9lW,KAAK+lW,YAAc,IAAM/lW,KAAK2vB,QAAU,IAAM3vB,KAAK8lW,YAAc,IAAM9lW,KAAK2vB,OAAQ3vB,KAAKuhW,QAAU,GAAIvhW,KAAK2vB,QAChY,KAAK,EACH,IAAKrvB,EAAI,EAAGA,EAAI,MAAOA,EACrBN,KAAKuhW,QAAQjhW,GAAKD,EAAEyjW,WAGtB,MAEF,KAAK,EACH,IAAK3hW,EAAI9B,EAAEmiV,aAAc51T,EAAIzqB,EAAI,EAAG9B,EAAEkyL,KAAO,EAAGhyL,EAAI,WAClD,IAAIM,EAAGyC,EAEP,IAAKA,EAAI,GAAIhD,EAAIO,EAAI,EAAG,GAAK+rB,EAAI/rB,EAAI+rB,EAAI/rB,EAAI+rB,EAAGtsB,EAAI,GAAKssB,IAAM/rB,IAAMA,EACnEyC,EAAEL,KAAK5C,EAAEmiV,cAGX,OAAOl/U,EAP2C,GAQ/CjD,EAAEkyL,KAAO,EAAG/yL,EAAI,WACnB,IAAIqB,EAAGyC,EAEP,IAAKA,EAAI,GAAIhD,EAAIO,EAAI,EAAG,GAAK+rB,EAAI/rB,EAAI+rB,EAAI/rB,EAAI+rB,EAAGtsB,EAAI,GAAKssB,IAAM/rB,IAAMA,EACnEyC,EAAEL,KAAK5C,EAAEmiV,cAGX,OAAOl/U,EAPY,GAQhBinC,EAAI,WACP,IAAI1pC,EAAGyC,EAEP,IAAKA,EAAI,GAAIhD,EAAIO,EAAI,EAAG,GAAK+rB,EAAI/rB,EAAI+rB,EAAI/rB,EAAI+rB,EAAGtsB,EAAI,GAAKssB,IAAM/rB,IAAMA,EACnEyC,EAAEL,KAAK5C,EAAEmiV,cAGX,OAAOl/U,EAPA,GAQJmI,EAAI,WACP,IAAI5K,EAAGyC,EAEP,IAAKA,EAAI,GAAIhD,EAAIO,EAAI,EAAG,GAAK+rB,EAAI/rB,EAAI+rB,EAAI/rB,EAAI+rB,EAAGtsB,EAAI,GAAKssB,IAAM/rB,IAAMA,EACnEyC,EAAEL,KAAK5C,EAAEmiV,cAGX,OAAOl/U,EAPA,GAQJ9C,GAAKR,KAAKU,OAASL,EAAEkyL,IAAMvyL,KAAKshB,QAAU,EAAGne,EAAI,WACpD,IAAItC,EAAGyC,EAEP,IAAKA,EAAI,GAAIhD,EAAIO,EAAI,EAAG,GAAKL,EAAIK,EAAIL,EAAIK,EAAIL,EAAGF,EAAI,GAAKE,IAAMK,IAAMA,EACnEyC,EAAEL,KAAK5C,EAAEmiV,cAGX,OAAOl/U,EAP6C,GAQjDhD,EAAI8C,EAAI,EAAGjE,EAAIoB,EAAEG,OAAQ0C,EAAIjE,EAAGmB,IAAM8C,EACzC,IAAKf,EAAI9B,EAAED,GAAIgD,EAAIR,EAAI5D,EAAIM,EAAEc,GAAIpB,GAAKmD,EAAIS,GAAKT,EAAIS,GAAKT,EAAGiB,EAAIpE,GAAKmD,IAAMS,IAAMA,EAC9E,IAAM2I,EAAEnL,GAAK8D,EAAId,EAAIinC,EAAEjqC,GAAK,KAAO8D,EAAIjB,EAAEsI,EAAEnL,GAAK,GAAKgD,EAAIpE,IAAM0tB,EAAItsB,KAAO,KAAO8D,GAAKmmC,EAAEjqC,IAAKN,KAAKuhW,QAAQj+V,GAAK,MAAQc,EAM/H/D,EAAEkyL,IAAM1uL,EAGV,OAAOxD,EAAEigL,OAAS,SAAUjgL,EAAGQ,GAC7B,IAAIyC,EAAG9C,EAAGD,EAAG6D,EAAGjB,EAAG7C,EAAGiqC,EAAG9+B,EAAG5H,EAAG+oB,EAAGzqB,EAAGjD,EAAGM,EAAG6C,EAAGe,EAAGN,EAAG3D,EAAGiD,EAAG0b,EAAGimF,EAAGu/E,EAAGlf,EAAGr1J,EAAGmuJ,EAAG56J,EAAGlB,EAAGmgD,EAAG4hI,EAAG//B,EAAGE,EAAGviH,EAAGspH,EAAGrmD,EAAG++E,EAAGne,EAAGzgK,EAAGs/K,EAAGh/E,EAAGq+E,EAAGF,EAAG/kK,EAAGqlK,EAAGL,EAAGe,EAAGX,EAAGa,EAE3I,OAAQX,EAAI,IAAI1+J,GAAMrgB,EAAIhF,OAAO2F,KAAK1E,GAAGmH,MAAK,SAAUnH,EAAGQ,GACzD,OAAOR,EAAIQ,KACTA,GACF,IAAK,WACH,IAAKrB,EAAI,EAAG6C,EAAI,WACd,IAAIhC,EAAI,GAER,IAAKnB,EAAI,EAAGA,EAAI,MAAOA,EACrBmB,EAAE4C,KAAK,GAGT,OAAO5C,EAPO,GAQXyC,EAAI,CACP6yE,EAAG,GACFp1E,EAAI,GAAI6iJ,EAAI,EAAGp/C,EAAI5/F,EAAE1D,OAAQ0iJ,EAAIp/C,EAAGo/C,IACrC,MAAQtgJ,EAAE+/K,EAAIxiL,EAAEG,EAAI4D,EAAEg/I,OAAStgJ,EAAE+/K,KAAOrjL,GAAIe,EAAEC,GAAK,CACjD0lW,IAAK7lW,EAAEG,GACP2lW,IAAKrjW,EAAEzC,EAAEG,KACR6B,EAAE7B,GAAKsC,EAAEzC,EAAEG,IAGhB,OAAO2iL,EAAEghL,YAAY,GAAIhhL,EAAEghL,YAAY,GAAIhhL,EAAE6gL,YAAY,IAAK7gL,EAAEghL,YAAY,GAAIhhL,EAAEghL,YAAY,KAAMhhL,EAAEghL,YAAY,GAAIhhL,EAAEy6B,MAAMv7M,GAAI,CAChI+jW,QAAS7lW,EACT8lW,SAAUljL,EAAE1jJ,KACZ6mU,WAAY9mW,EAAI,GAGpB,IAAK,UACH,IAAK4B,EAAI,GAAIyC,EAAI,GAAI1E,EAAI,EAAG2D,EAAI,GAAIQ,EAAI,GAAIF,EAAImnC,EAAI,KAAM+4G,EAAI,EAAGy/B,EAAI3+K,EAAE1D,OAAQ4iJ,EAAIy/B,EAAGz/B,IACpF,MAAQxgJ,EAAEgb,EAAIzd,EAAEG,EAAI4D,EAAEk/I,OAASxgJ,EAAEgb,KAAO3e,GAAImE,EAAE9C,GAAK,CACjD0lW,IAAKpoV,EACLqoV,IAAKrjW,EAAEgb,IACN3a,EAAIL,EAAEgb,GAAKtd,EAAG,MAAQ4C,GAAKD,IAAMonC,IAAMnnC,GAAKS,EAAEZ,KAAKG,GAAIhC,EAAE6B,KAAKzC,GAAI+pC,EAAIpnC,GAAIC,EAAI5C,EAGnF,IAAK4C,GAAKS,EAAEZ,KAAKG,GAAIS,EAAEZ,KAAK,OAAQ7B,EAAE6B,KAAK,OAAQi6J,EAAI,GAAKnuJ,EAAI3N,EAAEV,QAAS0jK,EAAI,EAAI31J,KAAKC,IAAID,KAAK+O,IAAIzO,GAAKN,KAAKgP,IAAK,GAAImP,EAAIne,KAAK+O,IAAI4mJ,EAAI,GAAK31J,KAAKgP,IAAK6lK,EAAI,EAAIv0K,EAAIq1J,EAAG9jK,EAAI,GAAIyjG,EAAI,GAAI5hG,EAAI,GAAIjD,EAAI6hC,EAAI,EAAG6jI,EAAIxjK,EAAEV,OAAQqgC,EAAI6jI,EAAG1lK,IAAM6hC,EAAG,CACtO,GAAIz+B,EAAIlB,EAAElC,GAAIuM,EAAI5H,EAAE3E,GAAI,QAAUoD,EAAG,CACnChC,EAAE2C,KAAK,GAAI8gG,EAAE9gG,KAAK,GAClB,MAGF,GAAIX,GAAKi/C,EAAIj+C,EAAEhB,GAAG6jW,MAAQ,MAAO,IAAK7lW,EAAE2C,KAAK,GAAI8gG,EAAE9gG,KAAK,GAAKd,EAAEzB,OAASqO,EAAI7P,IAAKsB,EAAI6pJ,EAAI/nJ,EAAGA,GAAKmJ,EAAI4+I,GAAK5+I,EAAI4+I,GAAK5+I,EAAGjL,EAAI8B,GAAKmJ,IAAM4+I,IAAMA,EACzIloJ,EAAEc,KAAKK,EAAE9C,GAAG2lW,UACP7lW,EAAE2C,KAAKs+C,EAAIj/C,GAAIyhG,EAAE9gG,KAAK,GAG/B,IAAKkgL,EAAEghL,YAAY,GAAIhhL,EAAEghL,YAAY,GAAIhhL,EAAE6gL,YAAY,IAAK7gL,EAAEghL,YAAY,GAAIhhL,EAAEghL,YAAY,GAAK,EAAIp1V,EAAI,EAAI5M,EAAEzB,QAASyiL,EAAEghL,YAAY,GAAIhhL,EAAEghL,YAAYjnM,GAAIimB,EAAEghL,YAAY//L,GAAI+e,EAAEghL,YAAYv3U,GAAIu2J,EAAEghL,YAAY7gL,GAAIzlK,EAAI,EAAG1Z,EAAIN,EAAEnD,OAAQmd,EAAI1Z,EAAG0Z,IAC5Ord,EAAIqD,EAAEga,GAAIslK,EAAEghL,YAAY3jW,GAG1B,IAAK2iL,EAAEghL,YAAY,GAAIjhL,EAAI,EAAGO,EAAIriL,EAAEV,OAAQwiL,EAAIO,EAAGP,IACjD1iL,EAAIY,EAAE8hL,GAAIC,EAAEghL,YAAY3jW,GAG1B,IAAKojL,EAAI,EAAGn/E,EAAInkG,EAAEI,OAAQkjL,EAAIn/E,EAAGm/E,IAC/BzgL,EAAI7C,EAAEsjL,GAAIT,EAAEghL,YAAYhhW,GAG1B,IAAK8/K,EAAI,EAAGH,EAAI/+E,EAAErjG,OAAQuiL,EAAIH,EAAGG,IAC/B7gL,EAAI2hG,EAAEk/E,GAAIE,EAAEghL,YAAY/hW,GAG1B,IAAK0hL,EAAI,EAAGlB,EAAIzgL,EAAEzB,OAAQojL,EAAIlB,EAAGkB,IAC/BtkL,EAAI2C,EAAE2hL,GAAIX,EAAEghL,YAAY3kW,GAG1B,MAAO,CACL4mW,QAAS9iW,EACT+iW,SAAUljL,EAAE1jJ,KACZ6mU,WAAYnnW,EAAI,KAGrBkB,EA3II,GA6IL+hT,GAAK,SAAU/hT,GACjB,SAASQ,IACP,OAAOA,EAAEukW,UAAUnlW,YAAYU,MAAMX,KAAMS,WAG7C,OAAO0hT,GAAGthT,EAAGk7T,IAAKl7T,EAAEpB,UAAUo3K,IAAM,OAAQh2K,EAAEpB,UAAUqN,MAAQ,SAAUzM,GACxE,IAAIQ,EAAGyC,EAAG9C,EAEV,IAAKH,EAAEkyL,IAAMvyL,KAAKshB,OAAQthB,KAAKwwB,QAAUnwB,EAAEmiV,aAAchiV,EAAIH,EAAEmiV,aAAcxiV,KAAKklW,OAAS,GAAIllW,KAAK4jP,QAAU,KAAMtgP,EAAI,EAAG,GAAK9C,EAAI8C,EAAI9C,EAAI8C,EAAI9C,EAAG8C,EAAI,GAAK9C,IAAM8C,IAAMA,EACtKzC,EAAI,IAAI0qB,GAAGlrB,EAAGL,KAAKshB,QAASthB,KAAKklW,OAAOjiW,KAAKpC,GAAIA,EAAEolW,WAAa,MAAQjmW,KAAK4jP,UAAY5jP,KAAK4jP,QAAU/iP,GAG1G,OAAO,GACNA,EAAEy/K,OAAS,SAAUjgL,EAAGQ,GACzB,IAAIyC,EAAG9C,EACP,OAAO,MAAQK,IAAMA,EAAI,YAAayC,EAAIioB,GAAG+0J,OAAOjgL,EAAGQ,IAAKL,EAAI,IAAIikB,IAAM0/U,YAAY,GAAI3jW,EAAE2jW,YAAY,GAAI7gW,EAAE+pR,MAAQ7sR,EAAEi/B,KAAK17B,OAAOT,EAAE+iW,UAAW/iW,GAChJzC,EAhBI,GAkBL0hT,GAAK,SAAUliT,GACjB,SAASQ,IACP,OAAOA,EAAEukW,UAAUnlW,YAAYU,MAAMX,KAAMS,WAG7C,OAAO0hT,GAAGthT,EAAGk7T,IAAKl7T,EAAEpB,UAAUo3K,IAAM,OAAQh2K,EAAEpB,UAAUqN,MAAQ,SAAUzM,GACxE,OAAOA,EAAEkyL,IAAMvyL,KAAKshB,OAAQthB,KAAKwwB,QAAUnwB,EAAEskW,UAAW3kW,KAAKghW,SAAW3gW,EAAEkkW,YAAavkW,KAAKihW,SAAW5gW,EAAEkkW,YAAavkW,KAAKmjW,QAAU9iW,EAAEkkW,YAAavkW,KAAKumW,gBAAkBlmW,EAAEkkW,YAAavkW,KAAKwmW,mBAAqBnmW,EAAEkkW,YAAavkW,KAAKymW,oBAAsBpmW,EAAEkkW,YAAavkW,KAAK0mW,WAAarmW,EAAEkkW,YAAavkW,KAAK2mW,eAAiBtmW,EAAEkkW,YAAavkW,KAAK4mW,cAAgBvmW,EAAEkkW,YAAavkW,KAAK6mW,YAAcxmW,EAAEkkW,YAAalkW,EAAEkyL,KAAO,EAAGvyL,KAAK8mW,iBAAmBzmW,EAAEkkW,YAAavkW,KAAK+mW,gBAAkB1mW,EAAEmiV,cACpe3hV,EAPI,GASLyhT,GAAK,SAAUjiT,GACjB,SAASQ,IACP,OAAOA,EAAEukW,UAAUnlW,YAAYU,MAAMX,KAAMS,WAG7C,OAAO0hT,GAAGthT,EAAGk7T,IAAKl7T,EAAEpB,UAAUo3K,IAAM,OAAQh2K,EAAEpB,UAAUqN,MAAQ,SAAUzM,GACxE,GAAIA,EAAEkyL,IAAMvyL,KAAKshB,OAAQthB,KAAKwwB,QAAUnwB,EAAEmiV,aAAcxiV,KAAKgnW,iBAAmB3mW,EAAEkkW,YAAavkW,KAAKinW,YAAc5mW,EAAEmiV,aAAcxiV,KAAKknW,WAAa7mW,EAAEmiV,aAAcxiV,KAAK4a,KAAOva,EAAEkkW,YAAavkW,KAAKmnW,gBAAkB9mW,EAAEkkW,YAAavkW,KAAKonW,gBAAkB/mW,EAAEkkW,YAAavkW,KAAKqnW,kBAAoBhnW,EAAEkkW,YAAavkW,KAAKsnW,kBAAoBjnW,EAAEkkW,YAAavkW,KAAKunW,kBAAoBlnW,EAAEkkW,YAAavkW,KAAKwnW,kBAAoBnnW,EAAEkkW,YAAavkW,KAAKynW,oBAAsBpnW,EAAEkkW,YAAavkW,KAAK0nW,oBAAsBrnW,EAAEkkW,YAAavkW,KAAK2nW,eAAiBtnW,EAAEkkW,YAAavkW,KAAK4nW,mBAAqBvnW,EAAEkkW,YAAavkW,KAAKwjW,YAAcnjW,EAAEkkW,YAAavkW,KAAK6nW,OAAS,WAC3nB,IAAIhnW,EAAGyC,EAEP,IAAKA,EAAI,GAAIzC,EAAI,EAAGA,EAAI,KAAMA,EAC5ByC,EAAEL,KAAK5C,EAAEyjW,YAGX,OAAOxgW,EAPonB,GAQxnBtD,KAAK8nW,UAAY,WACpB,IAAIjnW,EAAGyC,EAEP,IAAKA,EAAI,GAAIzC,EAAI,EAAGA,EAAI,IAAKA,EAC3ByC,EAAEL,KAAK5C,EAAEskW,WAGX,OAAOrhW,EAPa,GAQjBtD,KAAK+nW,SAAW1nW,EAAEqiW,WAAW,GAAI1iW,KAAKgoW,UAAY3nW,EAAEkkW,YAAavkW,KAAKioW,eAAiB5nW,EAAEkkW,YAAavkW,KAAKkoW,cAAgB7nW,EAAEkkW,YAAavkW,KAAKwwB,QAAU,IAAMxwB,KAAKmoW,OAAS9nW,EAAEkkW,YAAavkW,KAAKooW,QAAU/nW,EAAEkkW,YAAavkW,KAAKmjW,QAAU9iW,EAAEkkW,YAAavkW,KAAKqoW,UAAYhoW,EAAEkkW,YAAavkW,KAAKsoW,WAAajoW,EAAEkkW,YAAavkW,KAAKuoW,cAAgB,WACjV,IAAI1nW,EAAGyC,EAEP,IAAKA,EAAI,GAAIzC,EAAI,EAAGA,EAAI,EAAGA,IAAMA,EAC/ByC,EAAEL,KAAK5C,EAAEskW,WAGX,OAAOrhW,EAP0U,GAQ9UtD,KAAKwwB,QAAU,GAAI,OAAOxwB,KAAKujW,QAAUljW,EAAEkkW,YAAavkW,KAAKkhW,UAAY7gW,EAAEkkW,YAAavkW,KAAKwoW,YAAcnoW,EAAEkkW,YAAavkW,KAAKyoW,UAAYpoW,EAAEkkW,YAAavkW,KAAK0oW,WAAaroW,EAAEkkW,aAClL1jW,EA/BI,GAiCL2zB,GAAK,SAAUn0B,GACjB,SAASQ,IACP,OAAOA,EAAEukW,UAAUnlW,YAAYU,MAAMX,KAAMS,WAG7C,OAAO0hT,GAAGthT,EAAGk7T,IAAKl7T,EAAEpB,UAAUo3K,IAAM,OAAQh2K,EAAEpB,UAAUqN,MAAQ,SAAUzM,GACxE,IAAIQ,EAAGyC,EAAG9C,EAEV,OAAQH,EAAEkyL,IAAMvyL,KAAKshB,OAAQthB,KAAK2vB,OAAStvB,EAAEskW,UAAW3kW,KAAK+gW,YAAc1gW,EAAEskW,UAAW3kW,KAAK2oW,kBAAoBtoW,EAAEkkW,YAAavkW,KAAKqyH,mBAAqBhyH,EAAEkkW,YAAavkW,KAAK2jW,aAAetjW,EAAEskW,UAAW3kW,KAAK4oW,aAAevoW,EAAEskW,UAAW3kW,KAAK6oW,aAAexoW,EAAEskW,UAAW3kW,KAAK8oW,YAAczoW,EAAEskW,UAAW3kW,KAAK+oW,YAAc1oW,EAAEskW,UAAW3kW,KAAK2vB,QAC/U,KAAK,MACH,MAEF,KAAK,OACH,IAAIpvB,EAEJ,IAAK+C,EAAIjD,EAAEmiV,aAAcxiV,KAAKgpW,eAAiB,GAAIzoW,EAAI,EAAG,GAAK+C,EAAI/C,EAAI+C,EAAI/C,EAAI+C,EAAG/C,EAAI,GAAK+C,IAAM/C,IAAMA,EACrGP,KAAKgpW,eAAe/lW,KAAK5C,EAAEmiV,cAG7B,IAAKxiV,KAAK2iO,MAAQ,GAAIniO,EAAI,GAAIH,EAAEkyL,IAAMvyL,KAAKshB,OAASthB,KAAKU,QACvDG,EAAIR,EAAEyjW,WAAYtjW,EAAEyC,KAAKjD,KAAK2iO,MAAM1/N,KAAK5C,EAAEqiW,WAAW7hW,KAGxD,OAAOL,EAET,KAAK,OACH,OAAO8C,EAAIjD,EAAEmiV,aAAcxiV,KAAK8sH,QAAUzsH,EAAEioL,KAAKhlL,GAEnD,KAAK,OACH,MAEF,KAAK,OACH,OAAOtD,KAAK4H,IAAM,WAChB,IAAI/G,EAAGyC,EAAG9C,EAEV,IAAKA,EAAI,GAAID,EAAIM,EAAI,EAAGyC,EAAItD,KAAK49G,KAAKklP,KAAKmG,UAAW,GAAK3lW,EAAIzC,EAAIyC,EAAIzC,EAAIyC,EAAG/C,EAAI,GAAK+C,IAAMzC,IAAMA,EACjGL,EAAEyC,KAAK5C,EAAE2hV,cAGX,OAAOxhV,GACPb,KAAKK,QAEVa,EA1CI,GA4CLu4O,GAAK,SAAY/4O,EAAGQ,GACtBb,KAAK48M,IAAMv8M,EAAGL,KAAKU,OAASL,EAAEK,OAAQV,KAAK8lW,WAAajlW,EAAEilW,WAAY9lW,KAAK+lW,WAAallW,EAAEklW,WAAY/lW,KAAKkpW,WAAaroW,EAAEqoW,YAExHvmD,GAAK,SAAUtiT,GACjB,SAASQ,IACP,OAAOA,EAAEukW,UAAUnlW,YAAYU,MAAMX,KAAMS,WAG7C,OAAO0hT,GAAGthT,EAAGk7T,IAAKl7T,EAAEpB,UAAUo3K,IAAM,OAAQh2K,EAAEpB,UAAUqN,MAAQ,SAAUzM,GACxE,IAAIQ,EAAGyC,EAAG9C,EAAGD,EAAG6D,EAAGjB,EAAG7C,EAAGiqC,EAAG9+B,EAAG5H,EAAG+oB,EAElC,IAAKvsB,EAAEkyL,IAAMvyL,KAAKshB,OAAQjhB,EAAEkkW,YAAa1jW,EAAIR,EAAEkkW,YAAaphW,EAAI9C,EAAEkkW,YAAajhW,EAAI,GAAI/C,EAAI,EAAG,GAAKM,EAAIN,EAAIM,EAAIN,EAAIM,EAAGN,EAAI,GAAKM,IAAMN,IAAMA,EACzI+C,EAAEL,KAAK,CACL6iW,WAAYzlW,EAAEkkW,YACdwB,WAAY1lW,EAAEkkW,YACd2E,WAAY7oW,EAAEkkW,YACd4E,OAAQ9oW,EAAEkkW,YACV7jW,OAAQL,EAAEkkW,YACVjjV,OAAQthB,KAAKshB,OAASne,EAAI9C,EAAEkkW,cAIhC,IAAKjkW,EAAI,GAAIC,EAAIkL,EAAI,EAAG5H,EAAIP,EAAE5C,OAAQ+K,EAAI5H,EAAGtD,IAAMkL,EACjDjL,EAAI8C,EAAE/C,GAAIF,EAAEkyL,IAAM/xL,EAAE8gB,OAAQipB,EAAIlqC,EAAEqiW,WAAWliW,EAAEE,QAAS0D,EAAI,IAAIg1O,GAAG7uM,EAAG/pC,GAAI,MAAQF,EAAEssB,EAAIpsB,EAAE2oW,UAAY7oW,EAAEssB,GAAK,IAAKtsB,EAAEE,EAAE2oW,QAAQlmW,KAAKmB,GAGrIpE,KAAKo/N,QAAU9+N,EAAGN,KAAKm+P,UAAY79P,EAAE,GAAIN,KAAKopW,WAAa9oW,EAAE,GAAIN,KAAKqpW,cAAgB/oW,EAAE,GAAIN,KAAKspW,gBAAkBhpW,EAAE,GAAIN,KAAK0+T,SAAWp+T,EAAE,GAAIN,KAAKwwB,QAAUlwB,EAAE,GAEhK,IACEN,KAAKupW,eAAiBjpW,EAAE,GAAG,GAAGs8M,IAAIpxM,QAAQ,wBAAyB,IACnE,MAAOnL,GACPL,KAAKupW,eAAiBjpW,EAAE,GAAG,GAAGs8M,IAAIpxM,QAAQ,wBAAyB,IAGrE,OAAOxL,KAAKwpW,UAAYlpW,EAAE,GAAIN,KAAKypW,aAAenpW,EAAE,GAAIN,KAAK0pW,SAAWppW,EAAE,GAAIN,KAAKmhR,YAAc7gR,EAAE,IAAKN,KAAK2pW,UAAYrpW,EAAE,IAAKN,KAAK4pW,YAActpW,EAAE,IAAKN,KAAK6pW,QAAUvpW,EAAE,IAAKN,KAAK8pW,WAAaxpW,EAAE,IAAKN,KAAK+pW,gBAAkBzpW,EAAE,IAAKN,KAAKgqW,mBAAqB1pW,EAAE,IAAKN,KAAKiqW,eAAiB3pW,EAAE,IAAKN,KAAKkqW,WAAa5pW,EAAE,KACxTO,EAhCI,GAkCL2hT,GAAK,SAAUniT,GACjB,SAASQ,IACP,OAAOA,EAAEukW,UAAUnlW,YAAYU,MAAMX,KAAMS,WAG7C,OAAO0hT,GAAGthT,EAAGk7T,IAAKl7T,EAAEpB,UAAUo3K,IAAM,OAAQh2K,EAAEpB,UAAUqN,MAAQ,SAAUzM,GACxE,OAAOA,EAAEkyL,IAAMvyL,KAAKshB,OAAQthB,KAAKwwB,QAAUnwB,EAAEskW,UAAW3kW,KAAKipW,UAAY5oW,EAAEmiV,aAAcxiV,KAAKmqW,UAAY9pW,EAAEmiV,aAAcxiV,KAAKoqW,YAAc/pW,EAAEmiV,aAAcxiV,KAAKqqW,mBAAqBhqW,EAAEmiV,aAAcxiV,KAAKsqW,qBAAuBjqW,EAAEmiV,aAAcxiV,KAAKuqW,SAAWlqW,EAAEmiV,aAAcxiV,KAAKwqW,kBAAoBnqW,EAAEmiV,aAAcxiV,KAAKyqW,WAAapqW,EAAEmiV,aAAcxiV,KAAK0qW,gBAAkBrqW,EAAEmiV,aAAcxiV,KAAK2qW,mBAAqBtqW,EAAEmiV,aAAcxiV,KAAK4qW,iBAAmBvqW,EAAEmiV,aAAcxiV,KAAK6qW,sBAAwBxqW,EAAEmiV,aAAcxiV,KAAK8qW,qBAAuBzqW,EAAEmiV,aAAcxiV,KAAK+qW,kBAAoB1qW,EAAEmiV,cAC1kB3hV,EAPI,GASL6zB,GAAK,SAAUr0B,GACjB,SAASQ,IACP,OAAOA,EAAEukW,UAAUnlW,YAAYU,MAAMX,KAAMS,WAG7C,OAAO0hT,GAAGthT,EAAGk7T,IAAKl7T,EAAEpB,UAAUo3K,IAAM,OAAQh2K,EAAEpB,UAAUqN,MAAQ,SAAUzM,GACxE,IAAIQ,EAAGyC,EAAG9C,EAAGD,EAAG6D,EAAGjB,EAAG7C,EAEtB,IAAKD,EAAEkyL,IAAMvyL,KAAKshB,OAAQthB,KAAKgrW,QAAU,GAAInqW,EAAI,EAAGsC,EAAInD,KAAK49G,KAAKilP,KAAKkE,gBAAiB,GAAK5jW,EAAItC,EAAIsC,EAAItC,EAAIsC,EAAGtC,EAAI,GAAKsC,IAAMtC,IAAMA,EACnIb,KAAKgrW,QAAQ/nW,KAAK,CAChB4gW,QAASxjW,EAAEmiV,aACXyoB,IAAK5qW,EAAE+jW,cAIX,IAAK5jW,EAAIR,KAAK49G,KAAKklP,KAAKmG,UAAYjpW,KAAK49G,KAAKilP,KAAKkE,gBAAiB/mW,KAAKkrW,iBAAmB,WAC1F,IAAI5nW,EAAG/C,EAEP,IAAKA,EAAI,GAAIM,EAAIyC,EAAI,EAAG,GAAK9C,EAAI8C,EAAI9C,EAAI8C,EAAI9C,EAAGK,EAAI,GAAKL,IAAM8C,IAAMA,EACnE/C,EAAE0C,KAAK5C,EAAE+jW,aAGX,OAAO7jW,EAPmF,GAQvFP,KAAKq9V,OAAS,WACjB,IAAIh9V,EAAGQ,EAAGyC,EAAG9C,EAEb,IAAKA,EAAI,GAAIH,EAAI,EAAGQ,GAAKyC,EAAItD,KAAKgrW,SAAStqW,OAAQL,EAAIQ,EAAGR,IACxDE,EAAI+C,EAAEjD,GAAIG,EAAEyC,KAAK1C,EAAEsjW,SAGrB,OAAOrjW,GACPb,KAAKK,MAAOsD,EAAItD,KAAKq9V,OAAOr9V,KAAKq9V,OAAO38V,OAAS,GAAIJ,EAAI,GAAIO,EAAIuD,EAAI,EAAG,GAAK5D,EAAI4D,EAAI5D,EAAI4D,EAAI5D,EAAGK,EAAI,GAAKL,IAAM4D,IAAMA,EACrH9D,EAAE2C,KAAKjD,KAAKq9V,OAAOp6V,KAAKK,IAG1B,OAAOhD,GACNO,EAAEpB,UAAUmkW,SAAW,SAAUvjW,GAClC,OAAOA,KAAKL,KAAKgrW,QAAUhrW,KAAKgrW,QAAQ3qW,GAAK,CAC3CwjW,QAAS7jW,KAAKgrW,QAAQhrW,KAAKgrW,QAAQtqW,OAAS,GAAGmjW,QAC/CoH,IAAKjrW,KAAKkrW,iBAAiB7qW,EAAIL,KAAKgrW,QAAQtqW,UAE7CG,EAzCI,GA2CLyzQ,GAAK,GAAGxwQ,MACR0wQ,GAAK,SAAUn0Q,GACjB,SAASQ,IACP,OAAOA,EAAEukW,UAAUnlW,YAAYU,MAAMX,KAAMS,WAG7C,OAAO0hT,GAAGthT,EAAGk7T,IAAKl7T,EAAEpB,UAAUo3K,IAAM,OAAQh2K,EAAEpB,UAAUqN,MAAQ,WAC9D,OAAO9M,KAAKu/B,MAAQ,IACnB1+B,EAAEpB,UAAU0rW,SAAW,SAAU9qW,GAClC,IAAIQ,EAAGyC,EAAG9C,EAAGD,EAAG6D,EAAGjB,EAAG7C,EAAGiqC,EAAG9+B,EAAG5H,EAC/B,OAAOxD,KAAKL,KAAKu/B,MAAQv/B,KAAKu/B,MAAMl/B,IAAME,EAAIP,KAAK49G,KAAKolP,KAAMniW,EAAIb,KAAK49G,KAAK+3F,SAAUryM,EAAI/C,EAAEO,QAAQT,GAAI,KAAOG,EAAID,EAAE6qW,SAAS/qW,IAAML,KAAKu/B,MAAMl/B,GAAK,MAAQQ,EAAE0xL,IAAMvyL,KAAKshB,OAAShe,EAAGc,GAAKjB,EAAI,IAAIshB,GAAG5jB,EAAEynL,KAAK9nL,KAAK+jW,YAAah6T,EAAIpnC,EAAEohW,YAAa1gW,EAAIV,EAAEohW,YAAajkW,EAAI6C,EAAEohW,YAAa94V,EAAItI,EAAEohW,YAAavkW,KAAKu/B,MAAMl/B,IAAM,IAAM+D,EAAI,IAAIwwQ,GAAGzxQ,EAAGonC,EAAG1mC,EAAGvD,EAAGmL,GAAK,IAAIwf,GAAG9nB,EAAGiB,EAAGmmC,EAAG1mC,EAAGvD,EAAGmL,GAAIzL,KAAKu/B,MAAMl/B,MACjYQ,EAAEpB,UAAU6gL,OAAS,SAAUjgL,EAAGQ,EAAGyC,GACtC,IAAI9C,EAAGD,EAAG6D,EAAGjB,EAAG7C,EAEhB,IAAK8D,EAAI,GAAI7D,EAAI,GAAI4C,EAAI,EAAG7C,EAAIO,EAAEH,OAAQyC,EAAI7C,EAAG6C,IAC/C3C,EAAIH,EAAEQ,EAAEsC,IAAK5C,EAAE0C,KAAKmB,EAAE1D,QAASF,IAAM4D,EAAIA,EAAEL,OAAOvD,EAAE8/K,OAAOh9K,KAG7D,OAAO/C,EAAE0C,KAAKmB,EAAE1D,QAAS,CACvB2sR,MAAOjpR,EACP0oH,QAASvsH,IAEVM,EArBI,GAuBLoqB,GAAK,WACP,SAAS5qB,EAAEA,EAAGQ,EAAGyC,EAAG9C,EAAGD,EAAG6D,GACxBpE,KAAK48M,IAAMv8M,EAAGL,KAAKqrW,iBAAmBxqW,EAAGb,KAAKojW,KAAO9/V,EAAGtD,KAAKoyH,KAAO5xH,EAAGR,KAAKqjW,KAAO9iW,EAAGP,KAAKmyH,KAAO/tH,EAAGpE,KAAKsrW,UAAW,EAGvH,OAAOjrW,EAAEZ,UAAU6gL,OAAS,WAC1B,OAAOtgL,KAAK48M,IAAIn9K,MACfp/B,EAPI,GASLu0Q,GAAK,WACP,SAASv0Q,EAAEA,EAAGQ,EAAGyC,EAAG9C,EAAGD,GACrB,IAAI6D,EAAGjB,EAEP,IAAKnD,KAAK48M,IAAMv8M,EAAGL,KAAKojW,KAAOviW,EAAGb,KAAKoyH,KAAO9uH,EAAGtD,KAAKqjW,KAAO7iW,EAAGR,KAAKmyH,KAAO5xH,EAAGP,KAAKsrW,UAAW,EAAItrW,KAAKurW,SAAW,GAAIvrW,KAAKwrW,aAAe,GAAIpnW,EAAIpE,KAAK48M,IAAKz5M,EAAIiB,EAAEmgW,YAAavkW,KAAKwrW,aAAavoW,KAAKmB,EAAEmuL,KAAMvyL,KAAKurW,SAAStoW,KAAKmB,EAAEo+U,cAAe,GAAKr/U,GACtPiB,EAAEmuL,KAAO,EAAIpvL,EAAI,EAAI,EAAG,IAAMA,EAAIiB,EAAEmuL,KAAO,EAAI,GAAKpvL,EAAIiB,EAAEmuL,KAAO,EAAI,EAAIpvL,IAAMiB,EAAEmuL,KAAO,GAI5F,OAA0BlyL,EAAEZ,UAAU6gL,OAAS,WAC7C,IAAIjgL,EAAGQ,EAAGyC,EAEV,IAAKzC,EAAI,IAAI4jB,GAAG6vP,GAAG30Q,KAAKK,KAAK48M,IAAIn9K,OAAQp/B,EAAI,EAAGiD,EAAItD,KAAKurW,SAAS7qW,OAAQL,EAAIiD,IAAKjD,EACjFQ,EAAE0xL,IAAMvyL,KAAKwrW,aAAanrW,GAG5B,OAAOQ,EAAE4+B,MACRp/B,EAjBI,GAmBLmrB,GAAK,SAAUnrB,GACjB,SAASQ,IACP,OAAOA,EAAEukW,UAAUnlW,YAAYU,MAAMX,KAAMS,WAG7C,OAAO0hT,GAAGthT,EAAGk7T,IAAKl7T,EAAEpB,UAAUo3K,IAAM,OAAQh2K,EAAEpB,UAAUqN,MAAQ,SAAUzM,GACxE,IAAIQ,EAAGyC,EACP,OAAOjD,EAAEkyL,IAAMvyL,KAAKshB,OAAQzgB,EAAIb,KAAK49G,KAAK4pH,KAAKo+H,iBAAkB5lW,KAAK8sH,QAAU,IAAMjsH,EAAI,WACxF,IAAIA,EAAGL,EAEP,IAAKA,EAAI,GAAI8C,EAAI,EAAGzC,EAAIb,KAAKU,OAAQ4C,EAAIzC,EAAGyC,GAAK,EAC/C9C,EAAEyC,KAAK,EAAI5C,EAAEmiV,cAGf,OAAOhiV,GACPb,KAAKK,MAAQ,WACb,IAAIa,EAAGL,EAEP,IAAKA,EAAI,GAAI8C,EAAI,EAAGzC,EAAIb,KAAKU,OAAQ4C,EAAIzC,EAAGyC,GAAK,EAC/C9C,EAAEyC,KAAK5C,EAAE2hV,cAGX,OAAOxhV,GACPb,KAAKK,OACNa,EAAEpB,UAAUqB,QAAU,SAAUT,GACjC,OAAOL,KAAK8sH,QAAQzsH,IACnBQ,EAAEpB,UAAU2rW,SAAW,SAAU/qW,GAClC,OAAOL,KAAK8sH,QAAQzsH,EAAI,GAAKL,KAAK8sH,QAAQzsH,IACzCQ,EAAEpB,UAAU6gL,OAAS,SAAUjgL,EAAGQ,GACnC,IAAK,IAAIyC,EAAI,IAAIkwC,YAAYxzC,KAAK8sH,QAAQpsH,QAASF,EAAI,EAAGD,EAAI,EAAG6D,EAAI,EAAGA,EAAId,EAAE5C,SAAU0D,EACtF,GAAId,EAAEc,GAAK5D,EAAGD,EAAIM,EAAEH,QAAUG,EAAEN,IAAM6D,EAAG,GACrC7D,EAAG+C,EAAEc,GAAK5D,EACZ,IAAI2C,EAAInD,KAAK8sH,QAAQ1oH,GACjB9D,EAAIN,KAAK8sH,QAAQ1oH,EAAI,GAAKjB,EAC9B7C,EAAI,IAAME,GAAKF,GAInB,IAAK,IAAIiqC,EAAI,IAAIhrC,MAAM,EAAI+D,EAAE5C,QAAS+K,EAAI,EAAGA,EAAInI,EAAE5C,SAAU+K,EAC3D8+B,EAAE,EAAI9+B,EAAI,GAAK,IAAMnI,EAAEmI,GAAI8+B,EAAE,EAAI9+B,EAAI,IAAM,MAAQnI,EAAEmI,KAAO,EAAG8+B,EAAE,EAAI9+B,EAAI,IAAM,SAAWnI,EAAEmI,KAAO,GAAI8+B,EAAE,EAAI9+B,IAAM,WAAanI,EAAEmI,KAAO,GAG3I,OAAO8+B,GACN1pC,EA3CI,GA6CLk0Q,GAAK,WACP,SAAS10Q,EAAEA,GACTL,KAAKgwG,KAAO3vG,EAAGL,KAAK4gW,OAAS,GAAI5gW,KAAKyrW,SAAW,GAAIzrW,KAAK4B,KAAO,GAGnE,OAAOvB,EAAEZ,UAAUisW,aAAe,WAChC,IAAIrrW,EAAGQ,EAAGyC,EAAG9C,EAAGD,EAEhB,IAAKM,KAAKL,EAAIR,KAAKgwG,KAAKsxP,KAAK4D,OAAO,GAAG3D,QAASlhW,EAAI,GAAIE,EAAIP,KAAK4gW,OAC/Dt9V,EAAI/C,EAAEM,GAAIR,EAAEQ,GAAKL,EAAE8C,GAGrB,OAAOjD,GACNA,EAAEZ,UAAUksW,UAAY,SAAUtrW,GACnC,IAAIQ,EAAGyC,EAAG9C,EAAGD,EAAG6D,EAAGjB,EAAG7C,EAEtB,IAAKE,EAAI,GAAI4D,EAAI,EAAGjB,EAAI9C,EAAEK,OAAQ0D,EAAIjB,EAAGiB,IACvC5D,EAAED,EAAIF,EAAE+D,IAAMpE,KAAKgwG,KAAKizP,KAAKkI,SAAS5qW,GAGxC,IAAKA,KAAKM,EAAI,GAAIL,GACf,OAAS8C,EAAI9C,EAAED,IAAM+C,EAAEgoW,cAAW,IAAWzqW,EAAEoC,KAAKtC,MAAME,EAAGyC,EAAEioW,UAGlE,GAAI1qW,EAAEH,OAAS,EAAG,IAAKH,KAAKD,EAAIN,KAAK2rW,UAAU9qW,GAC7CyC,EAAIhD,EAAEC,GAAIC,EAAED,GAAK+C,EAEnB,OAAO9C,GACNH,EAAEZ,UAAU6gL,OAAS,SAAUjgL,EAAGQ,GACnC,IAAIyC,EAAG9C,EAAGD,EAAG6D,EAAGjB,EAAG7C,EAAGiqC,EAAG9+B,EAAG5H,EAAG+oB,EAAGzqB,EAAGjD,EAAGM,EAAG6C,EAAGe,EAE9C,IAAK5C,KAAK8C,EAAI8+S,GAAG9hI,OAAOtgL,KAAK0rW,eAAgB,WAAYtnW,EAAIpE,KAAK2rW,UAAUtrW,GAAI8B,EAAI,CAClFwzE,EAAG,GACFvyE,EAAIE,EAAE8iW,QACPjkW,GAAG7B,EAAI8C,EAAE5C,IAAI0lW,KAAO5lW,EAAE6lW,IAGxB,IAAKjnW,KAAK0tB,EAAItpB,EAAEgjW,WAAYliW,EAC1BlF,KAAKiD,IAAMA,EAAEjD,GAAK0tB,KAGpB,OAAOnhB,EAAI,SAAUpL,GACnB,IAAIQ,EAAGyC,EAEP,IAAKzC,KAAKyC,EAAI,GAAIjD,EAChBiD,EAAEjD,EAAEQ,IAAMA,EAGZ,OAAOyC,EAPE,CAQTnB,GAAI0B,EAAIzE,OAAO2F,KAAK0G,GAAGjE,MAAK,SAAUnH,EAAGQ,GACzC,OAAOR,EAAIQ,KACTrB,EAAI,WACN,IAAIa,EAAGQ,EAAGyC,EAEV,IAAKA,EAAI,GAAIjD,EAAI,EAAGQ,EAAIgD,EAAEnD,OAAQL,EAAIQ,EAAGR,IACvC8C,EAAIU,EAAExD,GAAIiD,EAAEL,KAAKwI,EAAEtI,IAGrB,OAAOG,EAPD,GAQH/C,EAAIP,KAAKgwG,KAAKizP,KAAK3iL,OAAOl8K,EAAG5E,EAAG2C,GAAIooC,EAAIvqC,KAAKgwG,KAAKgzP,KAAK1iL,OAAO//K,EAAEusH,QAASttH,GAAI6C,EAAI,CACpFi/V,KAAMthW,KAAKgwG,KAAKsxP,KAAK1kJ,MACrBqmJ,KAAM1iW,EAAE8sR,MACR21E,KAAMz4T,EACN62T,KAAMphW,KAAKgwG,KAAKoxP,KAAKxkJ,MACrBimJ,KAAM7iW,KAAKgwG,KAAK6yP,KAAKjmJ,MACrBkmJ,KAAM9iW,KAAKgwG,KAAK8yP,KAAKlmJ,MACrBkiC,KAAM9+O,KAAKgwG,KAAK8uI,KAAKliC,MACrBz1M,KAAMnH,KAAKgwG,KAAK7oG,KAAKy1M,MACrB4qB,KAAMxnO,KAAKgwG,KAAKw3H,KAAKlnD,OAAOz/K,IAC3Bb,KAAKgwG,KAAK+yP,IAAIG,SAAW7gW,EAAE,QAAUrC,KAAKgwG,KAAK+yP,IAAInmJ,OAAQ58M,KAAKgwG,KAAK4yP,UAAUtiL,OAAOj+K,IACxFhC,EAtEI,GAyETgqJ,EAAEuyK,IAAIikC,UAAY,WAChB,IAAIxgW,EAEJ,SAASQ,KAET,OAAOR,EAAI,SAAWurW,EAAK/qW,GACzB,OAAQtB,MAAMsB,EAAI,GAAG6oD,KAAK,KAAOkiT,GAAK9nW,OAAOjD,IAC5CA,EAAEohF,QAAU,SAAU3+E,GACvB,IAAI9C,EAAGD,EAAG6D,EAAGjB,EACb,GAAI5D,MAAMwM,QAAQzI,GAAI,MAAO,IAAM,WACjC,IAAIjD,EAAGE,EAAG6D,EAEV,IAAKA,EAAI,GAAI/D,EAAI,EAAGE,EAAI+C,EAAE5C,OAAQL,EAAIE,EAAGF,IACvCG,EAAI8C,EAAEjD,GAAI+D,EAAEnB,KAAKpC,EAAEohF,QAAQzhF,IAG7B,OAAO4D,EAP0B,GAQ/BslD,KAAK,KAAO,IAChB,GAAI,iBAAmBpmD,EAAG,MAAO,IAAMA,EACvC,GAAI,MAAQA,EAAIA,EAAE+zK,cAAW,EAAQ,MAAO,IAAM/zK,EAAI,IACtD,GAAIA,aAAayxH,KAAM,MAAO,MAAQ10H,EAAEiD,EAAEoK,iBAAkB,GAAKrN,EAAEiD,EAAEsK,cAAe,GAAKvN,EAAEiD,EAAE0K,aAAc,GAAK3N,EAAEiD,EAAE4K,cAAe,GAAK7N,EAAEiD,EAAE8K,gBAAiB,GAAK/N,EAAEiD,EAAEgL,gBAAiB,GAAK,KAE5L,GAAI,oBAAsB,GAAG3C,SAAShM,KAAK2D,GAAI,CAC7C,IAAK/C,KAAK6D,EAAI,CAAC,MAAOd,EACpBH,EAAIG,EAAE/C,GAAI6D,EAAEnB,KAAK,IAAM1C,EAAI,IAAMM,EAAEohF,QAAQ9+E,IAG7C,OAAOiB,EAAEnB,KAAK,MAAOmB,EAAEslD,KAAK,MAG9B,MAAO,GAAKpmD,GACXzC,EA/Ba,K,kCCn8a0C6D,EAAOC,QAE1D,SAAU9D,GACf,IAAIR,EAAI,GAER,SAASiD,EAAE9C,GACT,GAAIH,EAAEG,GAAI,OAAOH,EAAEG,GAAGmE,QACtB,IAAIpE,EAAIF,EAAEG,GAAK,CACbD,EAAGC,EACHqD,GAAG,EACHc,QAAS,IAEX,OAAO9D,EAAEL,GAAGb,KAAKY,EAAEoE,QAASpE,EAAGA,EAAEoE,QAASrB,GAAI/C,EAAEsD,GAAI,EAAItD,EAAEoE,QAG5D,OAAOrB,EAAEF,EAAIvC,EAAGyC,EAAEmI,EAAIpL,EAAGiD,EAAEpE,EAAI,SAAU2B,EAAGR,EAAGG,GAC7C8C,EAAEH,EAAEtC,EAAGR,IAAMjB,OAAOwG,eAAe/E,EAAGR,EAAG,CACvC+E,YAAY,EACZ4J,IAAKxO,KAEN8C,EAAEA,EAAI,SAAUzC,GACjB,oBAAsB+B,QAAUA,OAAOqkN,aAAe7nN,OAAOwG,eAAe/E,EAAG+B,OAAOqkN,YAAa,CACjGvlN,MAAO,WACLtC,OAAOwG,eAAe/E,EAAG,aAAc,CACzCa,OAAO,KAER4B,EAAEjD,EAAI,SAAUQ,EAAGR,GACpB,GAAI,EAAIA,IAAMQ,EAAIyC,EAAEzC,IAAK,EAAIR,EAAG,OAAOQ,EACvC,GAAI,EAAIR,GAAK,iBAAmBQ,GAAKA,GAAKA,EAAE0/I,WAAY,OAAO1/I,EAC/D,IAAIL,EAAIpB,OAAOc,OAAO,MACtB,GAAIoD,EAAEA,EAAE9C,GAAIpB,OAAOwG,eAAepF,EAAG,UAAW,CAC9C4E,YAAY,EACZ1D,MAAOb,IACL,EAAIR,GAAK,iBAAmBQ,EAAG,IAAK,IAAIN,KAAKM,EAC/CyC,EAAEpE,EAAEsB,EAAGD,EAAG,SAAUF,GAClB,OAAOQ,EAAER,IACTiM,KAAK,KAAM/L,IAEf,OAAOC,GACN8C,EAAE9C,EAAI,SAAUK,GACjB,IAAIR,EAAIQ,GAAKA,EAAE0/I,WAAa,WAC1B,OAAO1/I,EAAEo+I,SACP,WACF,OAAOp+I,GAET,OAAOyC,EAAEpE,EAAEmB,EAAG,IAAKA,GAAIA,GACtBiD,EAAEH,EAAI,SAAUtC,EAAGR,GACpB,OAAOjB,OAAOK,UAAUC,eAAeC,KAAKkB,EAAGR,IAC9CiD,EAAE9D,EAAI,GAAI8D,EAAEA,EAAEhD,EAAI,IA9ChB,CA+CL,CACAurW,GAAI,SAAWhrW,EAAGR,EAAGiD,GACnB,aAEAjD,EAAEkgJ,YAAa,EAAIlgJ,EAAE4+I,aAAU,EAE/B,IAAIz+I,EAAI8C,EAAE,IACN/C,EAAI,WACN,SAASM,KAET,OAAOA,EAAEirW,cAAgB,SAAUjrW,EAAGR,GACpC,IAAIiD,EAAIjD,EAAE4O,MAAMpO,GAChB,OAAOyC,GAAKA,EAAE5C,OAAS,GAAK4C,EAAE,IAAM,IACnCzC,EAAEkrW,eAAiB,SAAUlrW,EAAGR,GACjC,IAAIiD,EAAIjD,EAAE4O,MAAMpO,GAChB,OAAOyC,GAAKA,EAAE5C,OAAS,GAAK4C,EAAE,IAAM,IACnCzC,EAAEmrW,oBAAsB,SAAUnrW,EAAGR,EAAGiD,GACzC,GAAIzC,EAAE24B,KAAKn5B,GAAI,OAAOiD,GACrBzC,EAAEorW,sBAAwB,SAAUprW,GACrC,OAAQA,GACN,IAAK,KACH,MAAO,KAET,IAAK,KACH,MAAO,KAET,IAAK,SACH,MAAO,OAET,IAAK,SACH,MAAO,KAET,IAAK,SACH,MAAO,OAET,IAAK,SACH,MAAO,QAET,IAAK,SACH,MAAO,IAET,IAAK,SACH,MAAO,IAET,IAAK,SACH,MAAO,MAET,IAAK,UACH,MAAO,KAET,QACE,SAEHA,EAAEqrW,oBAAsB,SAAUrrW,GACnC,IAAIR,EAAIQ,EAAE4mE,MAAM,KAAKl/D,OAAO,EAAG,GAAGX,KAAI,SAAU/G,GAC9C,OAAOssC,SAAStsC,EAAG,KAAO,KAE5B,GAAIR,EAAE4C,KAAK,GAAI,KAAO5C,EAAE,GAAI,OAAQA,EAAE,IACpC,KAAK,EACH,MAAO,UAET,KAAK,EACH,MAAO,eAET,KAAK,EACH,MAAO,OAET,KAAK,EACH,MAAO,gBAET,KAAK,EACH,MAAO,YAET,KAAK,GACH,MAAO,WAET,KAAK,GACH,MAAO,aAET,KAAK,GACH,MAAO,SAET,KAAK,GACH,MAAO,cAET,KAAK,GACH,MAAO,SAET,KAAK,GACH,MAAO,WAET,QACE,SAEHQ,EAAEsrW,sBAAwB,SAAUtrW,GACrC,IAAIR,EAAIQ,EAAE4mE,MAAM,KAAKl/D,OAAO,EAAG,GAAGX,KAAI,SAAU/G,GAC9C,OAAOssC,SAAStsC,EAAG,KAAO,KAE5B,GAAIR,EAAE4C,KAAK,KAAM,IAAM5C,EAAE,IAAMA,EAAE,GAAK,GAAI,OAAO,IAAMA,EAAE,IAAMA,EAAE,GAAK,EAAI,UAAY,IAAMA,EAAE,IAAMA,EAAE,IAAM,EAAI,QAAU,IAAMA,EAAE,IAAMA,EAAE,GAAK,EAAI,SAAW,IAAMA,EAAE,IAAM,IAAMA,EAAE,GAAK,QAAU,IAAMA,EAAE,IAAMA,EAAE,GAAK,EAAI,cAAgB,IAAMA,EAAE,GAAK,YAAc,IAAMA,EAAE,IAAMA,EAAE,GAAK,EAAI,qBAAuB,IAAMA,EAAE,IAAMA,EAAE,GAAK,EAAI,aAAe,IAAMA,EAAE,IAAMA,EAAE,IAAM,EAAI,SAAW,IAAMA,EAAE,GAAK,WAAa,IAAMA,EAAE,GAAK,cAAgB,IAAMA,EAAE,GAAK,SAAW,IAAMA,EAAE,GAAK,OAAS,IAAMA,EAAE,GAAK,WAAQ,GAC7fQ,EAAEurW,oBAAsB,SAAUvrW,GACnC,OAAOA,EAAE4mE,MAAM,KAAK/mE,QACnBG,EAAEwrW,gBAAkB,SAAUhsW,EAAGiD,EAAG9C,QACrC,IAAWA,IAAMA,GAAI,GACrB,IAAID,EAAIM,EAAEurW,oBAAoB/rW,GAC1BC,EAAIO,EAAEurW,oBAAoB9oW,GAC1Bc,EAAIqK,KAAK0N,IAAI5b,EAAGD,GAChB6C,EAAI,EACJonC,EAAI1pC,EAAE+G,IAAI,CAACvH,EAAGiD,IAAI,SAAUjD,GAC9B,IAAIiD,EAAIc,EAAIvD,EAAEurW,oBAAoB/rW,GAC9BG,EAAIH,EAAI,IAAId,MAAM+D,EAAI,GAAGomD,KAAK,MAClC,OAAO7oD,EAAE+G,IAAIpH,EAAEinE,MAAM,MAAM,SAAU5mE,GACnC,OAAO,IAAItB,MAAM,GAAKsB,EAAEH,QAAQgpD,KAAK,KAAO7oD,KAC3C+F,aAGL,IAAKpG,IAAM2C,EAAIiB,EAAIqK,KAAKyN,IAAI3b,EAAGD,IAAK8D,GAAK,EAAGA,GAAKjB,GAAI,CACnD,GAAIonC,EAAE,GAAGnmC,GAAKmmC,EAAE,GAAGnmC,GAAI,OAAO,EAE9B,GAAImmC,EAAE,GAAGnmC,KAAOmmC,EAAE,GAAGnmC,GAAI,CACvB,GAAIA,IAAMjB,EAAG,OAAO,EACpBiB,GAAK,OACA,GAAImmC,EAAE,GAAGnmC,GAAKmmC,EAAE,GAAGnmC,GAAI,OAAQ,IAEvCvD,EAAE+G,IAAM,SAAU/G,EAAGR,GACtB,IAAIiD,EACA9C,EAAI,GACR,GAAIjB,MAAME,UAAUmI,IAAK,OAAOrI,MAAME,UAAUmI,IAAIjI,KAAKkB,EAAGR,GAE5D,IAAKiD,EAAI,EAAGA,EAAIzC,EAAEH,OAAQ4C,GAAK,EAC7B9C,EAAEyC,KAAK5C,EAAEQ,EAAEyC,KAGb,OAAO9C,GACNK,EAAEs9J,KAAO,SAAUt9J,EAAGR,GACvB,IAAIiD,EAAG9C,EACP,GAAIjB,MAAME,UAAU0+J,KAAM,OAAO5+J,MAAME,UAAU0+J,KAAKx+J,KAAKkB,EAAGR,GAE9D,IAAKiD,EAAI,EAAG9C,EAAIK,EAAEH,OAAQ4C,EAAI9C,EAAG8C,GAAK,EAAG,CACvC,IAAI/C,EAAIM,EAAEyC,GACV,GAAIjD,EAAEE,EAAG+C,GAAI,OAAO/C,IAErBM,EAAET,OAAS,SAAUS,GACtB,IAAK,IAAIR,EAAGiD,EAAG9C,EAAIK,EAAGN,EAAIE,UAAUC,OAAQJ,EAAI,IAAIf,MAAMgB,EAAI,EAAIA,EAAI,EAAI,GAAI6D,EAAI,EAAGA,EAAI7D,EAAG6D,IAC1F9D,EAAE8D,EAAI,GAAK3D,UAAU2D,GAGvB,GAAIhF,OAAOgB,OAAQ,OAAOhB,OAAOgB,OAAOO,MAAMvB,OAAQ,CAACyB,GAAGkD,OAAOzD,IAEjE,IAAI6C,EAAI,WACN,IAAItC,EAAIP,EAAED,GACV,iBAAmBQ,GAAK,OAASA,GAAKzB,OAAO2F,KAAKlE,GAAG2E,SAAQ,SAAUnF,GACrEG,EAAEH,GAAKQ,EAAER,OAIb,IAAKA,EAAI,EAAGiD,EAAIhD,EAAEI,OAAQL,EAAIiD,EAAGjD,GAAK,EACpC8C,IAGF,OAAOtC,GACNA,EAAEyrW,gBAAkB,SAAUzrW,GAC/B,OAAOL,EAAE+rW,oBAAoB1rW,IAC5BA,EAAE2rW,sBAAwB,SAAU3rW,GACrC,OAAOL,EAAEisW,YAAY5rW,IAAM,IAC1BA,EA7JG,GAgKRR,EAAE4+I,QAAU1+I,EAAGM,EAAE8D,QAAUtE,EAAE4+I,SAE/BytN,GAAI,SAAW7rW,EAAGR,EAAGiD,GACnB,aAEAjD,EAAEkgJ,YAAa,EAAIlgJ,EAAEssW,WAAatsW,EAAEusW,OAASvsW,EAAEwsW,cAAgBxsW,EAAEosW,YAAcpsW,EAAEksW,yBAAsB,EACvGlsW,EAAEksW,oBAAsB,CACtB,cAAe,cACf,kBAAmB,UACnBO,KAAM,OACNC,WAAY,aACZC,OAAQ,SACRC,SAAU,WACVC,SAAU,WACVC,SAAU,WACVC,QAAS,UACTC,MAAO,QACPC,QAAS,UACT,gBAAiB,gBACjBC,UAAW,YACX,oBAAqB,KACrB,WAAY,WACZC,QAAS,UACT,iBAAkB,OAClB,aAAc,KACd,sBAAuB,QACvBC,MAAO,QACP,cAAe,cACfC,UAAW,YACXC,OAAQ,SACRC,SAAU,WACVC,GAAI,KACJC,OAAQ,SACRC,OAAQ,SACRC,SAAU,WACV,+BAAgC,mBAChCC,UAAW,YACXC,SAAU,WACVC,MAAO,QACPC,MAAO,QACP,aAAc,KACdC,QAAS,UACT,gBAAiB,QACjBC,OAAQ,SACR,iBAAkB,SAClBC,KAAM,QAERluW,EAAEosW,YAAc,CACd+B,YAAa,cACbC,QAAS,kBACTC,KAAM,OACNC,WAAY,aACZC,OAAQ,SACRC,SAAU,WACVC,SAAU,WACVC,SAAU,WACVC,QAAS,UACTpoT,MAAO,QACPqoT,QAAS,UACTC,UAAW,YACXC,cAAe,gBACf9sD,GAAI,oBACJ+sD,SAAU,WACVC,QAAS,UACT7uQ,KAAM,iBACN8uQ,GAAI,aACJC,MAAO,sBACPhmN,MAAO,QACPimN,YAAa,cACbC,UAAW,YACXC,OAAQ,SACRC,SAAU,WACVC,GAAI,aACJC,OAAQ,kBACRjnD,OAAQ,SACRknD,SAAU,WACVC,iBAAkB,+BAClBC,UAAW,YACXC,SAAU,WACVC,MAAO,QACPC,MAAO,QACP9gB,GAAI,aACJ+gB,QAAS,UACTC,MAAO,gBACPC,OAAQ,SACRC,OAAQ,kBAEVlwW,EAAEwsW,cAAgB,CAChB2D,OAAQ,SACRC,OAAQ,SACRC,QAAS,UACTC,GAAI,MAENtwW,EAAEusW,OAAS,CACTgE,aAAc,gBACdC,QAAS,UACTC,MAAO,QACPC,IAAK,MACLC,QAAS,UACTC,MAAO,QACPlE,WAAY,aACZD,KAAM,OACNsB,MAAO,QACP8C,MAAO,QACPC,SAAU,YACVC,aAAc,gBACd7C,KAAM,QAERluW,EAAEssW,WAAa,CACb0E,SAAU,WACVC,MAAO,QACPC,QAAS,UACTC,OAAQ,SACRC,MAAO,QACPC,OAAQ,WAGZC,GAAI,SAAW9wW,EAAGR,EAAGiD,GACnB,aAEAjD,EAAEkgJ,YAAa,EAAIlgJ,EAAE4+I,aAAU,EAC/B,IAAIz+I,EACAD,GAAKC,EAAI8C,EAAE,MAAQ9C,EAAE+/I,WAAa//I,EAAI,CACxCy+I,QAASz+I,GAEPF,EAAIgD,EAAE,IAEV,SAASc,EAAEvD,EAAGR,GACZ,IAAK,IAAIiD,EAAI,EAAGA,EAAIjD,EAAEK,OAAQ4C,IAAK,CACjC,IAAI9C,EAAIH,EAAEiD,GACV9C,EAAE4E,WAAa5E,EAAE4E,aAAc,EAAI5E,EAAEiM,cAAe,EAAI,UAAWjM,IAAMA,EAAEgM,UAAW,GAAKpN,OAAOwG,eAAe/E,EAAGL,EAAEiF,IAAKjF,IAI/H,IAAI2C,EAAI,WACN,SAAStC,KAET,IAAIR,EAAMG,EACV,OAAOK,EAAE+wW,UAAY,SAAU/wW,EAAGR,GAChC,QAAI,IAAWA,IAAMA,GAAI,GAAK,iBAAmBQ,EAAG,MAAM,IAAIyG,MAAM,gCACpE,OAAO,IAAI/G,EAAE0+I,QAAQp+I,EAAGR,IACvBQ,EAAEiM,MAAQ,SAAUjM,GACrB,OAAO,IAAIN,EAAE0+I,QAAQp+I,GAAGgxW,aACvBxxW,EAAIQ,GAAGL,EAAI,CAAC,CACbiF,IAAK,cACLuJ,IAAK,WACH,OAAO1O,EAAEmsW,cAEV,CACDhnW,IAAK,aACLuJ,IAAK,WACH,OAAO1O,EAAEqsW,aAEV,CACDlnW,IAAK,SACLuJ,IAAK,WACH,OAAO1O,EAAEssW,SAEV,CACDnnW,IAAK,gBACLuJ,IAAK,WACH,OAAO1O,EAAEusW,mBAE6BzoW,EAAE/D,EAAGG,GAAIK,EA7B7C,GAgCRR,EAAE4+I,QAAU97I,EAAGtC,EAAE8D,QAAUtE,EAAE4+I,SAE/B6yN,GAAI,SAAWjxW,EAAGR,EAAGiD,GACnB,aAEAjD,EAAEkgJ,YAAa,EAAIlgJ,EAAE4+I,aAAU,EAC/B,IAAIz+I,EAAI+pC,EAAEjnC,EAAE,KACR/C,EAAIgqC,EAAEjnC,EAAE,KACRhD,EAAIiqC,EAAEjnC,EAAE,KACRc,EAAImmC,EAAEjnC,EAAE,KACRH,EAAIonC,EAAEjnC,EAAE,KAEZ,SAASinC,EAAE1pC,GACT,OAAOA,GAAKA,EAAE0/I,WAAa1/I,EAAI,CAC7Bo+I,QAASp+I,GAIb,IAAI3B,EAAI,WACN,SAAS2B,EAAEA,EAAGR,GACZ,QAAI,IAAWA,IAAMA,GAAI,GAAK,MAAQQ,GAAK,KAAOA,EAAG,MAAM,IAAIyG,MAAM,sCACrEtH,KAAK+xW,IAAMlxW,EAAGb,KAAKgyW,aAAe,IAAI,IAAO3xW,GAAKL,KAAK8M,QAGzD,IAAIzM,EAAIQ,EAAEpB,UACV,OAAOY,EAAE4xW,MAAQ,WACf,OAAOjyW,KAAK+xW,KACX1xW,EAAEm5B,KAAO,SAAU34B,GACpB,OAAOA,EAAE24B,KAAKx5B,KAAK+xW,MAClB1xW,EAAE6xW,aAAe,WAClB,IAAIrxW,EAAIb,KACRA,KAAKgyW,aAAa92I,QAAU,GAC5B,IAAI76N,EAAI8C,EAAE87I,QAAQkf,KAAK39J,EAAEy+I,SAAS,SAAU5+I,GAC1C,GAAI,mBAAqBA,EAAEm5B,KAAM,OAAOn5B,EAAEm5B,KAAK34B,GAC/C,GAAIR,EAAEm5B,gBAAgBj6B,MAAO,OAAOc,EAAEm5B,KAAKykI,MAAK,SAAU59J,GACxD,OAAOQ,EAAE24B,KAAKn5B,MAEhB,MAAM,IAAIiH,MAAM,2CAElB,OAAOjH,IAAML,KAAKgyW,aAAa92I,QAAU76N,EAAE6pN,SAASlqN,KAAKiyW,UAAWjyW,KAAKgyW,aAAa92I,SACrF76N,EAAE8xW,WAAa,WAChB,OAAOnyW,KAAKgyW,aAAa92I,QAAUl7N,KAAKgyW,aAAa92I,QAAUl7N,KAAKkyW,gBACnE7xW,EAAE+xW,eAAiB,SAAUvxW,GAC9B,OAAOA,EAAIf,OAAOE,KAAKmyW,aAAahrW,MAAMywG,eAAiB,GAAK53G,KAAKmyW,aAAahrW,MAAQ,IACzF9G,EAAEgyW,kBAAoB,WACvB,OAAOryW,KAAKmyW,aAAa3hV,SACxBnwB,EAAEiyW,MAAQ,WACX,OAAOtyW,KAAKgyW,aAAa37G,GAAKr2P,KAAKgyW,aAAa37G,GAAKr2P,KAAKuyW,WACzDlyW,EAAEkyW,QAAU,WACb,IAAI1xW,EAAIb,KACRA,KAAKgyW,aAAa37G,GAAK,GACvB,IAAIh2P,EAAI8C,EAAE87I,QAAQkf,KAAK59J,EAAE0+I,SAAS,SAAU5+I,GAC1C,GAAI,mBAAqBA,EAAEm5B,KAAM,OAAOn5B,EAAEm5B,KAAK34B,GAC/C,GAAIR,EAAEm5B,gBAAgBj6B,MAAO,OAAOc,EAAEm5B,KAAKykI,MAAK,SAAU59J,GACxD,OAAOQ,EAAE24B,KAAKn5B,MAEhB,MAAM,IAAIiH,MAAM,2CAElB,OAAOjH,IAAML,KAAKgyW,aAAa37G,GAAKh2P,EAAE6pN,SAASlqN,KAAKiyW,UAAWjyW,KAAKgyW,aAAa37G,IAChFh2P,EAAEmyW,UAAY,SAAU3xW,GACzB,IAAIR,EAAIL,KAAKsyW,QAAQnrW,KACrB,OAAOtG,EAAIf,OAAOO,GAAGu3G,eAAiB,GAAKv3G,GAAK,IAC/CA,EAAEoyW,aAAe,WAClB,OAAOzyW,KAAKsyW,QAAQ9hV,SACnBnwB,EAAEqyW,YAAc,WACjB,OAAO1yW,KAAKgyW,aAAaW,SAAW3yW,KAAKgyW,aAAaW,SAAW3yW,KAAK4yW,iBACrEvyW,EAAEwyW,gBAAkB,SAAUhyW,QAC/B,IAAWA,IAAMA,GAAI,GACrB,IAAIR,EAAIL,KAAK0yW,cAAc93V,KAC3B,OAAO/Z,EAAIf,OAAOO,GAAGu3G,eAAiB,GAAKv3G,GAAK,IAC/CA,EAAEuyW,cAAgB,WACnB,IAAI/xW,EAAIb,KACRA,KAAKgyW,aAAaW,SAAW,GAC7B,IAAItyW,EAAI8C,EAAE87I,QAAQkf,KAAK79J,EAAE2+I,SAAS,SAAU5+I,GAC1C,GAAI,mBAAqBA,EAAEm5B,KAAM,OAAOn5B,EAAEm5B,KAAK34B,GAC/C,GAAIR,EAAEm5B,gBAAgBj6B,MAAO,OAAOc,EAAEm5B,KAAKykI,MAAK,SAAU59J,GACxD,OAAOQ,EAAE24B,KAAKn5B,MAEhB,MAAM,IAAIiH,MAAM,2CAElB,OAAOjH,IAAML,KAAKgyW,aAAaW,SAAWtyW,EAAE6pN,SAASlqN,KAAKiyW,UAAWjyW,KAAKgyW,aAAaW,UACtFtyW,EAAEyyW,UAAY,WACf,OAAO9yW,KAAKgyW,aAAae,OAAS/yW,KAAKgyW,aAAae,OAAS/yW,KAAKgzW,eACjE3yW,EAAE4yW,cAAgB,SAAUpyW,GAC7B,OAAOA,EAAIf,OAAOE,KAAK8yW,YAAY3rW,MAAMywG,eAAiB,GAAK53G,KAAK8yW,YAAY3rW,MAAQ,IACvF9G,EAAE2yW,YAAc,WACjB,IAAInyW,EAAIb,KACRA,KAAKgyW,aAAae,OAAS,GAC3B,IAAI1yW,EAAI8C,EAAE87I,QAAQkf,KAAK/5J,EAAE66I,SAAS,SAAU5+I,GAC1C,GAAI,mBAAqBA,EAAEm5B,KAAM,OAAOn5B,EAAEm5B,KAAK34B,GAC/C,GAAIR,EAAEm5B,gBAAgBj6B,MAAO,OAAOc,EAAEm5B,KAAKykI,MAAK,SAAU59J,GACxD,OAAOQ,EAAE24B,KAAKn5B,MAEhB,MAAM,IAAIiH,MAAM,2CAElB,OAAOjH,IAAML,KAAKgyW,aAAae,OAAS1yW,EAAE6pN,SAASlqN,KAAKiyW,UAAWjyW,KAAKgyW,aAAae,QACpF1yW,EAAEyM,MAAQ,WACX,OAAO9M,KAAKkyW,eAAgBlyW,KAAKuyW,UAAWvyW,KAAK4yW,gBAAiB5yW,KAAKgzW,cAAehzW,MACrFK,EAAEwxW,UAAY,WACf,OAAO1uW,EAAE87I,QAAQ7+I,OAAO,GAAIJ,KAAKgyW,eAChC3xW,EAAE6yW,UAAY,SAAUryW,GACzB,IAAIR,EAAIL,KACJsD,EAAI,GACJ9C,EAAI,EACJD,EAAI,GACJD,EAAI,EAER,GAAIlB,OAAO2F,KAAKlE,GAAG2E,SAAQ,SAAUnF,GACnC,IAAI+D,EAAIvD,EAAER,GACV,iBAAmB+D,GAAK7D,EAAEF,GAAK+D,EAAG9D,GAAK,GAAK,iBAAmB8D,IAAMd,EAAEjD,GAAK+D,EAAG5D,GAAK,MAClFA,EAAI,EAAG,CACT,IAAI4D,EAAIhF,OAAO2F,KAAKzB,GAChBinC,EAAIpnC,EAAE87I,QAAQkf,KAAK/5J,GAAG,SAAUvD,GAClC,OAAOR,EAAE8yW,KAAKtyW,MAGhB,GAAI0pC,EAAG,CACL,IAAIrrC,EAAIc,KAAKkzW,UAAU5vW,EAAEinC,IACzB,QAAI,IAAWrrC,EAAG,OAAOA,EAG3B,IAAIuM,EAAItI,EAAE87I,QAAQkf,KAAK/5J,GAAG,SAAUvD,GAClC,OAAOR,EAAE+yW,WAAWvyW,MAGtB,GAAI4K,EAAG,CACL,IAAItJ,EAAInC,KAAKkzW,UAAU5vW,EAAEmI,IACzB,QAAI,IAAWtJ,EAAG,OAAOA,GAI7B,GAAI7B,EAAI,EAAG,CACT,IAAIuD,EAAIzE,OAAO2F,KAAKxE,GAChBqsB,EAAIzpB,EAAE87I,QAAQkf,KAAKt6J,GAAG,SAAUhD,GAClC,OAAOR,EAAEunQ,UAAU/mQ,GAAG,MAExB,QAAI,IAAW+rB,EAAG,OAAO5sB,KAAKqzW,eAAe9yW,EAAEqsB,MAEhDvsB,EAAEunQ,UAAY,SAAU/mQ,EAAGR,QAC5B,IAAWA,IAAMA,GAAI,GACrB,IAAIiD,EAAItD,KAAKoyW,iBAAiBx6P,cAC1Bp3G,EAAIK,EAAE+2G,cACNr3G,EAAI4C,EAAE87I,QAAQutN,sBAAsBhsW,GACxC,OAAOH,GAAKE,IAAMC,EAAID,EAAEq3G,eAAgBp3G,IAAM8C,GAC7CjD,EAAEgzW,eAAiB,SAAUxyW,GAC9B,IAAIR,EAAI,CAAC,GACLiD,EAAIzC,EACJL,GAAI,EACJD,EAAIP,KAAKqyW,oBACb,GAAI,iBAAmB9xW,EAAG,MAAO,MAAQM,EAAE,IAAM,MAAQA,EAAE,IAAMyC,EAAIzC,EAAE8iH,OAAO,GAAI,MAAQ9iH,EAAE,IAAML,GAAI,EAAI8C,EAAIzC,EAAE8iH,OAAO,IAAMtjH,EAAI,GAAI,MAAQQ,EAAE,GAAKR,EAAE4C,KAAK,GAAK5C,EAAE4C,MAAM,IAAM,MAAQpC,EAAE,GAAKyC,EAAIzC,EAAE8iH,OAAO,GAAK,MAAQ9iH,EAAE,KAAOL,GAAI,EAAI8C,EAAIzC,EAAE8iH,OAAO,IAAKtjH,EAAES,QAAQqC,EAAE87I,QAAQotN,gBAAgB9rW,EAAG+C,EAAG9C,KAAO,GAC1SH,EAAE8yW,KAAO,SAAUtyW,GACpB,OAAOb,KAAKwyW,WAAU,KAAQ1yW,OAAOe,GAAG+2G,eACvCv3G,EAAE+yW,WAAa,SAAUvyW,GAC1B,OAAOb,KAAK6yW,iBAAgB,KAAQ/yW,OAAOe,GAAG+2G,eAC7Cv3G,EAAEizW,SAAW,SAAUzyW,GACxB,OAAOb,KAAKizW,eAAc,KAAQnzW,OAAOe,GAAG+2G,eAC3Cv3G,EAAEslR,GAAK,SAAU9kR,EAAGR,GACrB,YAAO,IAAWA,IAAMA,GAAI,GAAKL,KAAK4nQ,UAAU/mQ,EAAGR,IAAML,KAAKmzW,KAAKtyW,IAAMb,KAAKozW,WAAWvyW,IACxFR,EAAE49J,KAAO,SAAUp9J,GACpB,IAAIR,EAAIL,KACR,YAAO,IAAWa,IAAMA,EAAI,IAAKA,EAAEo9J,MAAK,SAAUp9J,GAChD,OAAOR,EAAEslR,GAAG9kR,OAEbA,EAjJG,GAoJRR,EAAE4+I,QAAU//I,EAAG2B,EAAE8D,QAAUtE,EAAE4+I,SAE/Bs0N,GAAI,SAAW1yW,EAAGR,EAAGiD,GACnB,aAEAjD,EAAEkgJ,YAAa,EAAIlgJ,EAAE4+I,aAAU,EAC/B,IAAIz+I,EACAD,GAAKC,EAAI8C,EAAE,MAAQ9C,EAAE+/I,WAAa//I,EAAI,CACxCy+I,QAASz+I,GAEPF,EAAI,6BACJ8D,EAAI,CAAC,CACPo1B,KAAM,CAAC,cACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,aAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,2BAA4BjrW,IAAMN,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,GAC7F,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,UACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,SAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,IAAMN,EAAE0+I,QAAQ6sN,cAAc,kCAAmCjrW,GACpG,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,gBACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,SAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,2BAA4BjrW,IAAMN,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,GAC7F,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,mBACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,gCAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,IAAMN,EAAE0+I,QAAQ6sN,cAAc,2CAA4CjrW,GAC7G,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,UACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,uBAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,IAAMN,EAAE0+I,QAAQ6sN,cAAc,iCAAkCjrW,GACnG,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,cACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,cAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,qCAAsCjrW,IAAMN,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,GACvG,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,UACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,SAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,iCAAkCjrW,IAAMN,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,GACnG,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,UACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,SAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,iCAAkCjrW,IAAMN,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,GACnG,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,UACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,eAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,IAAMN,EAAE0+I,QAAQ6sN,cAAc,kCAAmCjrW,GACpG,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,yBACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,eAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,gCAAiCjrW,IAAMN,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,GAClG,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,cACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,kBAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,sCAAuCjrW,IAAMN,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,GACxG,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,cACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,cAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,IAAMN,EAAE0+I,QAAQ6sN,cAAc,sCAAuCjrW,GACxG,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,kBACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,WAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,IAAMN,EAAE0+I,QAAQ6sN,cAAc,0CAA2CjrW,GAC5G,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,aACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,YAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,IAAMN,EAAE0+I,QAAQ6sN,cAAc,qCAAsCjrW,GACvG,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,WACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,UAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,IAAMN,EAAE0+I,QAAQ6sN,cAAc,mCAAoCjrW,GACrG,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,aACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,YAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,IAAMN,EAAE0+I,QAAQ6sN,cAAc,qCAAsCjrW,GACvG,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,aACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,YAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,IAAMN,EAAE0+I,QAAQ6sN,cAAc,qCAAsCjrW,GACvG,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,mBACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,UAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,2CAA4CjrW,IAAMN,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,GAC7G,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,cACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,iBAAiBqyB,KAAK34B,GAAK,kBAAoB,cAEnDyC,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,kDAAmDjrW,IAAMN,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,GACpH,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,iBACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,qBAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,iCAAkCjrW,GAClE,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,YACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,kBAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,2BAA4BjrW,GAC5D,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,kBACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,kBAEJ7D,EAAI/C,EAAE0+I,QAAQ8sN,eAAe,mCAAoClrW,GACrE,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,YACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,WAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,6BAA8BjrW,GAC9D,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,cACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,aAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,+BAAgCjrW,GAChE,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,aACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,YAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,qCAAsCjrW,GACtE,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,SACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,eAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,0BAA2BjrW,GAC3D,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,YACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,aAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,+BAAgCjrW,GAChE,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,aACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,YAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,8BAA+BjrW,GAC/D,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,sBAAuB,gBAC9B0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,cAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,IAAMN,EAAE0+I,QAAQ6sN,cAAc,qCAAsCjrW,GACvG,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,mBACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,iBAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,IAAMN,EAAE0+I,QAAQ6sN,cAAc,0CAA2CjrW,GAC5G,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,SACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,QAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,4BAA6BjrW,GAC7D,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,UACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,SAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,0CAA2CjrW,IAAMN,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,GAC5G,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,aACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,YAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,qCAAsCjrW,IAAMN,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,GACvG,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,4BACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,WAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,oDAAqDjrW,GACrF,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,aACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,YAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,kCAAmCjrW,GACnE,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,gBACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,QAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,wCAAyCjrW,GACzE,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,aACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,YAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,qCAAsCjrW,IAAMN,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,GACvG,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,sBACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,UAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,2CAA4CjrW,GAC5E,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,QACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,iBAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,6BAA8BjrW,GAC9D,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,SAAc34B,GAClB,IAAIR,GAAKQ,EAAE24B,KAAK,iBACZl2B,EAAIzC,EAAE24B,KAAK,YACf,OAAOn5B,GAAKiD,GAEd4mN,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,mBAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,GACnC,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,kBACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,iBAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,GACnC,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,uBACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM,UAEJ7D,EAAI/C,EAAE0+I,QAAQ6sN,cAAcxrW,EAAGO,GACnC,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,OACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,GAAK,IAAMQ,EAAEijH,OAAO,OAAS,yBAA2B,eAC5D,MAAO,CACL38G,KAAM5G,EAAE0+I,QAAQ6sN,cAAczrW,EAAGQ,GACjC2vB,QAASjwB,EAAE0+I,QAAQ8sN,eAAe1rW,EAAGQ,OAI3CR,EAAE4+I,QAAU76I,EAAGvD,EAAE8D,QAAUtE,EAAE4+I,SAE/Bu0N,GAAI,SAAW3yW,EAAGR,EAAGiD,GACnB,aAEAjD,EAAEkgJ,YAAa,EAAIlgJ,EAAE4+I,aAAU,EAC/B,IAAIz+I,EACAD,GAAKC,EAAI8C,EAAE,MAAQ9C,EAAE+/I,WAAa//I,EAAI,CACxCy+I,QAASz+I,GAEPF,EAAIgD,EAAE,IACNc,EAAI,CAAC,CACPo1B,KAAM,CAAC,aACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAIE,EAAE0+I,QAAQ6sN,cAAc,wBAAyBjrW,GACzD,MAAO,CACLsG,KAAM7G,EAAEssW,OAAO2B,KACf/9U,QAASnwB,KAGZ,CACDm5B,KAAM,CAAC,kBACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAIE,EAAE0+I,QAAQ6sN,cAAc,yCAA0CjrW,GAC1E,MAAO,CACLsG,KAAM7G,EAAEssW,OAAOgE,aACfpgV,QAASnwB,KAGZ,CACDm5B,KAAM,CAAC,aACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAIE,EAAE0+I,QAAQ6sN,cAAc,iCAAkCjrW,GAC9DyC,EAAI/C,EAAE0+I,QAAQgtN,sBAAsB5rW,GACxC,MAAO,CACL8G,KAAM7G,EAAEssW,OAAOiE,QACfrgV,QAASnwB,EACTozW,YAAanwW,KAGhB,CACDk2B,KAAM,CAAC,+BACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM7G,EAAEssW,OAAOmE,KAEbztW,EAAI/C,EAAE0+I,QAAQ8sN,eAAe,wBAAyBlrW,GAC1D,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,cACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAIE,EAAE0+I,QAAQ6sN,cAAc,6BAA8BjrW,GAAG2K,QAAQ,SAAU,KAC/ElI,EAAI/C,EAAE0+I,QAAQitN,oBAAoB7rW,GAClCG,EAAI,CACN2G,KAAM7G,EAAEssW,OAAOkE,MACftgV,QAASnwB,GAEX,OAAOiD,IAAM9C,EAAEizW,YAAcnwW,GAAI9C,IAElC,CACDg5B,KAAM,CAAC,uBACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAIE,EAAE0+I,QAAQ6sN,cAAc,qCAAsCjrW,GAAG2K,QAAQ,SAAU,KAC3F,MAAO,CACLrE,KAAM7G,EAAEssW,OAAOmE,IACfvgV,QAASnwB,KAGZ,CACDm5B,KAAM,SAAc34B,GAClB,IAAIR,GAAKQ,EAAE24B,KAAK,iBACZl2B,EAAIzC,EAAE24B,KAAK,YACf,OAAOn5B,GAAKiD,GAEd4mN,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAIE,EAAE0+I,QAAQ6sN,cAAc,8BAA+BjrW,GAC3DyC,EAAI/C,EAAE0+I,QAAQktN,sBAAsB9rW,GACpCG,EAAI,CACN2G,KAAM7G,EAAEssW,OAAOoE,QACfxgV,QAASnwB,GAEX,OAAOiD,IAAM9C,EAAEizW,YAAcnwW,GAAI9C,IAElC,CACDg5B,KAAM,CAAC,mBACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAIE,EAAE0+I,QAAQ6sN,cAAc,mCAAoCjrW,GAChEyC,EAAI,CACN6D,KAAM7G,EAAEssW,OAAOqE,OAEjB,OAAO5wW,GAAKA,EAAEK,SAAW4C,EAAEktB,QAAUnwB,GAAIiD,IAE1C,CACDk2B,KAAM,CAAC,sBAAuB,gBAC9B0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAIE,EAAE0+I,QAAQ6sN,cAAc,kCAAmCjrW,IAAMN,EAAE0+I,QAAQ6sN,cAAc,mCAAoCjrW,IAAMN,EAAE0+I,QAAQ6sN,cAAc,aAAcjrW,GACjL,MAAO,CACLsG,KAAM7G,EAAEssW,OAAOG,WACfv8U,QAASnwB,KAGZ,CACDm5B,KAAM,CAAC,SACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAIE,EAAE0+I,QAAQ6sN,cAAc,uBAAwBjrW,GACxD,MAAO,CACLsG,KAAM7G,EAAEssW,OAAOE,KACft8U,QAASnwB,KAGZ,CACDm5B,KAAM,CAAC,UACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAIE,EAAE0+I,QAAQ6sN,cAAc,2BAA4BjrW,GAC5D,MAAO,CACLsG,KAAM7G,EAAEssW,OAAOwB,MACf59U,QAASnwB,KAGZ,CACDm5B,KAAM,CAAC,UACP0wL,SAAU,WACR,MAAO,CACL/iN,KAAM7G,EAAEssW,OAAOsE,SAGlB,CACD13U,KAAM,CAAC,QACP0wL,SAAU,WACR,MAAO,CACL/iN,KAAM7G,EAAEssW,OAAOuE,YAGlB,CACD33U,KAAM,CAAC,iBACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAIE,EAAE0+I,QAAQ6sN,cAAc,mCAAoCjrW,GACpE,MAAO,CACLsG,KAAM7G,EAAEssW,OAAOwE,aACf5gV,QAASnwB,MAIfA,EAAE4+I,QAAU76I,EAAGvD,EAAE8D,QAAUtE,EAAE4+I,SAE/By0N,GAAI,SAAW7yW,EAAGR,EAAGiD,GACnB,aAEAjD,EAAEkgJ,YAAa,EAAIlgJ,EAAE4+I,aAAU,EAC/B,IAAIz+I,EACAD,GAAKC,EAAI8C,EAAE,MAAQ9C,EAAE+/I,WAAa//I,EAAI,CACxCy+I,QAASz+I,GAEPF,EAAIgD,EAAE,IACNc,EAAI,CAAC,CACPo1B,KAAM,CAAC,cACP0wL,SAAU,WACR,MAAO,CACLtvM,KAAM,MACN+4V,OAAQ,YAGX,CACDn6U,KAAM,CAAC,WACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAIE,EAAE0+I,QAAQ6sN,cAAc,aAAcjrW,IAAM,OAChDyC,EAAI,CACNsX,KAAMta,EAAEusW,cAAc4D,OACtBkD,OAAQ,UAEV,OAAOtzW,IAAMiD,EAAEkrL,MAAQnuL,GAAIiD,IAE5B,CACDk2B,KAAM,CAAC,2BACP0wL,SAAU,WACR,MAAO,CACLtvM,KAAMta,EAAEusW,cAAc2D,OACtBmD,OAAQ,WAGX,CACDn6U,KAAM,CAAC,SACP0wL,SAAU,WACR,MAAO,CACLtvM,KAAMta,EAAEusW,cAAc2D,OACtBmD,OAAQ,QACRnlL,MAAO,UAGV,CACDh1J,KAAM,CAAC,+BACP0wL,SAAU,WACR,MAAO,CACLtvM,KAAMta,EAAEusW,cAAc2D,OACtBmD,OAAQ,QACRnlL,MAAO,UAGV,CACDh1J,KAAM,CAAC,eACP0wL,SAAU,WACR,MAAO,CACLtvM,KAAMta,EAAEusW,cAAc2D,OACtBmD,OAAQ,SACRnlL,MAAO,sBAGV,CACDh1J,KAAM,CAAC,SACP0wL,SAAU,WACR,MAAO,CACLtvM,KAAMta,EAAEusW,cAAc2D,OACtBmD,OAAQ,YAGX,CACDn6U,KAAM,CAAC,kBACP0wL,SAAU,WACR,MAAO,CACLtvM,KAAMta,EAAEusW,cAAc2D,UAGzB,CACDh3U,KAAM,SAAc34B,GAClB,IAAIR,EAAIQ,EAAE24B,KAAK,gBACXl2B,EAAIzC,EAAE24B,KAAK,uBACf,OAAOn5B,IAAMiD,GAEf4mN,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAIE,EAAE0+I,QAAQ6sN,cAAc,iBAAkBjrW,GAClD,MAAO,CACL+Z,KAAMta,EAAEusW,cAAc4D,OACtBkD,OAAQ,QACRnlL,MAAOnuL,KAGV,CACDm5B,KAAM,CAAC,mBAAoB,iBAC3B0wL,SAAU,WACR,MAAO,CACLtvM,KAAMta,EAAEusW,cAAc4D,OACtBkD,OAAQ,WAGX,CACDn6U,KAAM,CAAC,aACP0wL,SAAU,WACR,MAAO,CACLtvM,KAAMta,EAAEusW,cAAc4D,UAGzB,CACDj3U,KAAM,SAAc34B,GAClB,MAAO,eAAiBA,EAAEuxW,gBAAe,IAE3CloJ,SAAU,WACR,MAAO,CACLtvM,KAAMta,EAAEusW,cAAc4D,OACtBkD,OAAQ,gBAGX,CACDn6U,KAAM,SAAc34B,GAClB,MAAO,SAAWA,EAAEuxW,gBAAe,IAErCloJ,SAAU,WACR,MAAO,CACLtvM,KAAMta,EAAEusW,cAAc4D,UAGzB,CACDj3U,KAAM,SAAc34B,GAClB,MAAO,kBAAoBA,EAAEuxW,kBAE/BloJ,SAAU,WACR,MAAO,CACLtvM,KAAMta,EAAEusW,cAAc4D,OACtBkD,OAAQ,eAGX,CACDn6U,KAAM,SAAc34B,GAClB,IAAIR,EAAIkO,OAAOzO,OAAOe,EAAE4xW,gBAAgBhrS,MAAM,KAAK,IACnD,MAAO,YAAc5mE,EAAE2xW,WAAU,IAAOnyW,GAAK,GAE/C6pN,SAAU,WACR,MAAO,CACLtvM,KAAMta,EAAEusW,cAAc2D,UAGzB,CACDh3U,KAAM,SAAc34B,GAClB,MAAO,YAAcA,EAAE2xW,WAAU,IAEnCtoJ,SAAU,WACR,MAAO,CACLtvM,KAAMta,EAAEusW,cAAc4D,UAGzB,CACDj3U,KAAM,SAAc34B,GAClB,MAAO,UAAYA,EAAE2xW,WAAU,IAEjCtoJ,SAAU,WACR,MAAO,CACLtvM,KAAMta,EAAEusW,cAAc6D,QACtBiD,OAAQ,WAGX,CACDn6U,KAAM,SAAc34B,GAClB,MAAO,YAAcA,EAAE2xW,WAAU,IAEnCtoJ,SAAU,WACR,MAAO,CACLtvM,KAAMta,EAAEusW,cAAc6D,WAGzB,CACDl3U,KAAM,SAAc34B,GAClB,MAAO,UAAYA,EAAE2xW,WAAU,IAEjCtoJ,SAAU,WACR,MAAO,CACLtvM,KAAMta,EAAEusW,cAAc6D,WAGzB,CACDl3U,KAAM,SAAc34B,GAClB,MAAO,kBAAoBA,EAAE2xW,WAAU,IAEzCtoJ,SAAU,WACR,MAAO,CACLtvM,KAAMta,EAAEusW,cAAc8D,MAGzB,CACDn3U,KAAM,SAAc34B,GAClB,MAAO,SAAWA,EAAE2xW,WAAU,IAEhCtoJ,SAAU,WACR,MAAO,CACLtvM,KAAMta,EAAEusW,cAAc8D,OAI5BtwW,EAAE4+I,QAAU76I,EAAGvD,EAAE8D,QAAUtE,EAAE4+I,SAE/B20N,GAAI,SAAW/yW,EAAGR,EAAGiD,GACnB,aAEAjD,EAAEkgJ,YAAa,EAAIlgJ,EAAE4+I,aAAU,EAC/B,IAAIz+I,EACAD,GAAKC,EAAI8C,EAAE,MAAQ9C,EAAE+/I,WAAa//I,EAAI,CACxCy+I,QAASz+I,GAEPF,EAAIgD,EAAE,IACNc,EAAI,CAAC,CACPo1B,KAAM,SAAc34B,GAClB,MAAO,mBAAqBA,EAAEuxW,gBAAe,IAE/CloJ,SAAU,SAAkBrpN,GAC1B,GAAI,WAAW24B,KAAK34B,GAAI,MAAO,CAC7BsG,KAAM7G,EAAEqsW,WAAW2E,OAErB,IAAIjxW,EAAIE,EAAE0+I,QAAQ6sN,cAAc,0BAA2BjrW,GAC3D,MAAO,CACLsG,KAAM7G,EAAEqsW,WAAW0E,SACnB7gV,QAASnwB,KAGZ,CACDm5B,KAAM,CAAC,YACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM7G,EAAEqsW,WAAW4E,SAEjBjuW,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,6BAA8BjrW,GAC9D,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,SAAc34B,GAClB,OAAOA,EAAE24B,KAAK,YAEhB0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM7G,EAAEqsW,WAAW6E,QAEjBluW,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,4BAA6BjrW,GAC7D,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,SAAc34B,GAClB,IAAIR,EAAIQ,EAAE24B,KAAK,UACXl2B,EAAIzC,EAAE24B,KAAK,eACf,OAAOn5B,IAAMiD,GAEf4mN,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM7G,EAAEqsW,WAAW8E,OAEjBnuW,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,2BAA4BjrW,GAC5D,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,IAE9B,CACDm5B,KAAM,CAAC,4BACP0wL,SAAU,WACR,MAAO,CACL/iN,KAAM7G,EAAEqsW,WAAW2E,SAGtB,CACD93U,KAAM,CAAC,mBACP0wL,SAAU,SAAkBrpN,GAC1B,IAAIR,EAAI,CACN8G,KAAM7G,EAAEqsW,WAAW+E,QAEjBpuW,EAAI/C,EAAE0+I,QAAQ6sN,cAAc,4BAA6BjrW,GAC7D,OAAOyC,IAAMjD,EAAEmwB,QAAUltB,GAAIjD,KAGjCA,EAAE4+I,QAAU76I,EAAGvD,EAAE8D,QAAUtE,EAAE4+I,Y,+sMC51CnC,IAAI40N,EAAa,EAAQ,MAErBC,EAAe,EAAQ,KAEvBC,EAAY,EAAQ,KAEpBx/J,EAAe,EAAQ,KAAUA,aAEjCy/J,EAAY,EAAQ,MAExBrvW,EAAQmI,MAAQ,SAAU89O,EAAS3iP,EAASgsW,GAC1C,GAAIA,EAAkB,EACK,IAArBA,IAA2BA,EAAmB,IAClD,IAAInyW,EAASkyW,EAAUj5P,SAAS6vI,EAASqpH,GAEzC,IAAe,IAAXnyW,EACF,MAAMwF,MAAMxF,EAAOmJ,IAAIoiB,KAI3BplB,EAAUssM,EAAatsM,EAAS8rW,EAAUv/J,eAAgBu/J,EAAUx0N,OACpE,IAAI20N,EAAiBJ,EAAa/oH,gBAAgBH,EAAS3iP,GAE3D,OAAO4rW,EAAWM,cAAcD,EAAgBjsW,IAGlDtD,EAAQyvW,cAAgB,EAAQ,MAAcC,aAC9C1vW,EAAQomP,gBAAkB+oH,EAAa/oH,gBACvCpmP,EAAQwvW,cAAgBN,EAAWM,cACnCxvW,EAAQ2vW,oBAAsB,EAAQ,MAAmBA,oBACzD3vW,EAAQo2G,SAAWi5P,EAAUj5P,SAC7Bp2G,EAAQ4vW,UAAY,EAAQ,MAE5B5vW,EAAQ6vW,YAAc,SAAU5pH,EAAS6pH,EAAQxsW,GAC/C,OAAOtD,EAAQyvW,cAAczvW,EAAQomP,gBAAgBH,EAAS3iP,GAAUwsW,EAAQxsW,K,6BClClF7I,OAAOwG,eAAejB,EAAS,aAAc,CAC3CjD,OAAO,IAETiD,EAAQ+vW,gBAAkB/vW,EAAQgwW,kBAAoBhwW,EAAQiwW,kBAAoBjwW,EAAQkwW,YAAclwW,EAAQmwW,YAAcnwW,EAAQ+oS,iBAAmB/oS,EAAQ8oS,WAAa9oS,EAAQgpS,UAAYhpS,EAAQowW,YAAcpwW,EAAQqwW,YAAcrwW,EAAQ2pS,WAAa3pS,EAAQynH,OAASznH,EAAQ4pS,mBAAqB5pS,EAAQ6pS,WAAa7pS,EAAQ8pS,UAAY9pS,EAAQ27K,OAAS37K,EAAQswW,aAAetwW,EAAQunH,YAAS,EAEnZ,IAAIgpP,EAAW,EAAQ,KAEnBC,EAAW,EAAQ,KAcvBxwW,EAAQunH,OAJR,SAAgBzsF,EAAMk7D,GACpB,QAASA,GAASA,GAAS,EAAIu6Q,EAASvnE,UAAYunE,EAASznE,YAAYhuQ,IAgB3E96B,EAAQswW,aAJR,SAAsBx1U,EAAMk7D,GAC1B,QAASA,GAASA,GAAS,EAAIu6Q,EAASvnE,UAAYunE,EAASxnE,kBAAkBjuQ,IAgBjF96B,EAAQ27K,OAJR,SAAgB7gJ,EAAMk7D,GACpB,QAASA,GAASA,GAAS,EAAIw6Q,EAAS1mE,UAAY0mE,EAAS3mE,YAAY/uQ,IAK3E,IAAI21U,EAAW,EAAQ,KAEvBh2W,OAAOwG,eAAejB,EAAS,YAAa,CAC1CS,YAAY,EACZ4J,IAAK,WACH,OAAOomW,EAAS3mE,aAGpBrvS,OAAOwG,eAAejB,EAAS,aAAc,CAC3CS,YAAY,EACZ4J,IAAK,WACH,OAAOomW,EAAS5mE,cAGpBpvS,OAAOwG,eAAejB,EAAS,qBAAsB,CACnDS,YAAY,EACZ4J,IAAK,WACH,OAAOomW,EAAS7mE,sBAGpBnvS,OAAOwG,eAAejB,EAAS,SAAU,CACvCS,YAAY,EACZ4J,IAAK,WACH,OAAOomW,EAAShpP,UAGpBhtH,OAAOwG,eAAejB,EAAS,aAAc,CAC3CS,YAAY,EACZ4J,IAAK,WACH,OAAOomW,EAAS9mE,cAIpBlvS,OAAOwG,eAAejB,EAAS,cAAe,CAC5CS,YAAY,EACZ4J,IAAK,WACH,OAAOomW,EAAS5mE,cAGpBpvS,OAAOwG,eAAejB,EAAS,cAAe,CAC5CS,YAAY,EACZ4J,IAAK,WACH,OAAOomW,EAAS5mE,cAIpB,IAAI6mE,EAAW,EAAQ,KAEvBj2W,OAAOwG,eAAejB,EAAS,YAAa,CAC1CS,YAAY,EACZ4J,IAAK,WACH,OAAOqmW,EAAS1nE,aAGpBvuS,OAAOwG,eAAejB,EAAS,aAAc,CAC3CS,YAAY,EACZ4J,IAAK,WACH,OAAOqmW,EAAS5nE,cAGpBruS,OAAOwG,eAAejB,EAAS,mBAAoB,CACjDS,YAAY,EACZ4J,IAAK,WACH,OAAOqmW,EAAS3nE,oBAIpBtuS,OAAOwG,eAAejB,EAAS,cAAe,CAC5CS,YAAY,EACZ4J,IAAK,WACH,OAAOqmW,EAAS5nE,cAGpBruS,OAAOwG,eAAejB,EAAS,cAAe,CAC5CS,YAAY,EACZ4J,IAAK,WACH,OAAOqmW,EAAS5nE,cAGpBruS,OAAOwG,eAAejB,EAAS,oBAAqB,CAClDS,YAAY,EACZ4J,IAAK,WACH,OAAOqmW,EAAS3nE,oBAGpBtuS,OAAOwG,eAAejB,EAAS,oBAAqB,CAClDS,YAAY,EACZ4J,IAAK,WACH,OAAOqmW,EAAS3nE,oBAGpBtuS,OAAOwG,eAAejB,EAAS,kBAAmB,CAChDS,YAAY,EACZ4J,IAAK,WACH,OAAOqmW,EAAS1nE,c,gBC/IlB,oBAAsBjvJ,MAAOA,KAD6Bh6I,EAAOC,QACvB,SAAU9D,GACpD,OAAOsC,EAAI,GAAI9C,EAAE+C,EAAI5C,EAAI,CAAC,SAAUH,GAClCA,EAAEsE,QAAU9D,GACX,SAAUA,EAAGR,EAAGG,GACjBK,EAAE8D,QAAUnE,EAAE,EAAFA,IACX,SAAUK,EAAGR,EAAGG,GACjB,aAEA,SAAS2C,KAET,SAASG,KAET,IAAI/C,EAAIC,EAAE,GACV8C,EAAEm7S,kBAAoBt7S,EAAGtC,EAAE8D,QAAU,WACnC,SAAS9D,EAAEA,EAAGR,EAAGG,EAAG2C,EAAGG,EAAGc,GACxB,GAAIA,IAAM7D,EAAG,CACX,IAAIkL,EAAInE,MAAM,mLACd,MAAMmE,EAAEtE,KAAO,sBAAuBsE,GAI1C,SAASpL,IACP,OAAOQ,EAGT,IAAIL,EAAI,CACN6a,MAAOxa,EAAEmvQ,WAAanvQ,EACtB69S,KAAM79S,EACN8/F,KAAM9/F,EACN6/P,OAAQ7/P,EACRgE,OAAQhE,EACRksC,OAAQlsC,EACRsjN,OAAQtjN,EACR89S,IAAK99S,EACL+9S,QAASv+S,EACTq+B,QAAS79B,EACTg+S,YAAah+S,EACbi+S,WAAYz+S,EACZg+H,KAAMx9H,EACNk+S,SAAU1+S,EACV2+S,MAAO3+S,EACP4+S,UAAW5+S,EACX8+B,MAAO9+B,EACP6+S,MAAO7+S,EACP8+S,eAAgB77S,EAChBm7S,kBAAmBt7S,GAErB,OAAO3C,EAAEyzR,UAAYzzR,IAEtB,SAAUK,GACX,aAEAA,EAAE8D,QAAU,gDACX,SAAU9D,EAAGR,EAAGG,GACjB,aAEA,SAAS2C,EAAEtC,EAAGR,GACZ,OAAO,SAAUQ,GACf,GAAItB,MAAMwM,QAAQlL,GAAI,OAAOA,EADxB,CAELA,IAAM,SAAUA,EAAGR,GACnB,GAAI,oBAAsBuC,QAAUA,OAAOC,YAAYzD,OAAOyB,GAAI,CAChE,IAAIL,EAAI,GACJ2C,GAAI,EACJG,GAAI,EACJ/C,OAAI,EAER,IACE,IAAK,IAAI6D,EAAGqH,EAAI5K,EAAE+B,OAAOC,cAAeM,GAAKiB,EAAIqH,EAAE7J,QAAQG,QAAUvB,EAAEyC,KAAKmB,EAAE1C,QAASrB,GAAKG,EAAEE,SAAWL,GAAI8C,GAAI,IAGjH,MAAOtC,GACPyC,GAAI,EAAI/C,EAAIM,EACZ,QACA,IACEsC,GAAK,MAAQsI,EAAE3B,QAAU2B,EAAE3B,SAC3B,QACA,GAAIxG,EAAG,MAAM/C,GAIjB,OAAOC,GArBH,CAuBNK,EAAGR,IAAM,SAAUQ,EAAGR,GACtB,GAAIQ,EAAG,CACL,GAAI,iBAAmBA,EAAG,OAAOyC,EAAEzC,EAAGR,GACtC,IAAIG,EAAIpB,OAAOK,UAAUkM,SAAShM,KAAKkB,GAAGiD,MAAM,GAAI,GACpD,MAAO,WAAatD,GAAKK,EAAEZ,cAAgBO,EAAIK,EAAEZ,YAAYkH,MAAO,QAAU3G,GAAK,QAAUA,EAAIjB,MAAMoE,KAAKnD,GAAK,cAAgBA,GAAK,2CAA2Cg5B,KAAKh5B,GAAK8C,EAAEzC,EAAGR,QAAK,GAJ9L,CAMTQ,EAAGR,IAAM,WACT,MAAM,IAAIR,UAAU,6IADX,GAKb,SAASyD,EAAEzC,EAAGR,GACZ,MAAQA,GAAKA,GAAKQ,EAAEH,SAAWL,EAAIQ,EAAEH,QAErC,IAAK,IAAIF,EAAI,EAAG2C,EAAI5D,MAAMc,GAAIG,EAAIH,EAAGG,IACnC2C,EAAE3C,GAAKK,EAAEL,GAGX,OAAO2C,EAGT,SAAS5C,EAAEM,EAAGR,GACZ,OAAO,SAAUQ,GACf,GAAItB,MAAMwM,QAAQlL,GAAI,OAAOA,EADxB,CAELA,IAAM,SAAUA,EAAGR,GACnB,GAAI,oBAAsBuC,QAAUA,OAAOC,YAAYzD,OAAOyB,GAAI,CAChE,IAAIL,EAAI,GACJ2C,GAAI,EACJG,GAAI,EACJ/C,OAAI,EAER,IACE,IAAK,IAAI6D,EAAGqH,EAAI5K,EAAE+B,OAAOC,cAAeM,GAAKiB,EAAIqH,EAAE7J,QAAQG,QAAUvB,EAAEyC,KAAKmB,EAAE1C,QAASrB,GAAKG,EAAEE,SAAWL,GAAI8C,GAAI,IAGjH,MAAOtC,GACPyC,GAAI,EAAI/C,EAAIM,EACZ,QACA,IACEsC,GAAK,MAAQsI,EAAE3B,QAAU2B,EAAE3B,SAC3B,QACA,GAAIxG,EAAG,MAAM/C,GAIjB,OAAOC,GArBH,CAuBNK,EAAGR,IAAM,SAAUQ,EAAGR,GACtB,GAAIQ,EAAG,CACL,GAAI,iBAAmBA,EAAG,OAAOuD,EAAEvD,EAAGR,GACtC,IAAIG,EAAIpB,OAAOK,UAAUkM,SAAShM,KAAKkB,GAAGiD,MAAM,GAAI,GACpD,MAAO,WAAatD,GAAKK,EAAEZ,cAAgBO,EAAIK,EAAEZ,YAAYkH,MAAO,QAAU3G,GAAK,QAAUA,EAAIjB,MAAMoE,KAAKnD,GAAK,cAAgBA,GAAK,2CAA2Cg5B,KAAKh5B,GAAK4D,EAAEvD,EAAGR,QAAK,GAJ9L,CAMTQ,EAAGR,IAAM,WACT,MAAM,IAAIR,UAAU,6IADX,GAKb,SAASuE,EAAEvD,EAAGR,GACZ,MAAQA,GAAKA,GAAKQ,EAAEH,SAAWL,EAAIQ,EAAEH,QAErC,IAAK,IAAIF,EAAI,EAAG2C,EAAI5D,MAAMc,GAAIG,EAAIH,EAAGG,IACnC2C,EAAE3C,GAAKK,EAAEL,GAGX,OAAO2C,EAGT,SAASsI,EAAE5K,EAAGR,GACZ,OAAO,SAAUQ,GACf,GAAItB,MAAMwM,QAAQlL,GAAI,OAAOA,EADxB,CAELA,IAAM,SAAUA,EAAGR,GACnB,GAAI,oBAAsBuC,QAAUA,OAAOC,YAAYzD,OAAOyB,GAAI,CAChE,IAAIL,EAAI,GACJ2C,GAAI,EACJG,GAAI,EACJ/C,OAAI,EAER,IACE,IAAK,IAAI6D,EAAGqH,EAAI5K,EAAE+B,OAAOC,cAAeM,GAAKiB,EAAIqH,EAAE7J,QAAQG,QAAUvB,EAAEyC,KAAKmB,EAAE1C,QAASrB,GAAKG,EAAEE,SAAWL,GAAI8C,GAAI,IAGjH,MAAOtC,GACPyC,GAAI,EAAI/C,EAAIM,EACZ,QACA,IACEsC,GAAK,MAAQsI,EAAE3B,QAAU2B,EAAE3B,SAC3B,QACA,GAAIxG,EAAG,MAAM/C,GAIjB,OAAOC,GArBH,CAuBNK,EAAGR,IAAM,SAAUQ,EAAGR,GACtB,GAAIQ,EAAG,CACL,GAAI,iBAAmBA,EAAG,OAAO0pC,EAAE1pC,EAAGR,GACtC,IAAIG,EAAIpB,OAAOK,UAAUkM,SAAShM,KAAKkB,GAAGiD,MAAM,GAAI,GACpD,MAAO,WAAatD,GAAKK,EAAEZ,cAAgBO,EAAIK,EAAEZ,YAAYkH,MAAO,QAAU3G,GAAK,QAAUA,EAAIjB,MAAMoE,KAAKnD,GAAK,cAAgBA,GAAK,2CAA2Cg5B,KAAKh5B,GAAK+pC,EAAE1pC,EAAGR,QAAK,GAJ9L,CAMTQ,EAAGR,IAAM,WACT,MAAM,IAAIR,UAAU,6IADX,GAKb,SAAS0qC,EAAE1pC,EAAGR,GACZ,MAAQA,GAAKA,GAAKQ,EAAEH,SAAWL,EAAIQ,EAAEH,QAErC,IAAK,IAAIF,EAAI,EAAG2C,EAAI5D,MAAMc,GAAIG,EAAIH,EAAGG,IACnC2C,EAAE3C,GAAKK,EAAEL,GAGX,OAAO2C,EAGT,SAASU,EAAEhD,EAAGR,GACZ,OAAO,SAAUQ,GACf,GAAItB,MAAMwM,QAAQlL,GAAI,OAAOA,EADxB,CAELA,IAAM,SAAUA,EAAGR,GACnB,GAAI,oBAAsBuC,QAAUA,OAAOC,YAAYzD,OAAOyB,GAAI,CAChE,IAAIL,EAAI,GACJ2C,GAAI,EACJG,GAAI,EACJ/C,OAAI,EAER,IACE,IAAK,IAAI6D,EAAGqH,EAAI5K,EAAE+B,OAAOC,cAAeM,GAAKiB,EAAIqH,EAAE7J,QAAQG,QAAUvB,EAAEyC,KAAKmB,EAAE1C,QAASrB,GAAKG,EAAEE,SAAWL,GAAI8C,GAAI,IAGjH,MAAOtC,GACPyC,GAAI,EAAI/C,EAAIM,EACZ,QACA,IACEsC,GAAK,MAAQsI,EAAE3B,QAAU2B,EAAE3B,SAC3B,QACA,GAAIxG,EAAG,MAAM/C,GAIjB,OAAOC,GArBH,CAuBNK,EAAGR,IAAM,SAAUQ,EAAGR,GACtB,GAAIQ,EAAG,CACL,GAAI,iBAAmBA,EAAG,OAAOP,EAAEO,EAAGR,GACtC,IAAIG,EAAIpB,OAAOK,UAAUkM,SAAShM,KAAKkB,GAAGiD,MAAM,GAAI,GACpD,MAAO,WAAatD,GAAKK,EAAEZ,cAAgBO,EAAIK,EAAEZ,YAAYkH,MAAO,QAAU3G,GAAK,QAAUA,EAAIjB,MAAMoE,KAAKnD,GAAK,cAAgBA,GAAK,2CAA2Cg5B,KAAKh5B,GAAKF,EAAEO,EAAGR,QAAK,GAJ9L,CAMTQ,EAAGR,IAAM,WACT,MAAM,IAAIR,UAAU,6IADX,GAKb,SAASS,EAAEO,EAAGR,GACZ,MAAQA,GAAKA,GAAKQ,EAAEH,SAAWL,EAAIQ,EAAEH,QAErC,IAAK,IAAIF,EAAI,EAAG2C,EAAI5D,MAAMc,GAAIG,EAAIH,EAAGG,IACnC2C,EAAE3C,GAAKK,EAAEL,GAGX,OAAO2C,EAGT,SAAShB,EAAEtB,EAAGR,EAAGG,EAAG2C,EAAGG,EAAG/C,GACxB,IAAI6D,EAAIvD,EAAEy0W,qBAAqBj1W,GAAG,GAC9BoL,EAAIrH,EACJmmC,EAAInmC,GACPmmC,EAAI1pC,EAAEq4K,cAAc74K,IAAIk9B,GAAK/8B,EAAG+pC,EAAE7b,IAAMvrB,EAAGsI,GAAKA,EAAEo6N,WAAap6N,EAAEo6N,WAAWF,aAAap7L,EAAG9+B,GAAK5K,EAAE2mO,KAAKrpB,YAAY5zK,GAAIA,EAAE4oK,QAAU5yM,EAAGgqC,EAAE6oK,OAAS9vM,EAGrJ,SAASpE,EAAE2B,EAAGR,GACZ,IAAIG,EAAIK,EAAE00W,eAAel1W,GACzBG,GAAKA,EAAEqlO,WAAWgD,YAAYroO,GAGhC,SAAShB,EAAEqB,GACT,OAAO1B,EAAEiF,EAAE80K,cAAc,OAAQ,CAC/BrsI,MAAO,CACLytP,aAAc,GACdktB,WAAY,IACZptB,YAAav5R,EAAEmgL,KAAO,EAAI,GAC1Bw0L,WAAY,GACZC,cAAe,KAEhB50W,EAAE45B,UAGP,SAASp4B,EAAExB,GACT,OAAO1B,EAAEiF,EAAE80K,cAAc,MAAO,CAC9BrsI,MAAO,CACLugO,YAAa,GACb9xO,WAAYz6B,EAAEywP,OAAS,OAAS,OAChCvwF,QAAS,GACTilG,aAAc,IAEf7mQ,EAAEiF,EAAE80K,cAAc,MAAO,CAC1BrqJ,MAAO,KACPC,OAAQ,KACR4mV,MAAO,8BACNv2W,EAAEiF,EAAE80K,cAAc,IAAK,CACxB0I,KAAM,OACNG,SAAU,WACT5iL,EAAEiF,EAAE80K,cAAc,OAAQ,CAC3Bh6K,EAAG,gIACH0iL,KAAM,YACJziL,EAAEiF,EAAE80K,cAAc,OAAQ,CAC5Bh6K,EAAG,kHACH0iL,KAAM,YACJziL,EAAEiF,EAAE80K,cAAc,OAAQ,CAC5Bh6K,EAAG,4HACH0iL,KAAM,YACJziL,EAAEiF,EAAE80K,cAAc,OAAQ,CAC5Bh6K,EAAG,8HACH0iL,KAAM,YACJziL,EAAEiF,EAAE80K,cAAc,OAAQ,CAC5B0I,KAAM,OACN1iL,EAAG,qBAIP,SAASkD,EAAEvB,GACT,IAAIR,EAAIE,EAAEnB,OAAOgE,EAAEi8S,SAATjgT,EAAmB,GAAK,GAC9BoB,EAAIH,EAAE,GACN8C,EAAI9C,EAAE,GACNiD,EAAI/C,EAAEnB,OAAOgE,EAAEi8S,SAATjgT,EAAmB,GAAK,GAC9BgF,EAAId,EAAE,GACNmI,EAAInI,EAAE,GACNinC,EAAI1pC,EAAEg2K,IACNhzK,EAAIhD,EAAE+Z,KACNta,EAAIO,EAAEogL,UACN9+K,EAAItB,EAAE80W,cACNz2W,EAAI2B,EAAE+0W,WACNxzW,EAAIvB,EAAE45B,SACN33B,EAAIjC,EAAEqoD,OACNg0G,EAAIr8J,EAAEmqO,MACNjqM,EAAIlgC,EAAEmgL,KACN32B,EAAIxpJ,EAAE+rM,SACN79L,EAAI6d,EAAE,CACRuvO,UAAWt7P,EAAEs7P,UACb05G,mBAAoBh1W,EAAEg1W,mBACtBC,UAAWj1W,EAAEi1W,UACbC,UAAWl1W,EAAEk1W,UACbC,oBAAqBn1W,EAAEm1W,oBACvBC,SAAUp1W,EAAEo1W,SACZC,aAAcr1W,EAAEq1W,aAChBC,UAAWt1W,EAAEs1W,UACbC,aAAcv1W,EAAEu1W,aAChBC,SAAUx1W,EAAEw1W,SACZC,WAAYz1W,EAAEy1W,WACdC,kBAAmB11W,EAAE01W,kBACrBC,YAAa31W,EAAE21W,YACfC,cAAe51W,EAAE41W,cACjBC,OAAQ71W,EAAE61W,OACV92T,MAAO/+C,EAAE++C,MACT+2T,WAAY91W,EAAE81W,WACdz0P,aAAcrhH,EAAEqhH,aAChB00P,MAAO/1W,EAAE+1W,MACT18B,OAAQr5U,EAAEq5U,SAER/2J,EAAIp0K,EAAE8nW,OACN/4V,EAAIusI,IAAMt7I,EAAEs0G,OAChB,GAAIvgH,EAAG,OAAOA,EAAE,CACdioM,QAAS5nB,EACTypB,SAAU9uL,IAGZ,IAAIyjC,EAAI,CACNw9R,gBAAiB,SAAW7hL,EAAI,oBAAsB,OACtDghD,QAAS,cACT6iG,WAAY,SACZ30Q,MAAO,SAAW8wH,EAAI,OAAS,qBAC/B+oG,UAAW,+DACXllG,QAAS,EACTilG,aAAc,EACd25E,OAAQ,wBACR1+B,SAAU,GACVuG,WAAY,MACZ4hD,WAAY,sBAEVhlM,EAAI,CACNikB,OAAQ,UACR02J,gBAAiB,SAAW7hL,EAAI,UAAY,OAC5C9wH,MAAO,SAAW8wH,EAAI,OAAS,qBAC/B/tH,QAAS,GAEP7sC,EAAIwb,EAAI1e,OAAOgB,OAAO,GAAImhD,EAAGp/C,GAAKiC,EAAIhF,OAAOgB,OAAO,GAAImhD,EAAG6iH,GAAK5jK,EAAIpB,OAAOgB,OAAO,GAAImhD,EAAG,CAC3F8mI,OAAQ,UACRl5I,QAAS,KACNoS,EAEL,OAAOpiD,EAAEiF,EAAE80K,cAAc3uI,EAAG,CAC1B0gK,aAAc,WACZ,OAAO9nM,GAAE,IAEXgoM,aAAc,WACZhoM,GAAE,GAAKsI,GAAE,IAEXgiN,YAAa,WACX,OAAOhiN,GAAE,IAEXqrW,UAAW,WACT,OAAOrrW,GAAE,IAEXs/L,QAAS5nB,EACTt2I,MAAOvqC,EACPsY,KAAM/W,EACN+oM,SAAU9uL,EACVmjK,UAAW3gL,GACV,CAACygC,GAAK5hC,EAAEiF,EAAE80K,cAAc72K,EAAG,CAC5BoD,IAAK,EACL6rP,OAAQltP,IACNjF,EAAEiF,EAAE80K,cAAc15K,EAAG,CACvBwhL,KAAMjgJ,EACNt7B,IAAK,GACJrD,GAAKlD,KAGVsB,EAAE8C,EAAEjD,GAAIG,EAAEtB,EAAEmB,EAAG,WAAW,WACxB,OAAO68J,KACL18J,EAAEtB,EAAEmB,EAAG,eAAe,WACxB,OAAO68J,KACL18J,EAAEtB,EAAEmB,EAAG,gBAAgB,WACzB,OAAOgqJ,KACL7pJ,EAAEtB,EAAEmB,EAAG,kBAAkB,WAC3B,OAAOusB,KACLpsB,EAAEtB,EAAEmB,EAAG,mBAAmB,WAC5B,OAAO0gC,KAET,IAAI39B,EAAI5C,EAAE,GACNrB,EAAIqB,EAAEA,EAAE4C,GACRwpB,GAAKpsB,EAAE,GAAI,SAAUK,GACvB,SAASR,EAAEQ,GACT,IAAIR,EAAIQ,EAAEk2W,kBACNv2W,EAAIK,EAAEm2W,iBAAgB,GAC1Bn2W,EAAEo2W,SAAW52W,EAAE62W,QAASr2W,EAAEs2W,SAAW32W,EAAGK,EAAEu2W,QAAU52W,EAAE62W,SAAUx2W,EAAEy2W,YAAc92W,EAAE+2W,aAAc12W,EAAE22W,WAAa,CAC7GP,SAAU52W,EAAE62W,QACZO,SAAUp3W,EAAEq3W,cACZC,MAAOt3W,EAAEu3W,WACTzwW,KAAM9G,EAAEopO,UACRouI,UAAWx3W,EAAEy3W,eACbtoP,WAAYnvH,EAAE03W,iBACbx3W,EAAEM,GAGP,SAASL,EAAEK,GACT,GAAIA,GAAKA,EAAE8xF,iBAAkBvxF,EAAG,CAC9B,IAAIZ,EAAIwpF,OAAOguR,KAAKC,MAAMC,kBACtB/0W,EAAI,CACN+2U,OAAQ52J,GAEV9jL,IAAK,SAAW8C,EAAI9B,EAAE23W,mBAAmBh1W,GAAGnB,MAAK,SAAUnB,GACzD,OAAON,EAAEM,MACR,SAAUA,GACX,OAAOgD,EAAEhD,MACNL,EAAEq2W,OAAO1zW,GAAGnB,MAAK,SAAUnB,GAC9B,OAAOR,EAAEQ,MACR,SAAUA,GACX,OAAOgD,EAAEhD,OAKf,IAAIyC,EAAIzC,EAAEs7P,UACN57P,OAAI,IAAW+C,EAAI,aAAiBA,EACpCc,EAAIvD,EAAEg1W,mBACNpqW,OAAI,IAAWrH,EAAI,aAAiBA,EACpCmmC,EAAI1pC,EAAEk1W,UACNlyW,OAAI,IAAW0mC,EAAI,aAAiBA,EACpCjqC,EAAIO,EAAEi1W,UACNt2W,OAAI,IAAWc,EAAI,aAAiBA,EACpC+B,EAAIxB,EAAEm1W,oBACN5zW,EAAIvB,EAAEo1W,SACN92W,EAAI0B,EAAEq1W,aACNtpV,EAAI/rB,EAAEs1W,UACNrzW,EAAIjC,EAAEu1W,aACNl5M,EAAIr8J,EAAEw1W,SACNt1U,EAAIlgC,EAAEy1W,WACNjsN,EAAIxpJ,EAAE01W,kBACNxnW,EAAIlO,EAAE21W,YACNrzL,EAAItiL,EAAE41W,cACN34V,EAAIjd,EAAE61W,OACNn1T,EAAI1gD,EAAE++C,MACNwkH,EAAIvjK,EAAE81W,WACNr0W,EAAIzB,EAAEqhH,aACN0iD,EAAI/jK,EAAE+1W,MACNnyQ,OAAI,IAAWmgE,EAAI,oCAAsCA,EACzD0e,EAAIziL,EAAEq5U,OACNn3J,EAAI5/K,EAAE/D,OAAOgE,EAAEi8S,SAATjgT,EAAmB,GAAK,GAC9BgC,EAAI2hL,EAAE,GACNz/B,EAAIy/B,EAAE,GACV,OAAO3jL,OAAOgE,EAAE8sS,UAAT9wS,EAAoB,WACzB,IAAIyB,GAAI,EACJL,EAAI6B,GAAKwB,EACb,OAAO1B,EAAEwsB,SAAU,SAAU,eAAgB81E,GAAG,WAC9C,IAAIthG,EAAI,CACNi1W,UAAWh2W,EACXi2W,cAAel5W,EACfm5W,WAAY1rV,EACZ2rV,cAAez1W,EACf01W,oBAAqBnuN,EACrBosN,cAAetzL,EACfs1L,QAAS36V,EACT46V,aAAc3pW,EACd6wC,MAAO2B,EACPo3T,YAAav0M,GAEf,SAAW9hK,IAAMa,EAAEw1W,YAAc,WAAY3uR,OAAOguR,KAAK14P,KAAK,SAAS,WACrE,IAAIh8G,EAAI0mF,OAAOguR,KAAKC,MAAMC,kBAC1B50W,EAAIA,EAAEtB,MAAK,WACTnB,IAAMkgC,GAAKz9B,EAAEgzW,WAAWtnW,OAASs0I,GAAE,GAAK73I,GAAE,GAAKpL,EAAEiD,EAAEs1W,YAAY5pW,SAAWs0I,GAAE,GAAK73I,GAAE,QAClF,SAAU5K,GACXgD,EAAEhD,MACCmpF,OAAOguR,KAAKC,MAAMp6S,KAAK16D,GAAGnB,MAAK,SAAUxB,GAC5C,IAAKK,EAAG,CACNyiJ,GAAE,GACF,IAAIngJ,EAAI49B,GAAKvgC,EAAE81W,WAAWtnW,MAC1BvD,EAAEtI,GAAIA,GAAK9C,EAAEG,EAAEo4W,YAAY5pW,WAE5B,SAAUnO,GACXyiJ,GAAE,GAAK73I,GAAE,GAAKjL,EAAEK,YAGnB,SAAUA,GACXL,EAAEK,MACA,WACFA,GAAI,EAAI3B,EAAEyvB,SAAU,mBAErB,IAAKvvB,OAAOgE,EAAE8sS,UAAT9wS,EAAoB,WAC1B89J,GAAK18J,MACJ,CAACY,IAAK,CACPy1W,OAAQr2W,EACR6iH,OAAQjiH,KAIZ,SAAS0B,EAAEjC,GACT,IAAIR,EAAIwD,EAAEzE,OAAOgE,EAAEi8S,SAATjgT,EAAmB,GAAK,GAC9BoB,EAAIH,EAAE,GACN8C,EAAI9C,EAAE,GACNiD,EAAIO,EAAEzE,OAAOgE,EAAEi8S,SAATjgT,EAAmB,GAAK,GAC9BmB,EAAI+C,EAAE,GACNc,EAAId,EAAE,GACNmI,EAAI5K,EAAEg2K,IACNtsI,EAAI1pC,EAAE+Z,KACNta,EAAIO,EAAEogL,UACN9+K,EAAItB,EAAE80W,cACNz2W,EAAI2B,EAAE+0W,WACNxzW,EAAIvB,EAAE45B,SACN7N,EAAI/rB,EAAEqoD,OACNpmD,EAAIjC,EAAEmqO,MACN9tE,EAAIr8J,EAAEmgL,KACN32B,EAAIxpJ,EAAE+rM,SACN79L,EAAIgyB,EAAE,CACR61U,MAAO/1W,EAAE+1W,MACTb,UAAWl1W,EAAEk1W,UACbC,oBAAqBn1W,EAAEm1W,oBACvBC,SAAUp1W,EAAEo1W,SACZC,aAAcr1W,EAAEq1W,aAChBC,UAAWt1W,EAAEs1W,UACbC,aAAcv1W,EAAEu1W,aAChBG,kBAAmB11W,EAAE01W,kBACrBE,cAAe51W,EAAE41W,cACjBC,OAAQ71W,EAAE61W,OACVF,YAAa31W,EAAE21W,YACf52T,MAAO/+C,EAAE++C,MACT+2T,WAAY91W,EAAE81W,WACdkC,gBAAiBh4W,EAAEg4W,kBAEjB11L,EAAIp0K,EAAE+pW,QACNh7V,EAAIusI,IAAMt7I,EAAEs0G,OAChB,GAAIz2F,EAAG,OAAOA,EAAE,CACdm+K,QAAS5nB,EACTypB,SAAU9uL,IAGZ,IAAIyjC,EAAI,CACNw9R,gBAAiB,SAAWj8U,EAAI,oBAAsB,OACtDo7M,QAAS,cACT6iG,WAAY,SACZ30Q,MAAO,SAAWtpC,EAAI,OAAS,qBAC/BmjQ,UAAW,+DACXllG,QAAS,EACTilG,aAAc,EACd25E,OAAQ,wBACR1+B,SAAU,GACVuG,WAAY,MACZ4hD,WAAY,sBAEVhlM,EAAI,CACNikB,OAAQ,UACR02J,gBAAiB,SAAWj8U,EAAI,UAAY,OAC5CspC,MAAO,SAAWtpC,EAAI,OAAS,qBAC/BqsC,QAAS,GAEP7sC,EAAIwb,EAAI1e,OAAOgB,OAAO,GAAImhD,EAAGp/C,GAAK5B,EAAInB,OAAOgB,OAAO,GAAImhD,EAAG6iH,GAAK5jK,EAAIpB,OAAOgB,OAAO,GAAImhD,EAAG,CAC3F8mI,OAAQ,UACRl5I,QAAS,KACNoS,EAEL,OAAOpiD,EAAEiF,EAAE80K,cAAcztK,EAAG,CAC1Bw/L,aAAc,WACZ,OAAO9nM,GAAE,IAEXgoM,aAAc,WACZhoM,GAAE,GAAKiB,GAAE,IAEXqpN,YAAa,WACX,OAAOrpN,GAAE,IAEX0yW,UAAW,WACT,OAAO1yW,GAAE,IAEX2mM,QAAS5nB,EACTt2I,MAAOvqC,EACPsY,KAAM2vB,EACNqiK,SAAU9uL,EACVmjK,UAAW3gL,GACV,CAAC48J,GAAK/9J,EAAEiF,EAAE80K,cAAc72K,EAAG,CAC5BoD,IAAK,EACL6rP,OAAQ/wP,IACNpB,EAAEiF,EAAE80K,cAAc15K,EAAG,CACvBwhL,KAAM9jB,EACNz3J,IAAK,GACJrD,GAAKlD,KAGVkD,EAAEkuM,aAAe,CACf11L,KAAM,SACNi8J,IAAK,SACL++L,WAAY,sBACZh2T,MAAO,gBACP+2T,WAAY,SACZz8B,OAAQ,GACRg8B,aAAc,qBACdK,mBAAmB,EACnBD,YAAY,EACZI,OAAQ,QACRf,cAAe,CACbxmU,QAAS,IAEX6xI,MAAM,EACNgqD,MAAO,QACP8qI,UAAW,cAGb,IAAI54M,EAAI96J,EACJ2+B,EAAI,SAAWlgC,GACjB,IAAIR,EAAIQ,EAAE+1W,MACNp2W,OAAI,IAAWH,EAAI,oCAAsCA,EACzD8C,EAAItC,EAAEk1W,UACNzyW,EAAIzC,EAAEm1W,oBACNz1W,EAAIM,EAAEo1W,SACN7xW,EAAIvD,EAAEq1W,aACN3rU,EAAI1pC,EAAEs1W,UACNtyW,EAAIhD,EAAEu1W,aACN91W,EAAIO,EAAE01W,kBACN/2W,EAAIqB,EAAE41W,cACNp0W,EAAIxB,EAAE61W,OACNt0W,EAAIvB,EAAE21W,YACNr3W,EAAI0B,EAAE++C,MACNhzB,EAAI/rB,EAAE81W,WACN7zW,EAAIjC,EAAEg4W,gBACN37M,EAAIzxJ,EAAErM,OAAOgE,EAAEi8S,SAATjgT,EAAmB,GAAK,GAC9B2hC,EAAIm8H,EAAE,GACN7S,EAAI6S,EAAE,GACNnuJ,EAAI3P,OAAOgE,EAAE6sS,YAAT7wS,EAAsB,WAC5B,GAAI4qF,OAAOguR,KAAM,CACf,IAAIn3W,EAAImpF,OAAOguR,KAAKC,MAAMC,kBAC1B,MAAQr3W,GAAKA,EAAEmB,MAAK,WAClBnB,EAAEi4W,UAAU92W,MAAK,WACfnB,EAAEi2H,aAAch0H,UAEjB,SAAUjC,GACX,OAAOsC,EAAEtC,SAGZ,CAACiC,IACJ,OAAO1D,OAAOgE,EAAE8sS,UAAT9wS,EAAoB,WACzB,IAAIyB,EAAIyC,GAAKH,EACb,OAAOhB,EAAEwsB,SAAU,SAAU,eAAgBnuB,GAAG,WAC9C,IAAIH,EAAI,CACN+3W,UAAW73W,EACX83W,cAAej0W,EACfk0W,WAAY/tU,EACZguU,cAAe10W,EACf20W,oBAAqBl4W,EACrBm2W,cAAej3W,EACfi5W,QAASp2W,EACTq2W,aAAct2W,EACdw9C,MAAOzgD,EACPw5W,YAAa/rV,GAEfo9D,OAAOguR,KAAK14P,KAAK,SAAS,WACxBt1B,OAAOguR,KAAKC,MAAMC,kBAAoB7tN,GAAE,GAAMrgE,OAAOguR,KAAKC,MAAMp6S,KAAKx9D,GAAG2B,MAAK,WAC3E,OAAOqoJ,GAAE,MACR,SAAUhqJ,GACX,OAAOQ,EAAER,YAGZ,SAAUA,GACXQ,EAAER,MACA,WACFnB,EAAEyvB,SAAU,mBAEb,IAAK,CACNmqV,QAAS/pW,EACTs0G,OAAQtiF,IAIZj+B,EAAEwtM,aAAe,CACf11L,KAAM,SACNi8J,IAAK,SACL++L,WAAY,mBACZD,cAAe,CACbxmU,QAAS,IAEX6xI,MAAM,EACNgqD,MAAO,QACP4rI,MAAO,qCAET,IAAIvsN,EAAIvnJ,IACNzC,EAAEoL,EAAItI,EAAG9C,EAAEnB,EAAI,SAAU2B,EAAGL,EAAG2C,GACjC9C,EAAE8C,EAAEtC,EAAGL,IAAMpB,OAAOwG,eAAe/E,EAAGL,EAAG,CACvC4E,YAAY,EACZ4J,IAAK7L,KAEN9C,EAAEiD,EAAI,SAAUzC,GACjB,oBAAsB+B,QAAUA,OAAOqkN,aAAe7nN,OAAOwG,eAAe/E,EAAG+B,OAAOqkN,YAAa,CACjGvlN,MAAO,WACLtC,OAAOwG,eAAe/E,EAAG,aAAc,CACzCa,OAAO,KAERrB,EAAEA,EAAI,SAAUQ,EAAGL,GACpB,GAAI,EAAIA,IAAMK,EAAIR,EAAEQ,IAAK,EAAIL,EAAG,OAAOK,EACvC,GAAI,EAAIL,GAAK,iBAAmBK,GAAKA,GAAKA,EAAE0/I,WAAY,OAAO1/I,EAC/D,IAAIsC,EAAI/D,OAAOc,OAAO,MACtB,GAAIG,EAAEiD,EAAEH,GAAI/D,OAAOwG,eAAezC,EAAG,UAAW,CAC9CiC,YAAY,EACZ1D,MAAOb,IACL,EAAIL,GAAK,iBAAmBK,EAAG,IAAK,IAAIyC,KAAKzC,EAC/CR,EAAEnB,EAAEiE,EAAGG,EAAG,SAAUjD,GAClB,OAAOQ,EAAER,IACTiM,KAAK,KAAMhJ,IAEf,OAAOH,GACN9C,EAAEG,EAAI,SAAUK,GACjB,IAAIL,EAAIK,GAAKA,EAAE0/I,WAAa,WAC1B,OAAO1/I,EAAEo+I,SACP,WACF,OAAOp+I,GAET,OAAOR,EAAEnB,EAAEsB,EAAG,IAAKA,GAAIA,GACtBH,EAAE8C,EAAI,SAAUtC,EAAGR,GACpB,OAAOjB,OAAOK,UAAUC,eAAeC,KAAKkB,EAAGR,IAC9CA,EAAEb,EAAI,GAAIa,EAAEA,EAAEC,EAAI,GAErB,SAASD,EAAEQ,GACT,GAAIsC,EAAEtC,GAAI,OAAOsC,EAAEtC,GAAG8D,QACtB,IAAIrB,EAAIH,EAAEtC,GAAK,CACbN,EAAGM,EACHgD,GAAG,EACHc,QAAS,IAEX,OAAOnE,EAAEK,GAAGlB,KAAK2D,EAAEqB,QAASrB,EAAGA,EAAEqB,QAAStE,GAAIiD,EAAEO,GAAI,EAAIP,EAAEqB,QAG5D,IAAInE,EAAG2C,EA7uBoE9C,CAAE,EAAQ,K,gBCC/E,IAAUQ,EAD0C6D,EAAOC,SACjD9D,EAD6D,EAAQ,GAE9E,SAAUA,GACf,SAASR,EAAEG,GACT,GAAI2C,EAAE3C,GAAI,OAAO2C,EAAE3C,GAAGmE,QACtB,IAAIrB,EAAIH,EAAE3C,GAAK,CACbmE,QAAS,GACT44B,GAAI/8B,EACJ6iH,QAAQ,GAEV,OAAOxiH,EAAEL,GAAGb,KAAK2D,EAAEqB,QAASrB,EAAGA,EAAEqB,QAAStE,GAAIiD,EAAE+/G,QAAS,EAAI//G,EAAEqB,QAGjE,IAAIxB,EAAI,GACR,OAAO9C,EAAE+C,EAAIvC,EAAGR,EAAEoL,EAAItI,EAAG9C,EAAEb,EAAI,GAAIa,EAAE,GAZhC,CAaL,CAAC,SAAUQ,EAAGR,EAAG8C,GACjBtC,EAAE8D,QAAUxB,EAAE,IACb,SAAUtC,EAAGR,EAAG8C,GACjBtC,EAAE8D,QAAUxB,EAAE,EAAFA,IACX,SAAU9C,EAAG8C,GACd9C,EAAEsE,QAAU9D,GACX,SAAUA,EAAGR,GACd,aAEAjB,OAAOwG,eAAevF,EAAG,aAAc,CACrCqB,OAAO,IACLrB,EAAW,QAAI,SAAUQ,EAAGR,GAC9B,OAAO0hH,mBAAmBlhH,EAAE2K,QAAQ,IAAI2xH,OAAO,eAAiB5xH,mBAAmBlL,GAAGmL,QAAQ,YAAa,QAAU,uBAAwB,KAAM,SAEpJ,SAAU3K,EAAGR,EAAG8C,GACjB,aAEA,SAAS3C,EAAEK,GACT,OAAOA,GAAKA,EAAE0/I,WAAa1/I,EAAI,CAC7B,QAAWA,GAIf,SAASyC,EAAEzC,EAAGR,GACZ,KAAMQ,aAAaR,GAAI,MAAM,IAAIR,UAAU,qCAG7C,SAASU,EAAEM,EAAGR,GACZ,IAAKQ,EAAG,MAAM,IAAIy5J,eAAe,6DACjC,OAAQj6J,GAAK,iBAAmBA,GAAK,mBAAqBA,EAAIQ,EAAIR,EAepEjB,OAAOwG,eAAevF,EAAG,aAAc,CACrCqB,OAAO,IAGT,IAAIpB,EAAIlB,OAAOgB,QAAU,SAAUS,GACjC,IAAK,IAAIR,EAAI,EAAGA,EAAII,UAAUC,OAAQL,IAAK,CACzC,IAAI8C,EAAI1C,UAAUJ,GAElB,IAAK,IAAIG,KAAK2C,EACZ/D,OAAOK,UAAUC,eAAeC,KAAKwD,EAAG3C,KAAOK,EAAEL,GAAK2C,EAAE3C,IAI5D,OAAOK,GAEL4K,EAAI,WACN,SAAS5K,EAAEA,EAAGR,GACZ,IAAK,IAAI8C,EAAI,EAAGA,EAAI9C,EAAEK,OAAQyC,IAAK,CACjC,IAAI3C,EAAIH,EAAE8C,GACV3C,EAAE4E,WAAa5E,EAAE4E,aAAc,EAAI5E,EAAEiM,cAAe,EAAI,UAAWjM,IAAMA,EAAEgM,UAAW,GAAKpN,OAAOwG,eAAe/E,EAAGL,EAAEiF,IAAKjF,IAI/H,OAAO,SAAUH,EAAG8C,EAAG3C,GACrB,OAAO2C,GAAKtC,EAAER,EAAEZ,UAAW0D,GAAI3C,GAAKK,EAAER,EAAGG,GAAIH,GATzC,GAaJwD,EAAIrD,EADA2C,EAAE,IAGN3D,EAAIgB,EADA2C,EAAE,IAGNhE,EAAIqB,EADA2C,EAAE,IAGNypB,EAAIpsB,EADA2C,EAAE,IAWNC,EAAI,SAAUvC,GAChB,SAASR,IACP,IAAIQ,EAAGsC,EAAG3C,EACV8C,EAAEtD,KAAMK,GAER,IAAK,IAAIoL,EAAIhL,UAAUC,OAAQ6pC,EAAIhrC,MAAMkM,GAAI5H,EAAI,EAAGA,EAAI4H,EAAG5H,IACzD0mC,EAAE1mC,GAAKpD,UAAUoD,GAGnB,OAAOV,EAAI3C,EAAID,EAAEP,MAAOa,EAAIR,EAAEf,WAAaF,OAAO+M,eAAe9L,IAAIV,KAAKgB,MAAME,EAAG,CAACb,MAAM+D,OAAOwmC,KAAM/pC,EAAE04D,MAAQ,CAC/G6/S,aAAa,EACbC,cAAc,GACbx4W,EAAEy4W,YAAc,SAAUp4W,GAC3BmpF,OAAOkvR,GAAGC,IAAI,MAAO,CACnBC,OAAQ54W,EAAE++I,MAAMymN,SAChBt8B,OAAQlpU,EAAE++I,MAAMmqL,SACf,SAAUrpU,GACXC,EAAED,EAAGQ,GAAIL,EAAE++I,MAAMz0I,SAASzK,OAE3BG,EAAE64W,gBAAkB,SAAUx4W,GAC/BL,EAAE84W,kBAAkB,CAClBN,cAAc,IACZn4W,EAAE04W,aAAe/4W,EAAEy4W,YAAYp4W,EAAE04W,cAAgB/4W,EAAE++I,MAAMw2N,UAAYv1W,EAAE++I,MAAMw2N,UAAU,CACzF1uS,OAAQxmE,EAAEwmE,SACP7mE,EAAE++I,MAAMz0I,SAAS,CACpBu8D,OAAQxmE,EAAEwmE,UAEX7mE,EAAEg5W,uBAAyB,SAAU34W,GACtC,cAAgBA,EAAEwmE,OAAS7mE,EAAE64W,gBAAgBx4W,GAAKmpF,OAAOkvR,GAAGO,OAAM,SAAU54W,GAC1E,OAAOL,EAAE64W,gBAAgBx4W,MACxB,IACFL,EAAE40S,MAAQ,SAAUv0S,GACrB,GAAIL,EAAE04D,MAAM6/S,cAAgBv4W,EAAE04D,MAAM8/S,eAAiBx4W,EAAE++I,MAAMiuD,WAAY,CACvEhtM,EAAEy9D,SAAS,CACT+6S,cAAc,IAEhB,IAAI34W,EAAIG,EAAE++I,MACNp8I,EAAI9C,EAAEu/C,MACNt8C,EAAIjD,EAAEq5W,MACNn5W,EAAIF,EAAE0qM,QACN3mM,EAAI/D,EAAEs5W,aACNr5W,EAAID,EAAE6hH,aACNz2G,EAAIpL,EAAEm2W,YACNjsU,EAAIlqC,EAAEu5W,sBACN/1W,EAAIxD,EAAEw5W,SACN13W,EAAI9B,EAAE64D,MAEV,GAAI,mBAAqB34D,IAAMA,EAAEM,IAAKA,EAAEi5W,kBAAmB,CACzD,IAAIt6W,EAAI,CACN44W,UAAW90W,EACXo1W,aAAcjtW,EACdytD,MAAO/2D,EACP43W,cAAe31W,EACfw7C,MAAOz8C,EACP62W,cAAe15W,EACf25W,UAAWp2W,GAEb,GAAIrD,EAAE++I,MAAM26N,WAAa3vU,EAAGy/C,OAAOk4K,SAAS9P,KAAO,yCAA0C,EAAIjzP,EAAW,SAAGK,OAAQ,CACrH,IAAKwqF,OAAOkvR,GAAI,YAAa14W,EAAE++I,MAAMw2N,WAAav1W,EAAE++I,MAAMw2N,UAAU,CAClE1uS,OAAQ,uBAEV2iB,OAAOkvR,GAAGO,MAAMj5W,EAAE64W,gBAAiB,CACjCz5T,MAAOz8C,EACP42W,cAAe31W,EACf61W,UAAWz6W,EAAEy6W,gBAKb15W,EAAEC,EAAL2C,GAGT,OAhIF,SAAWtC,EAAGR,GACZ,GAAI,mBAAqBA,GAAK,OAASA,EAAG,MAAM,IAAIR,UAAU,kEAAoEQ,GAClIQ,EAAEpB,UAAYL,OAAOc,OAAOG,GAAKA,EAAEZ,UAAW,CAC5CQ,YAAa,CACXyB,MAAOb,EACPuE,YAAY,EACZoH,UAAU,EACVC,cAAc,KAEdpM,IAAMjB,OAAOC,eAAiBD,OAAOC,eAAewB,EAAGR,GAAKQ,EAAEvB,UAAYe,GAuHvE+D,CAAE/D,EAAGQ,GAAI4K,EAAEpL,EAAG,CAAC,CACpBoF,IAAK,oBACL/D,MAAO,WACL,GAAI1B,KAAKm6W,YAAa,EAAIxrV,SAAS4mV,eAAe,kBAA+Bv1W,KAAKo6W,gBAAtF,CACAp6W,KAAKq6W,iBAAkBr6W,KAAKs6W,wBAC5B,IAAIz5W,EAAI8tB,SAAS4mV,eAAe,WAChC10W,KAAMA,EAAI8tB,SAASuqJ,cAAc,QAAU37I,GAAK,UAAW5O,SAASzsB,KAAKi8M,YAAYt9M,OAEtF,CACD4E,IAAK,4BACL/D,MAAO,SAAeb,GACpBb,KAAKk5D,MAAM6/S,aAAel4W,EAAEw1W,WAAar2W,KAAKu/I,MAAM82N,UAAYrsR,OAAOkvR,GAAGqB,eAAev6W,KAAKw5W,0BAE/F,CACD/zW,IAAK,uBACL/D,MAAO,WACL1B,KAAKm6W,YAAa,IAEnB,CACD10W,IAAK,oBACL/D,MAAO,SAAeb,GACpBb,KAAKm6W,YAAcn6W,KAAKi+D,SAASp9D,KAElC,CACD4E,IAAK,iBACL/D,MAAO,WACL,IAAIb,EAAIb,KACJK,EAAIL,KAAKu/I,MACTp8I,EAAI9C,EAAEq5W,MACNl5W,EAAIH,EAAEm6W,MACNl3W,EAAIjD,EAAEo6W,OACNl6W,EAAIF,EAAEmwB,QACNpsB,EAAI/D,EAAEg2W,SAEVrsR,OAAO0wR,YAAc,WACnB1wR,OAAOkvR,GAAGr7S,KAAK,CACbrtC,QAAS,IAAMjwB,EACfm5W,MAAOv2W,EACPq3W,MAAOh6W,EACPi6W,OAAQn3W,IACNzC,EAAEy4W,kBAAkB,CACtBP,aAAa,KACV30W,GAAKvD,EAAE85W,uBAAyB3wR,OAAOkvR,GAAGqB,eAAe15W,EAAE24W,2BAGnE,CACD/zW,IAAK,qBACL/D,MAAO,WACL,IAAIb,EAAImpF,OAAOk4K,SAASp+I,OACxB,OAAO,EAAIl3F,EAAW,SAAG/rB,EAAG,UAAW,EAAI+rB,EAAW,SAAG/rB,EAAG,oBAE7D,CACD4E,IAAK,YACL/D,MAAO,WACL1B,KAAKi+D,SAAS,CACZ86S,aAAa,MAGhB,CACDtzW,IAAK,wBACL/D,MAAO,WACL,IAAIb,EAAIb,KAAKu/I,MAAMymN,UAClB,SAAU3lW,EAAG8C,EAAG3C,GACf,IAAI8C,EAAIjD,EAAEi1W,qBAAqBnyW,GAAG,GAC9B5C,EAAI+C,EACJc,EAAId,EACRjD,EAAEk1W,eAAe/0W,MAAO4D,EAAI/D,EAAE64K,cAAc/1K,IAAMo6B,GAAK/8B,EAAG4D,EAAEsqB,IAAM,gCAAkC7tB,EAAI,UAAWN,EAAEslO,WAAWF,aAAavhO,EAAG7D,IAJjJ,CAKCouB,SAAU,SAAU,oBAEvB,CACDlpB,IAAK,SACL/D,MAAO,WACL,IAAIyB,EAAInD,KAAKu/I,MAAMr2F,OACnB,IAAK/lD,EAAG,MAAM,IAAImE,MAAM,uDACxB,IAAIzG,EAAI,CACNkqM,QAAS/qM,KAAKo1S,MACd5nG,aAAcxtM,KAAKu/I,MAAMiuD,WACzBwrK,aAAch5W,KAAKk5D,MAAM8/S,aACzBD,YAAa/4W,KAAKk5D,MAAM6/S,aAE1B,OAAO/4W,KAAKu/I,MAAMr2F,OAAOroD,OAExBR,EA1JC,CA2JNwD,EAAW,QAAE69I,WAEft+I,EAAEmoO,UAAY,CACZ/9B,WAAYhuM,EAAW,QAAEk/S,KACzB5zS,SAAUtL,EAAW,QAAEmhG,KAAKqvK,WAC5B0pG,MAAOl6W,EAAW,QAAEutC,OAAOijO,WAC3BwqG,MAAOh7W,EAAW,QAAEk/S,KACpB+7D,OAAQj7W,EAAW,QAAEk/S,KACrBm7D,SAAUr6W,EAAW,QAAEutC,OACvB6S,MAAOpgD,EAAW,QAAEutC,OACpBmsB,MAAO15D,EAAW,QAAEutC,OACpBm1E,aAAc1iH,EAAW,QAAEutC,OAC3B4sU,aAAcn6W,EAAW,QAAEk/S,KAC3B83D,YAAah3W,EAAW,QAAEutC,OAC1BspU,SAAU72W,EAAW,QAAEk/S,KACvBk7D,sBAAuBp6W,EAAW,QAAEk/S,KACpCw7D,SAAU16W,EAAW,QAAEk/S,KACvBgrB,OAAQlqU,EAAW,QAAEutC,OACrBvc,QAAShxB,EAAW,QAAEutC,OACtBi5T,SAAUxmW,EAAW,QAAEutC,OACvBg+J,QAASvrM,EAAW,QAAEmhG,KACtBo1Q,UAAWv2W,EAAW,QAAEmhG,KACxBz3C,OAAQ1pD,EAAW,QAAEmhG,KAAKqvK,YACzB5sQ,EAAEktM,aAAe,CAClBkmK,YAAa,oBAAsBxsR,OAASA,OAAOk4K,SAAS9P,KAAO,IACnExyM,MAAO,uBACP+5T,cAAc,EACda,OAAO,EACPC,QAAQ,EACRZ,SAAU,GACVnwC,OAAQ,OACRl5S,QAAS,MACTw1U,SAAU,QACV4T,uBAAuB,EACvBM,SAtMM,WACN,IAAIr5W,GAAI,EAER,IACEA,KAAOmpF,OAAOiB,WAAajB,OAAOiB,UAAU2vR,YAAc3vR,UAAU+uF,UAAU/qK,MAAM,UAAYg8E,UAAU+uF,UAAU/qK,MAAM,YAC1H,MAAO5O,IAET,OAAOQ,EA+LGwB,GACV0zW,UAAW,KACX78S,MAAO,iBACPgpD,aAAc,QACb7hH,EAAW,QAAI+C,GACjB,SAAUvC,EAAGR,GACd,aAEAjB,OAAOwG,eAAevF,EAAG,aAAc,CACrCqB,OAAO,IACLrB,EAAW,QAAI,SAAUQ,GAC3B,MAAO,IAAMzB,OAAO2F,KAAKlE,GAAG+G,KAAI,SAAUvH,GACxC,OAAOA,EAAI,IAAMkL,mBAAmB1K,EAAER,OACrCqpD,KAAK,OAET,SAAU7oD,EAAGR,EAAG8C,GACjB,aAEA,SAAS3C,KAET,IAAI8C,EAAIH,EAAE,GAEVtC,EAAE8D,QAAU,WACV,SAAS9D,EAAEA,EAAGR,EAAG8C,EAAG3C,EAAGD,EAAG6D,GACxB,GAAIA,IAAMd,EAAG,CACX,IAAIhD,EAAI,IAAIgH,MAAM,mLAClB,MAAMhH,EAAE6G,KAAO,sBAAuB7G,GAI1C,SAASD,IACP,OAAOQ,EAGTA,EAAEmvQ,WAAanvQ,EACf,IAAIsC,EAAI,CACNkY,MAAOxa,EACP69S,KAAM79S,EACN8/F,KAAM9/F,EACN6/P,OAAQ7/P,EACRgE,OAAQhE,EACRksC,OAAQlsC,EACRsjN,OAAQtjN,EACR89S,IAAK99S,EACL+9S,QAASv+S,EACTq+B,QAAS79B,EACTi+S,WAAYz+S,EACZg+H,KAAMx9H,EACNk+S,SAAU1+S,EACV2+S,MAAO3+S,EACP4+S,UAAW5+S,EACX8+B,MAAO9+B,EACP6+S,MAAO7+S,GAET,OAAO8C,EAAEg8S,eAAiB3+S,EAAG2C,EAAE8wR,UAAY9wR,EAAGA,IAE/C,SAAUtC,EAAGR,GACd,aAGAQ,EAAE8D,QADM,gDAEP,SAAU9D,EAAGR,EAAG8C,GACjB,aAEA,SAAS3C,EAAEK,GACT,OAAOA,GAAKA,EAAE0/I,WAAa1/I,EAAI,CAC7B,QAAWA,GAIf,SAASyC,EAAEzC,EAAGR,GACZ,KAAMQ,aAAaR,GAAI,MAAM,IAAIR,UAAU,qCAG7C,SAASU,EAAEM,EAAGR,GACZ,IAAKQ,EAAG,MAAM,IAAIy5J,eAAe,6DACjC,OAAQj6J,GAAK,iBAAmBA,GAAK,mBAAqBA,EAAIQ,EAAIR,EAepEjB,OAAOwG,eAAevF,EAAG,aAAc,CACrCqB,OAAO,IAGT,IAAIpB,EAAIlB,OAAOgB,QAAU,SAAUS,GACjC,IAAK,IAAIR,EAAI,EAAGA,EAAII,UAAUC,OAAQL,IAAK,CACzC,IAAI8C,EAAI1C,UAAUJ,GAElB,IAAK,IAAIG,KAAK2C,EACZ/D,OAAOK,UAAUC,eAAeC,KAAKwD,EAAG3C,KAAOK,EAAEL,GAAK2C,EAAE3C,IAI5D,OAAOK,GAEL4K,EAAI,WACN,SAAS5K,EAAEA,EAAGR,GACZ,IAAK,IAAI8C,EAAI,EAAGA,EAAI9C,EAAEK,OAAQyC,IAAK,CACjC,IAAI3C,EAAIH,EAAE8C,GACV3C,EAAE4E,WAAa5E,EAAE4E,aAAc,EAAI5E,EAAEiM,cAAe,EAAI,UAAWjM,IAAMA,EAAEgM,UAAW,GAAKpN,OAAOwG,eAAe/E,EAAGL,EAAEiF,IAAKjF,IAI/H,OAAO,SAAUH,EAAG8C,EAAG3C,GACrB,OAAO2C,GAAKtC,EAAER,EAAEZ,UAAW0D,GAAI3C,GAAKK,EAAER,EAAGG,GAAIH,GATzC,GAaJwD,EAAIrD,EADA2C,EAAE,IAGN3D,EAAIgB,EADA2C,EAAE,IAGNhE,EAAIqB,EADA2C,EAAE,IAGNypB,EAAIpsB,EADA2C,EAAE,IAKNC,EAAI,SAAUvC,GAChB,SAASR,IACP,OAAOiD,EAAEtD,KAAMK,GAAIE,EAAEP,MAAOK,EAAEf,WAAaF,OAAO+M,eAAe9L,IAAIM,MAAMX,KAAMS,YAGnF,OAvDF,SAAWI,EAAGR,GACZ,GAAI,mBAAqBA,GAAK,OAASA,EAAG,MAAM,IAAIR,UAAU,kEAAoEQ,GAClIQ,EAAEpB,UAAYL,OAAOc,OAAOG,GAAKA,EAAEZ,UAAW,CAC5CQ,YAAa,CACXyB,MAAOb,EACPuE,YAAY,EACZoH,UAAU,EACVC,cAAc,KAEdpM,IAAMjB,OAAOC,eAAiBD,OAAOC,eAAewB,EAAGR,GAAKQ,EAAEvB,UAAYe,GA8CvE+D,CAAE/D,EAAGQ,GAAI4K,EAAEpL,EAAG,CAAC,CACpBoF,IAAK,QACL/D,MAAO,WACL,IAAIb,EAAIb,KAAKC,YAAYqwM,aAAauqK,SACtC,OAAO76W,KAAKu/I,MAAMs7N,WAAah6W,GAAKgD,EAAW,QAAEq1K,cAAc,QAAS,CACtEgrD,wBAAyB,CACvBC,OAAQhlO,EAAW,aAIxB,CACDsG,IAAK,iBACL/D,MAAO,SAAeb,GACpB,IAAIR,EAAIQ,EAAEm4W,aACN71W,EAAItC,EAAEk4W,YACNv4W,EAAIK,EAAE2sM,WACNlqM,EAAI,CACN0+S,WAAY,gBAEd,OAAQ3hT,IAAM8C,GAAK3C,KAAO8C,EAAE6rC,QAAU,IAAK7uC,EAAEgD,EAAGtD,KAAKu/I,MAAMu7N,kBAE5D,CACDr1W,IAAK,kBACL/D,MAAO,SAAeb,GACpB,IAAIR,EAAIL,KAAKu/I,MACTp8I,EAAI9C,EAAEw6W,SACNr6W,EAAIH,EAAE6hC,KACN5+B,EAAIjD,EAAE2gL,KACNzgL,EAAIF,EAAE06W,WACN32W,EAAI/D,EAAE26W,WACNvvW,EAAIpL,EAAE46W,YACN1wU,EAAI1pC,EAAEkqM,QAENvrM,EAAI,iBAAmB8D,EACvBpE,EAAI,GACR,OAHQ2B,EAAE2sM,YAxCR,SAAW3sM,GACjB,MAAO,CAAC,SAAU,QAAS,SAAU,WAAY,WAAY,SAAU,YAAYC,SAASD,EAAI,IAAI+2G,gBAAkB,EA0CtGv1G,CAAErC,KAAKu/I,MAAMs3B,OAAS33K,EAAE0tM,UAAW,GAAK/oM,EAAW,QAAEq1K,cAAc,OAAQ,CACrFrsI,MAAO7sC,KAAK86W,eAAej6W,IAC1BrB,GAAKqE,EAAW,QAAEq1K,cAAc,OAAQ,CACzCqvI,IAAK,aACLn2D,KAAM,gFACJvuP,EAAW,QAAEq1K,cAAcl5K,KAAKu/I,MAAMs3B,IAAKv2K,EAAE,CAC/Csa,KAAMxW,EACN68K,UAAW99K,EAAI,IAAM3C,EACrBqsC,MAAOphC,EACPs/L,QAASxgK,GACRrrC,GAAIoE,GAAK9D,GAAKqE,EAAW,QAAEq1K,cAAc,IAAK,CAC/C+H,UAAW,MAAQ39K,IACjBA,IAAM9D,GAAK8D,EAAG/C,GAAIP,KAAK6sC,WAE5B,CACDpnC,IAAK,SACL/D,MAAO,WACL,IAAIb,EAAIb,KACR,OAAO6D,EAAW,QAAEq1K,cAActsJ,EAAW,QAAGtsB,EAAE,GAAIN,KAAKu/I,MAAO,CAChEr2F,OAAQ,SAAgB7oD,GACtB,OAAOQ,EAAEq6W,gBAAgB76W,WAI5BA,EAhEC,CAiENwD,EAAW,QAAE69I,WAEft+I,EAAEmoO,UAAY,CACZwvI,WAAYv7W,EAAW,QAAEutC,OACzBiuU,WAAYx7W,EAAW,QAAEutC,OACzB7K,KAAM1iC,EAAW,QAAEutC,OACnB8tU,SAAUr7W,EAAW,QAAEutC,OACvBi0I,KAAMxhL,EAAW,QAAEm/S,IACnBm8D,eAAgBt7W,EAAW,QAAEqF,OAC7Bo2W,YAAaz7W,EAAW,QAAEqF,OAC1BgyK,IAAKr3K,EAAW,QAAEy/S,UAAU,CAACz/S,EAAW,QAAE6+H,KAAM7+H,EAAW,QAAEmhG,QAC5Dv9F,EAAEktM,aAAe,CAClByqK,WAAY,sBACZC,WAAY,SACZ94U,KAAM,QACNwnS,OAAQ,OACRmxC,SAAU,qBACVhkM,IAAK,UACJx2K,EAAW,QAAI+C,GACjB,SAAUvC,EAAGR,EAAG8C,IACjB9C,EAAIQ,EAAE8D,QAAUxB,EAAE,GAAFA,IAAWF,KAAK,CAACpC,EAAE08B,GAAI,msBAAosB,KAAMl9B,EAAE86W,OAAS,CAC1vB,qBAAsB,qBACtBhhF,MAAO,QACPihF,OAAQ,SACRC,MAAO,QACPr4L,GAAI,OAEL,SAAUniL,EAAGR,GACdQ,EAAE8D,QAAU,WACV,IAAI9D,EAAI,GACR,OAAOA,EAAE8K,SAAW,WAClB,IAAK,IAAI9K,EAAI,GAAIR,EAAI,EAAGA,EAAIL,KAAKU,OAAQL,IAAK,CAC5C,IAAI8C,EAAInD,KAAKK,GACb8C,EAAE,GAAKtC,EAAEoC,KAAK,UAAYE,EAAE,GAAK,IAAMA,EAAE,GAAK,KAAOtC,EAAEoC,KAAKE,EAAE,IAGhE,OAAOtC,EAAE6oD,KAAK,KACb7oD,EAAEN,EAAI,SAAUF,EAAG8C,GACpB,iBAAmB9C,IAAMA,EAAI,CAAC,CAAC,KAAMA,EAAG,MAExC,IAAK,IAAIG,EAAI,GAAI8C,EAAI,EAAGA,EAAItD,KAAKU,OAAQ4C,IAAK,CAC5C,IAAI/C,EAAIP,KAAKsD,GAAG,GAChB,iBAAmB/C,IAAMC,EAAED,IAAK,GAGlC,IAAK+C,EAAI,EAAGA,EAAIjD,EAAEK,OAAQ4C,IAAK,CAC7B,IAAIc,EAAI/D,EAAEiD,GACV,iBAAmBc,EAAE,IAAM5D,EAAE4D,EAAE,MAAQjB,IAAMiB,EAAE,GAAKA,EAAE,GAAKjB,EAAIA,IAAMiB,EAAE,GAAK,IAAMA,EAAE,GAAK,UAAYjB,EAAI,KAAMtC,EAAEoC,KAAKmB,MAEvHvD,Q,8BCxhBT,0DAKIy6W,EAAuC,qBAAfz6N,WAA6BA,WAA+B,qBAAX72D,OAAyBA,OAA2B,qBAAX2xD,EAAyBA,EAAS,GAexJ,SAAS4/N,EAAmB75W,GAC1B,IAAI28G,EAAW,GACf,MAAO,CACLi9F,GAAI,SAAY/xM,GACd80G,EAASp7G,KAAKsG,IAEhBgyM,IAAK,SAAahyM,GAChB80G,EAAWA,EAASp5G,QAAO,SAAU2nB,GACnC,OAAOA,IAAMrjB,MAGjByF,IAAK,WACH,OAAOtN,GAETyc,IAAK,SAAa42B,EAAUymU,GAC1B95W,EAAQqzC,EACRspE,EAAS74G,SAAQ,SAAU+D,GACzB,OAAOA,EAAQ7H,EAAO85W,QAuI9B,IAAItsW,EAAQ,IAAMy4P,eA7HlB,SAA4Bs3F,EAAcwc,GACxC,IAAIC,EAAuBC,EAEvBC,EAAc,0BA3CpB,WACE,IAAIn2W,EAAM,uBACV,OAAO61W,EAAe71W,IAAQ61W,EAAe71W,IAAQ,GAAK,EAyCZo2W,GAAgB,KAE1Dt2K,EAAwB,SAAUmnC,GAGpC,SAASnnC,IACP,IAAI70G,EAIJ,OAFAA,EAAQg8I,EAAW/rO,MAAMX,KAAMS,YAAcT,MACvC87W,QAAUP,EAAmB7qR,EAAM6uD,MAAM79I,OACxCgvF,EAPT,YAAe60G,EAAUmnC,GAUzB,IAAIpnC,EAASC,EAAS9lM,UAoCtB,OAlCA6lM,EAAOsvF,gBAAkB,WACvB,IAAItsF,EAEJ,OAAOA,EAAO,IAASszK,GAAe57W,KAAK87W,QAASxzK,GAGtDhD,EAAOtkD,0BAA4B,SAAmCC,GACpE,GAAIjhJ,KAAKu/I,MAAM79I,QAAUu/I,EAAUv/I,MAAO,CACxC,IAEI85W,EAFAO,EAAW/7W,KAAKu/I,MAAM79I,MACtBqzC,EAAWksG,EAAUv/I,QA9DfqN,EAiEGgtW,MAjEA35W,EAiEU2yC,GA/Dd,IAANhmC,GAAW,EAAIA,IAAM,EAAI3M,EAEzB2M,IAAMA,GAAK3M,IAAMA,GA8DlBo5W,EAAc,GAEdA,EAA8C,oBAAzBC,EAAsCA,EAAqBM,EAAUhnU,GA5ExE,WAoFE,KAFpBymU,GAAe,IAGbx7W,KAAK87W,QAAQ39V,IAAI8iI,EAAUv/I,MAAO85W,IA7E9C,IAAkBzsW,EAAG3M,GAmFjBkjM,EAAOp8I,OAAS,WACd,OAAOlpD,KAAKu/I,MAAM9kH,UAGb8qK,EA/CmB,CAgD1B,aAEFA,EAAS8lC,oBAAqBqwI,EAAwB,IAA0BE,GAAe,IAAU/2W,OAAOmrQ,WAAY0rG,GAE5H,IAAIz1K,EAAwB,SAAU+1K,GAGpC,SAAS/1K,IACP,IAAIniJ,EAiBJ,OAfAA,EAASk4T,EAAYr7W,MAAMX,KAAMS,YAAcT,MACxCk5D,MAAQ,CACbx3D,MAAOoiD,EAAOk5E,YAGhBl5E,EAAOrzB,SAAW,SAAUskB,EAAUymU,GAGC,MAFI,EAAtB13T,EAAOm4T,cAENT,IAClB13T,EAAOma,SAAS,CACdv8D,MAAOoiD,EAAOk5E,cAKbl5E,EApBT,YAAemiJ,EAAU+1K,GAuBzB,IAAIE,EAAUj2K,EAASxmM,UAkCvB,OAhCAy8W,EAAQl7N,0BAA4B,SAAmCC,GACrE,IAAIg7N,EAAeh7N,EAAUg7N,aAC7Bj8W,KAAKi8W,kBAAgC50W,IAAjB40W,GAA+C,OAAjBA,EAhI5B,WAgI4EA,GAGpGC,EAAQ9sK,kBAAoB,WACtBpvM,KAAKwJ,QAAQoyW,IACf57W,KAAKwJ,QAAQoyW,GAAatgK,GAAGt7M,KAAKywB,UAGpC,IAAIwrV,EAAej8W,KAAKu/I,MAAM08N,aAC9Bj8W,KAAKi8W,kBAAgC50W,IAAjB40W,GAA+C,OAAjBA,EAzI5B,WAyI4EA,GAGpGC,EAAQt/M,qBAAuB,WACzB58J,KAAKwJ,QAAQoyW,IACf57W,KAAKwJ,QAAQoyW,GAAargK,IAAIv7M,KAAKywB,WAIvCyrV,EAAQl/O,SAAW,WACjB,OAAIh9H,KAAKwJ,QAAQoyW,GACR57W,KAAKwJ,QAAQoyW,GAAa5sW,MAE1BiwV,GAIXid,EAAQhzT,OAAS,WACf,OApHazuB,EAoHIz6B,KAAKu/I,MAAM9kH,SAnHzBl7B,MAAMwM,QAAQ0uB,GAAYA,EAAS,GAAKA,GAmHLz6B,KAAKk5D,MAAMx3D,OApHvD,IAAmB+4B,GAuHRwrK,EA1DmB,CA2D1B,aAGF,OADAA,EAASqlC,eAAgBqwI,EAAwB,IAA0BC,GAAe,IAAU/2W,OAAQ82W,GACrG,CACLp2K,SAAUA,EACVU,SAAUA,IAKC,Q,+CC3Kf,IAAIk2K,EAAU,EAAQ,KAOlB/wI,EAAgB,CAClBC,mBAAmB,EACnB+wI,aAAa,EACb9wI,cAAc,EACdh7B,cAAc,EACdnuD,aAAa,EACbk6N,iBAAiB,EACjBC,0BAA0B,EAC1Bv7N,0BAA0B,EAC1Bw7N,QAAQ,EACRhxI,WAAW,EACX3wN,MAAM,GAEJ4wN,EAAgB,CAClBrkO,MAAM,EACNzG,QAAQ,EACRjB,WAAW,EACXgsO,QAAQ,EACRzO,QAAQ,EACRv8N,WAAW,EACXirO,OAAO,GASL8wI,EAAe,CACjB,UAAY,EACZxrF,SAAS,EACT1gF,cAAc,EACdnuD,aAAa,EACbopF,WAAW,EACX3wN,MAAM,GAEJ+wN,EAAe,GAInB,SAAS8wI,EAAWjuH,GAElB,OAAI2tH,EAAQO,OAAOluH,GACVguH,EAIF7wI,EAAa6iB,EAAoB,WAAMpjB,EAVhDO,EAAawwI,EAAQQ,YAhBK,CACxB,UAAY,EACZzzT,QAAQ,EACRonJ,cAAc,EACdnuD,aAAa,EACbopF,WAAW,GAYbI,EAAawwI,EAAQS,MAAQJ,EAY7B,IAAI52W,EAAiBxG,OAAOwG,eACxBwrM,EAAsBhyM,OAAOgyM,oBAC7BrwM,EAAwB3B,OAAO2B,sBAC/BoE,EAA2B/F,OAAO+F,yBAClCgH,EAAiB/M,OAAO+M,eACxB2/N,EAAkB1sO,OAAOK,UAuC7BiF,EAAOC,QArCP,SAASqnO,EAAqBC,EAAiBC,EAAiBC,GAC9D,GAA+B,kBAApBD,EAA8B,CAEvC,GAAIJ,EAAiB,CACnB,IAAIM,EAAqBjgO,EAAe+/N,GAEpCE,GAAsBA,IAAuBN,GAC/CE,EAAqBC,EAAiBG,EAAoBD,GAI9D,IAAIpnO,EAAOqsM,EAAoB86B,GAE3BnrO,IACFgE,EAAOA,EAAKhB,OAAOhD,EAAsBmrO,KAM3C,IAHA,IAAIG,EAAgBowI,EAAWxwI,GAC3BK,EAAgBmwI,EAAWvwI,GAEtB3rO,EAAI,EAAGA,EAAIwE,EAAKrE,SAAUH,EAAG,CACpC,IAAIkF,EAAMV,EAAKxE,GAEf,IAAKirO,EAAc/lO,MAAU0mO,IAAaA,EAAU1mO,OAAW6mO,IAAiBA,EAAc7mO,OAAW4mO,IAAiBA,EAAc5mO,IAAO,CAC7I,IAAI02I,EAAah3I,EAAyB+mO,EAAiBzmO,GAE3D,IAEEG,EAAeqmO,EAAiBxmO,EAAK02I,GACrC,MAAOt7I,OAKf,OAAOorO,I,6BCrGM,SAASymB,EAAgBvvP,EAAG3D,GAMzC,OALAkzP,EAAkBtzP,OAAOC,gBAAkB,SAAyB8D,EAAG3D,GAErE,OADA2D,EAAE7D,UAAYE,EACP2D,IAGcA,EAAG3D,GCLb,SAASw3Q,EAAe/gD,EAAUC,GAC/CD,EAASx2N,UAAYL,OAAOc,OAAOg2N,EAAWz2N,WAC9Cw2N,EAASx2N,UAAUQ,YAAcg2N,EACjC,EAAeA,EAAUC,G,0BCJZ,SAASvD,IAetB,OAdAA,EAAWvzN,OAAOgB,QAAU,SAAUkF,GACpC,IAAK,IAAI/E,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CACzC,IAAIgF,EAAS9E,UAAUF,GAEvB,IAAK,IAAIkF,KAAOF,EACVnG,OAAOK,UAAUC,eAAeC,KAAK4F,EAAQE,KAC/CH,EAAOG,GAAOF,EAAOE,IAK3B,OAAOH,IAGO3E,MAAMX,KAAMS,WCf9B,SAASo8W,EAAW9lH,GAClB,MAA8B,MAAvBA,EAAS3pN,OAAO,GAIzB,SAAS0vU,EAAU9qS,EAAM9iE,GACvB,IAAK,IAAI3O,EAAI2O,EAAOqyC,EAAIhhD,EAAI,EAAGC,EAAIwxE,EAAKtxE,OAAQ6gD,EAAI/gD,EAAGD,GAAK,EAAGghD,GAAK,EAClEywB,EAAKzxE,GAAKyxE,EAAKzwB,GAGjBywB,EAAKhvE,MAwDQ,MApDf,SAAyBU,EAAIC,QACd0D,IAAT1D,IAAoBA,EAAO,IAC/B,IAgBIo5W,EAhBAC,EAAUt5W,GAAMA,EAAG+jE,MAAM,MAAQ,GACjCw1S,EAAYt5W,GAAQA,EAAK8jE,MAAM,MAAQ,GACvCy1S,EAAUx5W,GAAMm5W,EAAWn5W,GAC3By5W,EAAYx5W,GAAQk5W,EAAWl5W,GAC/By5W,EAAaF,GAAWC,EAW5B,GATIz5W,GAAMm5W,EAAWn5W,GAEnBu5W,EAAYD,EACHA,EAAQt8W,SAEjBu8W,EAAUj6W,MACVi6W,EAAYA,EAAUl5W,OAAOi5W,KAG1BC,EAAUv8W,OAAQ,MAAO,IAG9B,GAAIu8W,EAAUv8W,OAAQ,CACpB,IAAIgmG,EAAOu2Q,EAAUA,EAAUv8W,OAAS,GACxCq8W,EAA4B,MAATr2Q,GAAyB,OAATA,GAA0B,KAATA,OAEpDq2Q,GAAmB,EAKrB,IAFA,IAAI3nV,EAAK,EAEA70B,EAAI08W,EAAUv8W,OAAQH,GAAK,EAAGA,IAAK,CAC1C,IAAI88W,EAAOJ,EAAU18W,GAER,MAAT88W,EACFP,EAAUG,EAAW18W,GACH,OAAT88W,GACTP,EAAUG,EAAW18W,GACrB60B,KACSA,IACT0nV,EAAUG,EAAW18W,GACrB60B,KAIJ,IAAKgoV,EAAY,KAAOhoV,IAAMA,EAC5B6nV,EAAUviT,QAAQ,OAEhB0iT,GAA+B,KAAjBH,EAAU,IAAeA,EAAU,IAAOJ,EAAWI,EAAU,KAAMA,EAAUviT,QAAQ,IACzG,IAAI54D,EAASm7W,EAAUvzT,KAAK,KAE5B,OADIqzT,GAA0C,MAAtBj7W,EAAO6hH,QAAQ,KAAY7hH,GAAU,KACtDA,GCnCM,I,QCtBf,SAASw7W,EAAgBr3S,GACvB,MAA0B,MAAnBA,EAAK74B,OAAO,GAAa64B,EAAO,IAAMA,EAG/C,SAASs3S,EAAkBt3S,GACzB,MAA0B,MAAnBA,EAAK74B,OAAO,GAAa64B,EAAK09C,OAAO,GAAK19C,EAOnD,SAASu3S,EAAcv3S,EAAM0H,GAC3B,OALF,SAAqB1H,EAAM0H,GACzB,OAA4D,IAArD1H,EAAK2xC,cAAc92G,QAAQ6sE,EAAOiqC,iBAAuE,IAA/C,MAAM92G,QAAQmlE,EAAK74B,OAAOugC,EAAOjtE,SAI3F+8W,CAAYx3S,EAAM0H,GAAU1H,EAAK09C,OAAOh2C,EAAOjtE,QAAUulE,EAGlE,SAASy3S,EAAmBz3S,GAC1B,MAAwC,MAAjCA,EAAK74B,OAAO64B,EAAKvlE,OAAS,GAAaulE,EAAKniE,MAAM,GAAI,GAAKmiE,EA4BpE,SAAS0oD,EAAWuzI,GAClB,IAAInL,EAAWmL,EAASnL,SACpBjzI,EAASo+I,EAASp+I,OAClBzgE,EAAO6+M,EAAS7+M,KAChB4iB,EAAO8wL,GAAY,IAGvB,OAFIjzI,GAAqB,MAAXA,IAAgB79C,GAA6B,MAArB69C,EAAO12E,OAAO,GAAa02E,EAAS,IAAMA,GAC5EzgE,GAAiB,MAATA,IAAc4iB,GAA2B,MAAnB5iB,EAAKjW,OAAO,GAAaiW,EAAO,IAAMA,GACjE4iB,EAGT,SAAS03S,EAAe13S,EAAM/M,EAAOzzD,EAAKm4W,GACxC,IAAI17G,EAEgB,kBAATj8L,GAETi8L,EAxCJ,SAAmBj8L,GACjB,IAAI8wL,EAAW9wL,GAAQ,IACnB69C,EAAS,GACTzgE,EAAO,GACPw6T,EAAY9mH,EAASj2P,QAAQ,MAEd,IAAf+8W,IACFx6T,EAAO0zM,EAASpzI,OAAOk6P,GACvB9mH,EAAWA,EAASpzI,OAAO,EAAGk6P,IAGhC,IAAIC,EAAc/mH,EAASj2P,QAAQ,KAOnC,OALqB,IAAjBg9W,IACFh6P,EAASizI,EAASpzI,OAAOm6P,GACzB/mH,EAAWA,EAASpzI,OAAO,EAAGm6P,IAGzB,CACL/mH,SAAUA,EACVjzI,OAAmB,MAAXA,EAAiB,GAAKA,EAC9BzgE,KAAe,MAATA,EAAe,GAAKA,GAmBf06T,CAAU93S,IACZ/M,MAAQA,QAIS7xD,KAD1B66P,EAAWvvC,EAAS,GAAI1sJ,IACX8wL,WAAwBmL,EAASnL,SAAW,IAErDmL,EAASp+I,OACuB,MAA9Bo+I,EAASp+I,OAAO12E,OAAO,KAAY80N,EAASp+I,OAAS,IAAMo+I,EAASp+I,QAExEo+I,EAASp+I,OAAS,GAGhBo+I,EAAS7+M,KACqB,MAA5B6+M,EAAS7+M,KAAKjW,OAAO,KAAY80N,EAAS7+M,KAAO,IAAM6+M,EAAS7+M,MAEpE6+M,EAAS7+M,KAAO,QAGJh8C,IAAV6xD,QAA0C7xD,IAAnB66P,EAAShpM,QAAqBgpM,EAAShpM,MAAQA,IAG5E,IACEgpM,EAASnL,SAAWinH,UAAU97G,EAASnL,UACvC,MAAOl2P,GACP,MAAIA,aAAao9W,SACT,IAAIA,SAAS,aAAe/7G,EAASnL,SAAxB,iFAEbl2P,EAoBV,OAhBI4E,IAAKy8P,EAASz8P,IAAMA,GAEpBm4W,EAEG17G,EAASnL,SAE6B,MAAhCmL,EAASnL,SAAS3pN,OAAO,KAClC80N,EAASnL,SAAW,EAAgBmL,EAASnL,SAAU6mH,EAAgB7mH,WAFvEmL,EAASnL,SAAW6mH,EAAgB7mH,SAMjCmL,EAASnL,WACZmL,EAASnL,SAAW,KAIjBmL,EAOT,SAASg8G,IACP,IAAIhkC,EAAS,KAiCb,IAAIn/T,EAAY,GA4BhB,MAAO,CACLojW,UA5DF,SAAmBC,GAGjB,OADAlkC,EAASkkC,EACF,WACDlkC,IAAWkkC,IAAYlkC,EAAS,QAyDtCmkC,oBArDF,SAA6Bn8G,EAAUv7H,EAAQ23O,EAAqBxzW,GAIlE,GAAc,MAAVovU,EAAgB,CAClB,IAAIp4U,EAA2B,oBAAXo4U,EAAwBA,EAAOh4E,EAAUv7H,GAAUuzM,EAEjD,kBAAXp4U,EAC0B,oBAAxBw8W,EACTA,EAAoBx8W,EAAQgJ,GAG5BA,GAAS,GAIXA,GAAoB,IAAXhJ,QAGXgJ,GAAS,IAmCXyzW,eA7BF,SAAwB9/N,GACtB,IAAIw2J,GAAW,EAEf,SAASp6R,IACHo6R,GAAUx2J,EAAG99I,WAAM,EAAQF,WAIjC,OADAsa,EAAU9X,KAAK4X,GACR,WACLo6R,GAAW,EACXl6R,EAAYA,EAAU9V,QAAO,SAAUywK,GACrC,OAAOA,IAAS76J,OAmBpB2jW,gBAdF,WACE,IAAK,IAAIh+N,EAAO//I,UAAUC,OAAQi+I,EAAO,IAAIp/I,MAAMihJ,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/E/B,EAAK+B,GAAQjgJ,UAAUigJ,GAGzB3lI,EAAUvV,SAAQ,SAAUqV,GAC1B,OAAOA,EAASla,WAAM,EAAQg+I,QAYpC,IAAI8/N,IAAiC,qBAAXz0R,SAA0BA,OAAOr7D,WAAYq7D,OAAOr7D,SAASuqJ,eAEvF,SAASwlM,EAAgBnsR,EAASznF,GAChCA,EAASk/E,OAAO20R,QAAQpsR,IA+C1B,SAASqsR,IACP,IACE,OAAO50R,OAAO60R,QAAQ3lT,OAAS,GAC/B,MAAOr4D,GAGP,MAAO,IASX,SAASi+W,EAAqBv/N,QACd,IAAVA,IACFA,EAAQ,IAGTk/N,GAAsG,aAAU,GACjH,IAAIM,EAAgB/0R,OAAO60R,QACvBG,EA1DN,WACE,IAAI5zB,EAAKphQ,OAAOiB,UAAU+uF,UAC1B,QAAmC,IAA9BoxK,EAAGtqV,QAAQ,gBAAuD,IAA/BsqV,EAAGtqV,QAAQ,iBAA2D,IAAjCsqV,EAAGtqV,QAAQ,mBAAqD,IAA1BsqV,EAAGtqV,QAAQ,YAAqD,IAAjCsqV,EAAGtqV,QAAQ,oBACtJkpF,OAAO60R,SAAW,cAAe70R,OAAO60R,SAuD3BI,GAChBC,KA/CsD,IAAnDl1R,OAAOiB,UAAU+uF,UAAUl5K,QAAQ,YAgDtCi8J,EAASxd,EACT4/N,EAAsBpiN,EAAOqiN,aAC7BA,OAAuC,IAAxBD,GAAyCA,EACxDE,EAAwBtiN,EAAOuhN,oBAC/BA,OAAgD,IAA1Be,EAAmCX,EAAkBW,EAC3EC,EAAmBviN,EAAOwiN,UAC1BA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9CE,EAAWjgO,EAAMigO,SAAW9B,EAAmBJ,EAAgB/9N,EAAMigO,WAAa,GAEtF,SAASC,EAAeC,GACtB,IAAIp3K,EAAOo3K,GAAgB,GACvBj6W,EAAM6iM,EAAK7iM,IACXyzD,EAAQovI,EAAKpvI,MAEbymT,EAAmB31R,OAAOk4K,SAI1Bj8L,EAHW05S,EAAiB5oH,SACnB4oH,EAAiB77P,OACnB67P,EAAiBt8T,KAI5B,OADIm8T,IAAUv5S,EAAOu3S,EAAcv3S,EAAMu5S,IAClC7B,EAAe13S,EAAM/M,EAAOzzD,GAGrC,SAASm6W,IACP,OAAOnxW,KAAKoN,SAASlQ,SAAS,IAAIg4G,OAAO,EAAG47P,GAG9C,IAAIM,EAAoB3B,IAExB,SAASjgT,EAASmjF,GAChBuxE,EAASksJ,EAASz9N,GAElBy9N,EAAQn+W,OAASq+W,EAAcr+W,OAC/Bm/W,EAAkBrB,gBAAgBK,EAAQ38G,SAAU28G,EAAQl4O,QAG9D,SAASm5O,EAAe1kW,IApE1B,SAAmCA,GACjC,YAAuB/T,IAAhB+T,EAAM89C,QAAiE,IAA1C+xB,UAAU+uF,UAAUl5K,QAAQ,UAqE1Di/W,CAA0B3kW,IAC9B4kW,EAAUP,EAAerkW,EAAM89C,QAGjC,SAAS+mT,IACPD,EAAUP,EAAeb,MAG3B,IAAIsB,GAAe,EAEnB,SAASF,EAAU99G,GACjB,GAAIg+G,EACFA,GAAe,EACfjiT,QACK,CAEL4hT,EAAkBxB,oBAAoBn8G,EADzB,MAC2Co8G,GAAqB,SAAUz1D,GACjFA,EACF5qP,EAAS,CACP0oE,OAJO,MAKPu7H,SAAUA,IASpB,SAAmBi+G,GACjB,IAAIC,EAAavB,EAAQ38G,SAIrBhxD,EAAUmvK,EAAQv/W,QAAQs/W,EAAW36W,MACxB,IAAbyrM,IAAgBA,EAAU,GAC9B,IAAIirB,EAAYkkJ,EAAQv/W,QAAQq/W,EAAa16W,MAC1B,IAAf02N,IAAkBA,EAAY,GAClC,IAAI1zL,EAAQyoK,EAAUirB,EAElB1zL,IACFy3U,GAAe,EACfI,EAAG73U,IAnBC83U,CAAUr+G,OAuBlB,IAAIs+G,EAAkBf,EAAeb,KACjCyB,EAAU,CAACG,EAAgB/6W,KAE/B,SAASg7W,EAAWv+G,GAClB,OAAOs9G,EAAW7wP,EAAWuzI,GAuE/B,SAASo+G,EAAG9/W,GACVu+W,EAAcuB,GAAG9/W,GAWnB,IAAIkgX,EAAgB,EAEpB,SAASC,EAAkBl4U,GAGH,KAFtBi4U,GAAiBj4U,IAEoB,IAAVA,GACzBuhD,OAAOrvE,iBA7MO,WA6MyBmlW,GACnCZ,GAAyBl1R,OAAOrvE,iBA7MpB,aA6MsDslW,IAC3C,IAAlBS,IACT12R,OAAO/uE,oBAhNO,WAgN4B6kW,GACtCZ,GAAyBl1R,OAAO/uE,oBAhNpB,aAgNyDglW,IAI7E,IAAIW,GAAY,EAiChB,IAAI/B,EAAU,CACZn+W,OAAQq+W,EAAcr+W,OACtBimI,OAAQ,MACRu7H,SAAUs+G,EACVC,WAAYA,EACZx9W,KApIF,SAAcgjE,EAAM/M,GAElB,IACIgpM,EAAWy7G,EAAe13S,EAAM/M,EAAO0mT,IAAaf,EAAQ38G,UAChE29G,EAAkBxB,oBAAoBn8G,EAFzB,OAE2Co8G,GAAqB,SAAUz1D,GACrF,GAAKA,EAAL,CACA,IAAIz2D,EAAOquH,EAAWv+G,GAClBz8P,EAAMy8P,EAASz8P,IACfyzD,EAAQgpM,EAAShpM,MAErB,GAAI8lT,EAMF,GALAD,EAAc8B,UAAU,CACtBp7W,IAAKA,EACLyzD,MAAOA,GACN,KAAMk5L,GAELgtH,EACFp1R,OAAOk4K,SAAS9P,KAAOA,MAClB,CACL,IAAI3nH,EAAY41O,EAAQv/W,QAAQ+9W,EAAQ38G,SAASz8P,KAC7Cq7W,EAAWT,EAAQv8W,MAAM,EAAG2mI,EAAY,GAC5Cq2O,EAAS79W,KAAKi/P,EAASz8P,KACvB46W,EAAUS,EACV7iT,EAAS,CACP0oE,OAtBK,OAuBLu7H,SAAUA,SAKdl4K,OAAOk4K,SAAS9P,KAAOA,OAuG3B5mP,QAlGF,SAAiBy6D,EAAM/M,GAErB,IACIgpM,EAAWy7G,EAAe13S,EAAM/M,EAAO0mT,IAAaf,EAAQ38G,UAChE29G,EAAkBxB,oBAAoBn8G,EAFzB,UAE2Co8G,GAAqB,SAAUz1D,GACrF,GAAKA,EAAL,CACA,IAAIz2D,EAAOquH,EAAWv+G,GAClBz8P,EAAMy8P,EAASz8P,IACfyzD,EAAQgpM,EAAShpM,MAErB,GAAI8lT,EAMF,GALAD,EAAcgC,aAAa,CACzBt7W,IAAKA,EACLyzD,MAAOA,GACN,KAAMk5L,GAELgtH,EACFp1R,OAAOk4K,SAAS12P,QAAQ4mP,OACnB,CACL,IAAI3nH,EAAY41O,EAAQv/W,QAAQ+9W,EAAQ38G,SAASz8P,MAC9B,IAAfglI,IAAkB41O,EAAQ51O,GAAay3H,EAASz8P,KACpDw4D,EAAS,CACP0oE,OApBK,UAqBLu7H,SAAUA,SAKdl4K,OAAOk4K,SAAS12P,QAAQ4mP,QAuE5BkuH,GAAIA,EACJU,OA/DF,WACEV,GAAI,IA+DJW,UA5DF,WACEX,EAAG,IA4DHngN,MAzCF,SAAe+5K,QACE,IAAXA,IACFA,GAAS,GAGX,IAAIgnC,EAAUrB,EAAkB1B,UAAUjkC,GAO1C,OALK0mC,IACHD,EAAkB,GAClBC,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZD,GAAmB,IAGdO,MAwBTC,OApBF,SAAgBtmW,GACd,IAAIumW,EAAWvB,EAAkBtB,eAAe1jW,GAEhD,OADA8lW,EAAkB,GACX,WACLA,GAAmB,GACnBS,OAiBJ,OAAOvC,EAGT,IACIwC,EAAiB,CACnBC,SAAU,CACRC,WAAY,SAAoBt7S,GAC9B,MAA0B,MAAnBA,EAAK74B,OAAO,GAAa64B,EAAO,KAAOs3S,EAAkBt3S,IAElEu7S,WAAY,SAAoBv7S,GAC9B,MAA0B,MAAnBA,EAAK74B,OAAO,GAAa64B,EAAK09C,OAAO,GAAK19C,IAGrDw7S,QAAS,CACPF,WAAYhE,EACZiE,WAAYlE,GAEdoE,MAAO,CACLH,WAAYjE,EACZkE,WAAYlE,IAIhB,SAASqE,EAAU9vV,GACjB,IAAIgsV,EAAYhsV,EAAI/wB,QAAQ,KAC5B,OAAsB,IAAf+8W,EAAmBhsV,EAAMA,EAAI/tB,MAAM,EAAG+5W,GAG/C,SAAS+D,IAGP,IAAIxvH,EAAOpoK,OAAOk4K,SAAS9P,KACvByrH,EAAYzrH,EAAKtxP,QAAQ,KAC7B,OAAsB,IAAf+8W,EAAmB,GAAKzrH,EAAK5/H,UAAUqrP,EAAY,GAO5D,SAASgE,EAAgB57S,GACvB+jB,OAAOk4K,SAAS12P,QAAQm2W,EAAU33R,OAAOk4K,SAAS9P,MAAQ,IAAMnsL,GAGlE,SAAS67S,EAAkBviO,QACX,IAAVA,IACFA,EAAQ,IAGTk/N,GAAmG,aAAU,GAC9G,IAAIM,EAAgB/0R,OAAO60R,QAEvB9hN,GApUG/yE,OAAOiB,UAAU+uF,UAAUl5K,QAAQ,WAoU7By+I,GACT8/N,EAAwBtiN,EAAOuhN,oBAC/BA,OAAgD,IAA1Be,EAAmCX,EAAkBW,EAC3E0C,EAAkBhlN,EAAOilN,SACzBA,OAA+B,IAApBD,EAA6B,QAAUA,EAClDvC,EAAWjgO,EAAMigO,SAAW9B,EAAmBJ,EAAgB/9N,EAAMigO,WAAa,GAClFyC,EAAwBZ,EAAeW,GACvCT,EAAaU,EAAsBV,WACnCC,EAAaS,EAAsBT,WAEvC,SAAS/B,IACP,IAAIx5S,EAAOu7S,EAAWI,KAGtB,OADIpC,IAAUv5S,EAAOu3S,EAAcv3S,EAAMu5S,IAClC7B,EAAe13S,GAGxB,IAAI45S,EAAoB3B,IAExB,SAASjgT,EAASmjF,GAChBuxE,EAASksJ,EAASz9N,GAElBy9N,EAAQn+W,OAASq+W,EAAcr+W,OAC/Bm/W,EAAkBrB,gBAAgBK,EAAQ38G,SAAU28G,EAAQl4O,QAG9D,IAAIu5O,GAAe,EACfgC,EAAa,KAMjB,SAASjC,IACP,IAL4B77W,EAAGjF,EAK3B8mE,EAAO27S,IACPO,EAAcZ,EAAWt7S,GAE7B,GAAIA,IAASk8S,EAEXN,EAAgBM,OACX,CACL,IAAIjgH,EAAWu9G,IACX2C,EAAevD,EAAQ38G,SAC3B,IAAKg+G,IAdwB/gX,EAc2B+iQ,GAd9B99P,EAcgBg+W,GAbnCrrH,WAAa53P,EAAE43P,UAAY3yP,EAAE0/G,SAAW3kH,EAAE2kH,QAAU1/G,EAAEi/C,OAASlkD,EAAEkkD,MAaL,OAEnE,GAAI6+T,IAAevzP,EAAWuzI,GAAW,OAEzCggH,EAAa,KAKjB,SAAmBhgH,GACjB,GAAIg+G,EACFA,GAAe,EACfjiT,QACK,CAEL4hT,EAAkBxB,oBAAoBn8G,EADzB,MAC2Co8G,GAAqB,SAAUz1D,GACjFA,EACF5qP,EAAS,CACP0oE,OAJO,MAKPu7H,SAAUA,IASpB,SAAmBi+G,GACjB,IAAIC,EAAavB,EAAQ38G,SAIrBhxD,EAAUmxK,EAAS/1P,YAAYqC,EAAWyxP,KAC7B,IAAblvK,IAAgBA,EAAU,GAC9B,IAAIirB,EAAYkmJ,EAAS/1P,YAAYqC,EAAWwxP,KAC7B,IAAfhkJ,IAAkBA,EAAY,GAClC,IAAI1zL,EAAQyoK,EAAUirB,EAElB1zL,IACFy3U,GAAe,EACfI,EAAG73U,IAnBC83U,CAAUr+G,OAjBd89G,CAAU99G,IAyCd,IAAIj8L,EAAO27S,IACPO,EAAcZ,EAAWt7S,GACzBA,IAASk8S,GAAaN,EAAgBM,GAC1C,IAAI3B,EAAkBf,IAClB4C,EAAW,CAAC1zP,EAAW6xP,IAuE3B,SAASF,EAAG9/W,GAEVu+W,EAAcuB,GAAG9/W,GAWnB,IAAIkgX,EAAgB,EAEpB,SAASC,EAAkBl4U,GAGH,KAFtBi4U,GAAiBj4U,IAEoB,IAAVA,EACzBuhD,OAAOrvE,iBAxOW,aAwOyBslW,GAChB,IAAlBS,GACT12R,OAAO/uE,oBA1OW,aA0O4BglW,GAIlD,IAAIW,GAAY,EAiChB,IAAI/B,EAAU,CACZn+W,OAAQq+W,EAAcr+W,OACtBimI,OAAQ,MACRu7H,SAAUs+G,EACVC,WAnIF,SAAoBv+G,GAClB,IAAIogH,EAAU3zV,SAASkgO,cAAc,QACjCuD,EAAO,GAMX,OAJIkwH,GAAWA,EAAQvoU,aAAa,UAClCq4M,EAAOuvH,EAAU33R,OAAOk4K,SAAS9P,OAG5BA,EAAO,IAAMmvH,EAAW/B,EAAW7wP,EAAWuzI,KA4HrDj/P,KAzHF,SAAcgjE,EAAM/M,GAElB,IACIgpM,EAAWy7G,EAAe13S,OAAM5+D,OAAWA,EAAWw3W,EAAQ38G,UAClE29G,EAAkBxB,oBAAoBn8G,EAFzB,OAE2Co8G,GAAqB,SAAUz1D,GACrF,GAAKA,EAAL,CACA,IAAI5iP,EAAO0oD,EAAWuzI,GAClBigH,EAAcZ,EAAW/B,EAAWv5S,GAGxC,GAFkB27S,MAAkBO,EAEnB,CAIfD,EAAaj8S,EAxIrB,SAAsBA,GACpB+jB,OAAOk4K,SAAS7+M,KAAO4iB,EAwIjBs8S,CAAaJ,GACb,IAAI13O,EAAY43O,EAAS/1P,YAAYqC,EAAWkwP,EAAQ38G,WACpDsgH,EAAYH,EAASv+W,MAAM,EAAG2mI,EAAY,GAC9C+3O,EAAUv/W,KAAKgjE,GACfo8S,EAAWG,EACXvkT,EAAS,CACP0oE,OAnBO,OAoBPu7H,SAAUA,SAIZjkM,SAgGJzyD,QA3FF,SAAiBy6D,EAAM/M,GAErB,IACIgpM,EAAWy7G,EAAe13S,OAAM5+D,OAAWA,EAAWw3W,EAAQ38G,UAClE29G,EAAkBxB,oBAAoBn8G,EAFzB,UAE2Co8G,GAAqB,SAAUz1D,GACrF,GAAKA,EAAL,CACA,IAAI5iP,EAAO0oD,EAAWuzI,GAClBigH,EAAcZ,EAAW/B,EAAWv5S,GACtB27S,MAAkBO,IAMlCD,EAAaj8S,EACb47S,EAAgBM,IAGlB,IAAI13O,EAAY43O,EAASvhX,QAAQ6tH,EAAWkwP,EAAQ38G,YACjC,IAAfz3H,IAAkB43O,EAAS53O,GAAaxkE,GAC5ChI,EAAS,CACP0oE,OAnBS,UAoBTu7H,SAAUA,SAsEdo+G,GAAIA,EACJU,OA7DF,WACEV,GAAI,IA6DJW,UA1DF,WACEX,EAAG,IA0DHngN,MAzCF,SAAe+5K,QACE,IAAXA,IACFA,GAAS,GAGX,IAAIgnC,EAAUrB,EAAkB1B,UAAUjkC,GAO1C,OALK0mC,IACHD,EAAkB,GAClBC,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZD,GAAmB,IAGdO,MAwBTC,OApBF,SAAgBtmW,GACd,IAAIumW,EAAWvB,EAAkBtB,eAAe1jW,GAEhD,OADA8lW,EAAkB,GACX,WACLA,GAAmB,GACnBS,OAiBJ,OAAOvC,EAGT,SAAS5iW,EAAMzb,EAAGumO,EAAY07I,GAC5B,OAAOh0W,KAAKyN,IAAIzN,KAAK0N,IAAI3b,EAAGumO,GAAa07I,GAO3C,SAASC,EAAoBnjO,QACb,IAAVA,IACFA,EAAQ,IAGV,IAAIwd,EAASxd,EACT++N,EAAsBvhN,EAAOuhN,oBAC7BqE,EAAwB5lN,EAAO6lN,eAC/BA,OAA2C,IAA1BD,EAAmC,CAAC,KAAOA,EAC5DE,EAAsB9lN,EAAO+lN,aAC7BA,OAAuC,IAAxBD,EAAiC,EAAIA,EACpDvD,EAAmBviN,EAAOwiN,UAC1BA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9CO,EAAoB3B,IAExB,SAASjgT,EAASmjF,GAChBuxE,EAASksJ,EAASz9N,GAElBy9N,EAAQn+W,OAASm+W,EAAQ/3W,QAAQpG,OACjCm/W,EAAkBrB,gBAAgBK,EAAQ38G,SAAU28G,EAAQl4O,QAG9D,SAASi5O,IACP,OAAOnxW,KAAKoN,SAASlQ,SAAS,IAAIg4G,OAAO,EAAG47P,GAG9C,IAAIrwW,EAAQ+M,EAAM6mW,EAAc,EAAGF,EAAeliX,OAAS,GACvDoG,EAAU87W,EAAeh7W,KAAI,SAAUxB,GACzC,OAAmCu3W,EAAev3W,OAAOiB,EAAjC,kBAAVjB,EAAsDw5W,IAAgDx5W,EAAMX,KAAOm6W,QAG/Ha,EAAa9xP,EAyCjB,SAAS2xP,EAAG9/W,GACV,IAAI8tG,EAAYryF,EAAM4iW,EAAQ3vW,MAAQ1O,EAAG,EAAGq+W,EAAQ/3W,QAAQpG,OAAS,GAEjEwhQ,EAAW28G,EAAQ/3W,QAAQwnG,GAC/BuxQ,EAAkBxB,oBAAoBn8G,EAFzB,MAE2Co8G,GAAqB,SAAUz1D,GACjFA,EACF5qP,EAAS,CACP0oE,OALO,MAMPu7H,SAAUA,EACVhzP,MAAOo/F,IAKTrwC,OA8BN,IAAI4gT,EAAU,CACZn+W,OAAQoG,EAAQpG,OAChBimI,OAAQ,MACRu7H,SAAUp7P,EAAQoI,GAClBA,MAAOA,EACPpI,QAASA,EACT25W,WAAYA,EACZx9W,KA1FF,SAAcgjE,EAAM/M,GAElB,IACIgpM,EAAWy7G,EAAe13S,EAAM/M,EAAO0mT,IAAaf,EAAQ38G,UAChE29G,EAAkBxB,oBAAoBn8G,EAFzB,OAE2Co8G,GAAqB,SAAUz1D,GACrF,GAAKA,EAAL,CACA,IACIv6M,EADYuwQ,EAAQ3vW,MACI,EACxB6zW,EAAclE,EAAQ/3W,QAAQhD,MAAM,GAEpCi/W,EAAYriX,OAAS4tG,EACvBy0Q,EAAYx6W,OAAO+lG,EAAWy0Q,EAAYriX,OAAS4tG,EAAW4zJ,GAE9D6gH,EAAY9/W,KAAKi/P,GAGnBjkM,EAAS,CACP0oE,OAfS,OAgBTu7H,SAAUA,EACVhzP,MAAOo/F,EACPxnG,QAASi8W,SAuEbv3W,QAlEF,SAAiBy6D,EAAM/M,GAErB,IACIgpM,EAAWy7G,EAAe13S,EAAM/M,EAAO0mT,IAAaf,EAAQ38G,UAChE29G,EAAkBxB,oBAAoBn8G,EAFzB,UAE2Co8G,GAAqB,SAAUz1D,GAChFA,IACLg2D,EAAQ/3W,QAAQ+3W,EAAQ3vW,OAASgzP,EACjCjkM,EAAS,CACP0oE,OANS,UAOTu7H,SAAUA,SA0Ddo+G,GAAIA,EACJU,OAnCF,WACEV,GAAI,IAmCJW,UAhCF,WACEX,EAAG,IAgCH0C,MA7BF,SAAexiX,GACb,IAAI8tG,EAAYuwQ,EAAQ3vW,MAAQ1O,EAChC,OAAO8tG,GAAa,GAAKA,EAAYuwQ,EAAQ/3W,QAAQpG,QA4BrDy/J,MAzBF,SAAe+5K,GAKb,YAJe,IAAXA,IACFA,GAAS,GAGJ2lC,EAAkB1B,UAAUjkC,IAqBnCinC,OAlBF,SAAgBtmW,GACd,OAAOglW,EAAkBtB,eAAe1jW,KAmB1C,OAAOgkW,E,aC/5BM,SAAS,IAetB,OAdA,EAAWz/W,OAAOgB,QAAU,SAAUkF,GACpC,IAAK,IAAI/E,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CACzC,IAAIgF,EAAS9E,UAAUF,GAEvB,IAAK,IAAIkF,KAAOF,EACVnG,OAAOK,UAAUC,eAAeC,KAAK4F,EAAQE,KAC/CH,EAAOG,GAAOF,EAAOE,IAK3B,OAAOH,IAGO3E,MAAMX,KAAMS,W,6BCff,SAASw1R,EAA8B1wR,EAAQm9I,GAC5D,GAAc,MAAVn9I,EAAgB,MAAO,GAC3B,IAEIE,EAAKlF,EAFL+E,EAAS,GACTq9I,EAAavjJ,OAAO2F,KAAKQ,GAG7B,IAAKhF,EAAI,EAAGA,EAAIoiJ,EAAWjiJ,OAAQH,IACjCkF,EAAMk9I,EAAWpiJ,GACbmiJ,EAAS5hJ,QAAQ2E,IAAQ,IAC7BH,EAAOG,GAAOF,EAAOE,IAGvB,OAAOH,E,WCCL,EAAqB,SAA4B6B,GACnD,IAAIqC,EAAU,cAEd,OADAA,EAAQ24I,YAAch7I,EACfqC,GAGLy5W,EAA8B,EAAmB,kBACjD,EAAuB,EAAmB,UAK1C,EAAsB,SAAUh+K,GAYlC,SAASi+K,EAAO3jO,GACd,IAAI7uD,EA0BJ,OAxBAA,EAAQu0G,EAAiBtlM,KAAKK,KAAMu/I,IAAUv/I,MACxCk5D,MAAQ,CACZgpM,SAAU3iH,EAAMs/N,QAAQ38G,UAO1BxxK,EAAMypR,YAAa,EACnBzpR,EAAMyyR,iBAAmB,KAEpB5jO,EAAM6jO,gBACT1yR,EAAM0wR,SAAW7hO,EAAMs/N,QAAQsC,QAAO,SAAUj/G,GAC1CxxK,EAAMypR,WACRzpR,EAAMzyB,SAAS,CACbikM,SAAUA,IAGZxxK,EAAMyyR,iBAAmBjhH,MAKxBxxK,EAtCTsmL,EAAeksG,EAAQj+K,GAEvBi+K,EAAOG,iBAAmB,SAA0BtsH,GAClD,MAAO,CACL9wL,KAAM,IACNp0C,IAAK,IACLszE,OAAQ,GACRm+Q,QAAsB,MAAbvsH,IAkCb,IAAIzxD,EAAS49K,EAAOzjX,UAkCpB,OAhCA6lM,EAAO8J,kBAAoB,WACzBpvM,KAAKm6W,YAAa,EAEdn6W,KAAKmjX,kBACPnjX,KAAKi+D,SAAS,CACZikM,SAAUliQ,KAAKmjX,oBAKrB79K,EAAO1oC,qBAAuB,WACxB58J,KAAKohX,WACPphX,KAAKohX,WACLphX,KAAKm6W,YAAa,EAClBn6W,KAAKmjX,iBAAmB,OAI5B79K,EAAOp8I,OAAS,WACd,OAAoB,IAAMgwH,cAAc,EAAQqsB,SAAU,CACxD7jM,MAAO,CACLm9W,QAAS7+W,KAAKu/I,MAAMs/N,QACpB38G,SAAUliQ,KAAKk5D,MAAMgpM,SACrBjzP,MAAOi0W,EAAOG,iBAAiBrjX,KAAKk5D,MAAMgpM,SAASnL,UACnDqsH,cAAepjX,KAAKu/I,MAAM6jO,gBAEd,IAAMlqM,cAAc+pM,EAAe19K,SAAU,CAC3D9qK,SAAUz6B,KAAKu/I,MAAM9kH,UAAY,KACjC/4B,MAAO1B,KAAKu/I,MAAMs/N,YAIfqE,EA5EiB,CA6ExB,IAAMxhO,WA2CN,IAAMA,UA0CN,IAAMA,UA4HR,IAAI6hO,EAAU,GAEVC,EAAe,EAyBnB,SAASC,EAAU1sH,EAAU9uP,QACX,IAAZA,IACFA,EAAU,KAGW,kBAAZA,GAAwB1I,MAAMwM,QAAQ9D,MAC/CA,EAAU,CACRg+D,KAAMh+D,IAIV,IAAIk1S,EAAWl1S,EACXg+D,EAAOk3O,EAASl3O,KAChBy9S,EAAiBvmE,EAAS+B,MAC1BA,OAA2B,IAAnBwkE,GAAoCA,EAC5CC,EAAkBxmE,EAAS11G,OAC3BA,OAA6B,IAApBk8K,GAAqCA,EAC9CC,EAAqBzmE,EAAS/kC,UAC9BA,OAAmC,IAAvBwrG,GAAwCA,EAExD,MADY,GAAG7/W,OAAOkiE,GACTp+D,QAAO,SAAUylQ,EAASrnM,GACrC,IAAKA,GAAiB,KAATA,EAAa,OAAO,KACjC,GAAIqnM,EAAS,OAAOA,EAEpB,IAAIu2G,EA/CR,SAAuB59S,EAAMh+D,GAC3B,IAAIyhE,EAAW,GAAKzhE,EAAQ6gC,IAAM7gC,EAAQw/L,OAASx/L,EAAQmwQ,UACvD0rG,EAAYP,EAAQ75S,KAAc65S,EAAQ75S,GAAY,IAC1D,GAAIo6S,EAAU79S,GAAO,OAAO69S,EAAU79S,GACtC,IAAIlhE,EAAO,GAEPjD,EAAS,CACX6jP,OAFW,IAAa1/K,EAAMlhE,EAAMkD,GAGpClD,KAAMA,GAQR,OALIy+W,EAda,MAefM,EAAU79S,GAAQnkE,EAClB0hX,KAGK1hX,EA+BciiX,CAAc99S,EAAM,CACrCn9B,IAAKo2Q,EACLz3G,OAAQA,EACR2wE,UAAWA,IAETzyB,EAASk+H,EAAal+H,OACtB5gP,EAAO8+W,EAAa9+W,KAEpBkK,EAAQ02O,EAAO14M,KAAK8pN,GACxB,IAAK9nP,EAAO,OAAO,KACnB,IAAI4iB,EAAM5iB,EAAM,GACZuwB,EAASvwB,EAAMnL,MAAM,GACrBw/W,EAAUvsH,IAAallO,EAC3B,OAAIqtR,IAAUokE,EAAgB,KACvB,CACLr9S,KAAMA,EAENp0C,IAAc,MAATo0C,GAAwB,KAARp0C,EAAa,IAAMA,EAExCyxV,QAASA,EAETn+Q,OAAQpgG,EAAK8C,QAAO,SAAUu7O,EAAM39O,EAAKyJ,GAEvC,OADAk0O,EAAK39O,EAAI0B,MAAQq4B,EAAOtwB,GACjBk0O,IACN,OAEJ,MAyDH,IAAM1hG,UA8BR,SAAS,EAAgBz7E,GACvB,MAA0B,MAAnBA,EAAK74B,OAAO,GAAa64B,EAAO,IAAMA,EAU/C,SAAS,EAAcu5S,EAAUt9G,GAC/B,IAAKs9G,EAAU,OAAOt9G,EACtB,IAAIzwJ,EAAO,EAAgB+tQ,GAC3B,OAAwC,IAApCt9G,EAASnL,SAASj2P,QAAQ2wG,GAAoBywJ,EAC3C,EAAS,GAAIA,EAAU,CAC5BnL,SAAUmL,EAASnL,SAASpzI,OAAOlS,EAAK/wG,UAI5C,SAASsjX,EAAU9hH,GACjB,MAA2B,kBAAbA,EAAwBA,EAAWvzI,EAAWuzI,GAG9D,SAAS+hH,EAAc5oT,GACrB,OAAO,WACuG,aAAU,IAI1H,SAAS2/J,KAoFP,IAAMt5E,UAuDN,IAAMA,UA6CS,IAAMwiO,WCjrBR,SAAS,EAAgB/gX,EAAG3D,GAMzC,OALA,EAAkBJ,OAAOC,gBAAkB,SAAyB8D,EAAG3D,GAErE,OADA2D,EAAE7D,UAAYE,EACP2D,IAGcA,EAAG3D,GCLb,SAAS,EAAey2N,EAAUC,GAC/CD,EAASx2N,UAAYL,OAAOc,OAAOg2N,EAAWz2N,WAC9Cw2N,EAASx2N,UAAUQ,YAAcg2N,EACjC,EAAeA,EAAUC,GCJZ,SAAS,IAetB,OAdA,EAAW92N,OAAOgB,QAAU,SAAUkF,GACpC,IAAK,IAAI/E,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CACzC,IAAIgF,EAAS9E,UAAUF,GAEvB,IAAK,IAAIkF,KAAOF,EACVnG,OAAOK,UAAUC,eAAeC,KAAK4F,EAAQE,KAC/CH,EAAOG,GAAOF,EAAOE,IAK3B,OAAOH,IAGO3E,MAAMX,KAAMS,WCff,SAAS,EAA8B8E,EAAQm9I,GAC5D,GAAc,MAAVn9I,EAAgB,MAAO,GAC3B,IAEIE,EAAKlF,EAFL+E,EAAS,GACTq9I,EAAavjJ,OAAO2F,KAAKQ,GAG7B,IAAKhF,EAAI,EAAGA,EAAIoiJ,EAAWjiJ,OAAQH,IACjCkF,EAAMk9I,EAAWpiJ,GACbmiJ,EAAS5hJ,QAAQ2E,IAAQ,IAC7BH,EAAOG,GAAOF,EAAOE,IAGvB,OAAOH,ECZT,kCAcA,IAAI,EAA6B,SAAU2/L,GAGzC,SAASk/K,IAGP,IAFA,IAAIzzR,EAEK8vD,EAAO//I,UAAUC,OAAQi+I,EAAO,IAAIp/I,MAAMihJ,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/E/B,EAAK+B,GAAQjgJ,UAAUigJ,GAKzB,OAFAhwD,EAAQu0G,EAAiBtlM,KAAKgB,MAAMskM,EAAkB,CAACjlM,MAAM+D,OAAO46I,KAAU3+I,MACxE6+W,QAAUC,EAAqBpuR,EAAM6uD,OACpC7uD,EAYT,OAvBA,EAAeyzR,EAAel/K,GAcjBk/K,EAAc1kX,UAEpBypD,OAAS,WACd,OAAoB,IAAMgwH,cAAc,EAAQ,CAC9C2lM,QAAS7+W,KAAK6+W,QACdpkV,SAAUz6B,KAAKu/I,MAAM9kH,YAIlB0pV,EAxBwB,CAyB/B,IAAMziO,WA6CN,IAAMA,UAeR,IAAI0iO,EAAoB,SAA2B1gX,EAAIk6W,GACrD,MAAqB,oBAAPl6W,EAAoBA,EAAGk6W,GAAmBl6W,GAGtD,EAAsB,SAA6BA,EAAIk6W,GACzD,MAAqB,kBAAPl6W,EAAkBi6W,EAAej6W,EAAI,KAAM,KAAMk6W,GAAmBl6W,GAGhF2gX,GAAiB,SAAwB/gO,GAC3C,OAAOA,GAGLssF,GAAa,IAAMA,WAEG,qBAAfA,KACTA,GAAay0I,IAOf,IAAIC,GAAa10I,IAAW,SAAUtnC,EAAMunC,GAC1C,IAAIhqC,EAAWyC,EAAKzC,SAChB0+K,EAAWj8K,EAAKi8K,SAChBC,EAAWl8K,EAAKyC,QAChBhM,EAAO,EAA8BuJ,EAAM,CAAC,WAAY,WAAY,YAEpEhjM,EAASy5L,EAAKz5L,OAEdi6I,EAAQ,EAAS,GAAIw/C,EAAM,CAC7BgM,QAAS,SAAiB3vL,GACxB,IACMopW,GAAUA,EAASppW,GACvB,MAAOyoQ,GAEP,MADAzoQ,EAAMu3E,iBACAkxL,EAGHzoQ,EAAM0+V,kBACM,IAAjB1+V,EAAMqpW,QACLn/W,GAAqB,UAAXA,GAvBjB,SAAyB8V,GACvB,SAAUA,EAAMspW,SAAWtpW,EAAMupW,QAAUvpW,EAAMwpW,SAAWxpW,EAAMypW,UAuB7DC,CAAgB1pW,KAEbA,EAAMu3E,iBACN4xR,QAcR,OAPEhlO,EAAMomD,IADJ0+K,KAAmBz0I,IACTC,GAEAhqC,EAKM,IAAM3sB,cAAc,IAAK35B,MAW/C,IAAIwlO,GAAOn1I,IAAW,SAAUi9B,EAAOh9B,GACrC,IAAIm1I,EAAkBn4G,EAAMre,UACxBA,OAAgC,IAApBw2H,EAA6BV,GAAaU,EACtDx5W,EAAUqhQ,EAAMrhQ,QAChB9H,EAAKmpQ,EAAMnpQ,GACXmiM,EAAWgnE,EAAMhnE,SACjB9G,EAAO,EAA8B8tE,EAAO,CAAC,YAAa,UAAW,KAAM,aAE/E,OAAoB,IAAM3zF,cAAc,EAAgB+sB,SAAU,MAAM,SAAUz8L,GAC/EA,GAAqH,aAAU,GAChI,IAAIq1W,EAAUr1W,EAAQq1W,QAClB38G,EAAW,EAAoBkiH,EAAkB1gX,EAAI8F,EAAQ04P,UAAW14P,EAAQ04P,UAChF9P,EAAO8P,EAAW28G,EAAQ4B,WAAWv+G,GAAY,GAEjD3iH,EAAQ,EAAS,GAAIw/C,EAAM,CAC7BqzD,KAAMA,EACNmyH,SAAU,WACR,IAAIriH,EAAWkiH,EAAkB1gX,EAAI8F,EAAQ04P,UACzC+iH,EAAwBt2P,EAAWnlH,EAAQ04P,YAAcvzI,EAAW,EAAoBuzI,KAC/E12P,GAAWy5W,EAAwBpG,EAAQrzW,QAAUqzW,EAAQ57W,MACnEi/P,MAWX,OANImiH,KAAmBz0I,GACrBrwF,EAAMomD,IAAMkqC,GAAgBhqC,EAE5BtmD,EAAMsmD,SAAWA,EAGC,IAAM3sB,cAAcs1E,EAAWjvG,SAmBnD2lO,GAAmB,SAAwB5hO,GAC7C,OAAOA,GAGL6hO,GAAe,IAAMv1I,WAEG,qBAAjBu1I,KACTA,GAAeD,IAiBHC,IAAa,SAAU78K,EAAMunC,GACzC,IAAIu1I,EAAmB98K,EAAK,gBACxB+8K,OAAmC,IAArBD,EAA8B,OAASA,EACrDE,EAAuBh9K,EAAKi9K,gBAC5BA,OAA2C,IAAzBD,EAAkC,SAAWA,EAC/DE,EAAcl9K,EAAKk9K,YACnBC,EAAgBn9K,EAAKrnB,UACrBi+H,EAAQ52G,EAAK42G,MACbwmE,EAAep9K,EAAK2sG,SACpB0wE,EAAer9K,EAAK45D,SACpBkW,EAAY9vE,EAAK8vE,UACjB3wE,EAASa,EAAKb,OACdm+K,EAAYt9K,EAAKz7J,MACjBnpC,EAAK4kM,EAAK5kM,GACVmiM,EAAWyC,EAAKzC,SAChB9G,EAAO,EAA8BuJ,EAAM,CAAC,eAAgB,kBAAmB,cAAe,YAAa,QAAS,WAAY,WAAY,YAAa,SAAU,QAAS,KAAM,aAEtL,OAAoB,IAAMpvB,cAAc,EAAgB+sB,SAAU,MAAM,SAAUz8L,GAC/EA,GAAwH,aAAU,GACnI,IAAIo0W,EAAkB+H,GAAgBn8W,EAAQ04P,SAC1Ck+G,EAAa,EAAoBgE,EAAkB1gX,EAAIk6W,GAAkBA,GACzE33S,EAAOm6S,EAAWrpH,SAElB8uH,EAAc5/S,GAAQA,EAAKz6D,QAAQ,4BAA6B,QAChEyD,EAAQ42W,EAAcpC,EAAU7F,EAAgB7mH,SAAU,CAC5D9wL,KAAM4/S,EACN3mE,MAAOA,EACP9mC,UAAWA,EACX3wE,OAAQA,IACL,KACDwtG,KAAcywE,EAAeA,EAAaz2W,EAAO2uW,GAAmB3uW,GACpEgyK,EAAqC,oBAAlBwkM,EAA+BA,EAAcxwE,GAAYwwE,EAC5E54U,EAA6B,oBAAd+4U,EAA2BA,EAAU3wE,GAAY2wE,EAEhE3wE,IACFh0H,EAjDN,WACE,IAAK,IAAIzgC,EAAO//I,UAAUC,OAAQolX,EAAa,IAAIvmX,MAAMihJ,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IACrFolO,EAAWplO,GAAQjgJ,UAAUigJ,GAG/B,OAAOolO,EAAW7gX,QAAO,SAAU1E,GACjC,OAAOA,KACNmpD,KAAK,KA0CQq8T,CAAe9kM,EAAWskM,GACtC14U,EAAQ,EAAS,GAAIA,EAAO24U,IAG9B,IAAIjmO,EAAQ,EAAS,CACnB,eAAgB01J,GAAYowE,GAAe,KAC3CpkM,UAAWA,EACXp0I,MAAOA,EACPnpC,GAAI08W,GACHrhL,GASH,OANImmL,KAAqBC,GACvB5lO,EAAMomD,IAAMkqC,GAAgBhqC,EAE5BtmD,EAAMsmD,SAAWA,EAGC,IAAM3sB,cAAc6rM,GAAMxlO,U,6BChSnC,ICPXymO,EAAkB,45HAElB92W,EDHJ,SAAiBuvI,GACf,IAAIl/G,EAAQ,GACZ,OAAO,SAAUg/G,GAEf,YADmBl3I,IAAfk4B,EAAMg/G,KAAoBh/G,EAAMg/G,GAAOE,EAAGF,IACvCh/G,EAAMg/G,ICDL,EAAQ,SAAU4gD,GAC5B,OAAO6mL,EAAgBxsV,KAAK2lK,IAAgC,MAAvBA,EAAKzzL,WAAW,IAE3B,MAAvByzL,EAAKzzL,WAAW,IAEhByzL,EAAKzzL,WAAW,GAAK,MAIX,O,6BCNf,SAASu6W,EAAQjxI,GACf,OAAO51O,OAAOK,UAAUkM,SAAShM,KAAKq1O,GAASlxO,MAAM,GAAI,GAgC3D,SAAS87N,EAAcoV,GACrB,MAAyB,WAArBixI,EAAQjxI,KACLA,EAAQ/0O,cAAgBb,QAAUA,OAAO+M,eAAe6oO,KAAa51O,OAAOK,WAyDrF,SAASsM,EAAQipO,GACf,MAA4B,UAArBixI,EAAQjxI,GA0HjB,SAAS2S,EAAS3S,GAChB,MAA4B,WAArBixI,EAAQjxI,GC9MjB,SAAS23D,IACP,IAAK,IAAIrsS,EAAI,EAAGC,EAAI,EAAGwhC,EAAKthC,UAAUC,OAAQH,EAAIwhC,EAAIxhC,IACpDD,GAAKG,UAAUF,GAAGG,OAGf,IAAI4C,EAAI/D,MAAMe,GAAIihD,EAAI,EAA3B,IAA8BhhD,EAAI,EAAGA,EAAIwhC,EAAIxhC,IAC3C,IAAK,IAAI6D,EAAI3D,UAAUF,GAAIwgC,EAAI,EAAGqa,EAAKh3C,EAAE1D,OAAQqgC,EAAIqa,EAAIra,IAAKwgB,IAC5Dj+C,EAAEi+C,GAAKn9C,EAAE28B,GAIb,OAAOz9B,EAGT,SAAS4iX,EAAWxoO,EAAOj4I,EAAK0gX,EAAQC,GACtC,IAAIC,EAAWD,EAAeplX,qBAAqByE,GAAO,aAAe,gBACxD,eAAb4gX,IAA2B3oO,EAAMj4I,GAAO0gX,GAE3B,kBAAbE,GACFjnX,OAAOwG,eAAe83I,EAAOj4I,EAAK,CAChC/D,MAAOykX,EACP/gX,YAAY,EACZoH,UAAU,EACVC,cAAc,IAKpB,SAAS65W,EAAiBrhV,EAAQshV,EAAUxgU,GAE1C,IAAK65K,EAAc2mJ,GAQjB,OANIxgU,GAAch6C,EAAQg6C,IACxBA,EAAWvgD,SAAQ,SAAUk+I,GAC3B6iO,EAAW7iO,EAAOz+G,EAAQshV,MAIvBA,EAIT,IAAI9qD,EAAY,GAEZ77F,EAAc36L,KAGhBw2R,EAAY9uB,EAFEvtS,OAAOgyM,oBAAoBnsK,GACzB7lC,OAAO2B,sBAAsBkkC,IACEp9B,QAAO,SAAU61I,EAAOj4I,GAErE,IAAI+gX,EAAYvhV,EAAOx/B,GAMvB,QAJKkiP,EAASliP,KAASrG,OAAOgyM,oBAAoBm1K,GAAUl9W,SAAS5D,IAAQkiP,EAASliP,KAASrG,OAAO2B,sBAAsBwlX,GAAUl9W,SAAS5D,KAC7IygX,EAAWxoO,EAAOj4I,EAAK+gX,EAAWvhV,GAG7By4G,IACN,KA2BL,OArBaivJ,EAHDvtS,OAAOgyM,oBAAoBm1K,GACzBnnX,OAAO2B,sBAAsBwlX,IAEC1+W,QAAO,SAAU61I,EAAOj4I,GAElE,IAAI0gX,EAASI,EAAS9gX,GAClB+gX,EAAY5mJ,EAAc36L,GAC9BA,EAAOx/B,QAAO4B,EAcd,OAZI0+C,GAAch6C,EAAQg6C,IACxBA,EAAWvgD,SAAQ,SAAUk+I,GAC3ByiO,EAASziO,EAAO8iO,EAAWL,WAKb9+W,IAAdm/W,GAA2B5mJ,EAAcumJ,KAC3CA,EAASG,EAAiBE,EAAWL,EAAQpgU,IAG/CmgU,EAAWxoO,EAAOj4I,EAAK0gX,EAAQI,GACxB7oO,IACN+9K,GA4CU,IA7Bf,SAAex2R,GAGb,IAFA,IAAIwhV,EAAY,GAEPhrO,EAAK,EAAGA,EAAKh7I,UAAUC,OAAQ+6I,IACtCgrO,EAAUhrO,EAAK,GAAKh7I,UAAUg7I,GAGhC,IAAI11F,EAAa,KACb0rD,EAAOxsE,EAOX,OALI26L,EAAc36L,IAAWA,EAAO8gB,YAA6C,IAA/B3mD,OAAO2F,KAAKkgC,GAAQvkC,SACpE+wG,EAAO,GACP1rD,EAAa9gB,EAAO8gB,YAGf0gU,EAAU5+W,QAAO,SAAU/F,EAAQykX,GACxC,OAAOD,EAAiBxkX,EAAQykX,EAAUxgU,KACzC0rD,K,iBCjIL,YAOA,IAPA,MAAU,EAAQ,KACdkvB,EAAyB,qBAAX32C,OAAyB2xD,EAAS3xD,OAChD08R,EAAU,CAAC,MAAO,UAClBvuK,EAAS,iBACTwuK,EAAMhmP,EAAK,UAAYw3E,GACvByuK,EAAMjmP,EAAK,SAAWw3E,IAAWx3E,EAAK,gBAAkBw3E,GAEnD53M,EAAI,GAAIomX,GAAOpmX,EAAImmX,EAAQhmX,OAAQH,IAC1ComX,EAAMhmP,EAAK+lP,EAAQnmX,GAAK,UAAY43M,GACpCyuK,EAAMjmP,EAAK+lP,EAAQnmX,GAAK,SAAW43M,IAAWx3E,EAAK+lP,EAAQnmX,GAAK,gBAAkB43M,GAIpF,IAAKwuK,IAAQC,EAAK,CAChB,IAAIlgR,EAAO,EACPnpE,EAAK,EACL0oE,EAAQ,GAGZ0gR,EAAM,SAAa77W,GACjB,GAAqB,IAAjBm7F,EAAMvlG,OAAc,CACtB,IAAImmX,EAAO7xP,IACPpzH,EAAO6M,KAAK0N,IAAI,EALJ,IAAO,IAKiB0qW,EAAOngR,IAE/CA,EAAO9kG,EAAOilX,EACdllQ,YAAW,WACT,IAAImlQ,EAAK7gR,EAAMniG,MAAM,GAIrBmiG,EAAMvlG,OAAS,EAEf,IAAK,IAAIH,EAAI,EAAGA,EAAIumX,EAAGpmX,OAAQH,IAC7B,IAAKumX,EAAGvmX,GAAGwmX,UACT,IACED,EAAGvmX,GAAGuK,SAAS47F,GACf,MAAO7lG,GACP8gH,YAAW,WACT,MAAM9gH,IACL,MAIR4N,KAAKqR,MAAMle,IAQhB,OALAqkG,EAAMhjG,KAAK,CACT65J,SAAUv/H,EACVzyB,SAAUA,EACVi8W,WAAW,IAENxpV,GAGTqpV,EAAM,SAAa9pN,GACjB,IAAK,IAAIv8J,EAAI,EAAGA,EAAI0lG,EAAMvlG,OAAQH,IAC5B0lG,EAAM1lG,GAAGu8J,SAAWA,IACtB72D,EAAM1lG,GAAGwmX,WAAY,IAM7BriX,EAAOC,QAAU,SAAU85I,GAIzB,OAAOkoO,EAAIhnX,KAAKghI,EAAM8d,IAGxB/5I,EAAOC,QAAQknR,OAAS,WACtB+6F,EAAIjmX,MAAMggI,EAAMlgI,YAGlBiE,EAAOC,QAAQ88I,SAAW,SAAU58I,GAC7BA,IACHA,EAAS87H,GAGX97H,EAAO0yD,sBAAwBovT,EAC/B9hX,EAAO2qQ,qBAAuBo3G,K,8FCxEhC,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAGR,EAAQ,KAAOnlO,Y,6BCzFf,IAAIm7E,EAAwB,EAAQ,KAEhCh0E,EAAU,EAAQ,KAItBlkJ,EAAOC,QAAUi4N,EAAwB,GAAGjxN,SAAW,WACrD,MAAO,WAAai9I,EAAQ5oJ,MAAQ,M,6BCPtC,IAAIgkL,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBsjL,EAAsB,EAAQ,KAIlChjM,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACDwjL,UAAW,WAGT,OAAOF,EAAoBrmX,MAAMX,KAAMS,e,6BCjB3C,IAAIujL,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBx8C,EAAW,EAAQ,IAEnB56I,EAAO,EAAQ,IAEf66W,EAAiB,EAAQ,IAEzBpmI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACDxlC,MAAO,SAAeH,GAGpB,IAAIn2J,EAAMs/I,EAASlnJ,MACf6C,EAAWskX,EAAev/W,GAC1BkgJ,EAAgBx7I,EAAKyxJ,EAAYt9J,UAAUC,OAAS,EAAID,UAAU,QAAK4G,EAAW,GACtF,OAAQ05O,EAAQl+O,GAAU,SAAU4C,EAAK/D,GACvC,IAAKomJ,EAAcpmJ,EAAO+D,EAAKmC,GAAM,OAAOm5O,EAAQvpL,cACnDnwD,GAAW,GAAM,GAAMmgJ,Y,6BC5B9B,IAAIw8B,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBqvB,EAAa,EAAQ,IAErB7rE,EAAW,EAAQ,IAEnBqT,EAAY,EAAQ,IAEpBjuJ,EAAO,EAAQ,IAEf86W,EAAqB,EAAQ,IAE7BD,EAAiB,EAAQ,IAEzBpmI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACDz+L,OAAQ,SAAgB84J,GAGtB,IAAIn2J,EAAMs/I,EAASlnJ,MACf6C,EAAWskX,EAAev/W,GAC1BkgJ,EAAgBx7I,EAAKyxJ,EAAYt9J,UAAUC,OAAS,EAAID,UAAU,QAAK4G,EAAW,GAClFggX,EAAS,IAAKD,EAAmBx/W,EAAKmrN,EAAW,SACjDpgB,EAASp4C,EAAU8sN,EAAOlpW,KAI9B,OAHA4iO,EAAQl+O,GAAU,SAAU4C,EAAK/D,GAC3BomJ,EAAcpmJ,EAAO+D,EAAKmC,IAAM+qM,EAAOhzM,KAAK0nX,EAAQ5hX,EAAK/D,UAC5D2F,GAAW,GAAM,GACbggX,M,6BCrCX,IAAIrjM,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBx8C,EAAW,EAAQ,IAEnB56I,EAAO,EAAQ,IAEf66W,EAAiB,EAAQ,IAEzBpmI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACDvlC,KAAM,SAAcJ,GAGlB,IAAIn2J,EAAMs/I,EAASlnJ,MACf6C,EAAWskX,EAAev/W,GAC1BkgJ,EAAgBx7I,EAAKyxJ,EAAYt9J,UAAUC,OAAS,EAAID,UAAU,QAAK4G,EAAW,GACtF,OAAO05O,EAAQl+O,GAAU,SAAU4C,EAAK/D,GACtC,GAAIomJ,EAAcpmJ,EAAO+D,EAAKmC,GAAM,OAAOm5O,EAAQvpL,KAAK91D,UACvD2F,GAAW,GAAM,GAAMvF,W,6BC5B9B,IAAIkiL,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBx8C,EAAW,EAAQ,IAEnB56I,EAAO,EAAQ,IAEf66W,EAAiB,EAAQ,IAEzBpmI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACD4jL,QAAS,SAAiBvpN,GAGxB,IAAIn2J,EAAMs/I,EAASlnJ,MACf6C,EAAWskX,EAAev/W,GAC1BkgJ,EAAgBx7I,EAAKyxJ,EAAYt9J,UAAUC,OAAS,EAAID,UAAU,QAAK4G,EAAW,GACtF,OAAO05O,EAAQl+O,GAAU,SAAU4C,EAAK/D,GACtC,GAAIomJ,EAAcpmJ,EAAO+D,EAAKmC,GAAM,OAAOm5O,EAAQvpL,KAAK/xD,UACvD4B,GAAW,GAAM,GAAMvF,W,gBC9BtB,EAAQ,EAMhBkiL,CAAE,CACA1+K,OAAQ,MACRi3I,MAAM,GACL,CACD54I,KARS,EAAQ,Q,6BCAnB,IAAIqgL,EAAI,EAAQ,GAEZ+8D,EAAU,EAAQ,IAElBxmF,EAAY,EAAQ,IAIxBypB,EAAE,CACA1+K,OAAQ,MACRi3I,MAAM,GACL,CACDgrO,QAAS,SAAiB9/N,EAAU+/N,GAClC,IAAIH,EAAS,IAAIrnX,KACjBu6J,EAAUitN,GACV,IAAIr/W,EAAMoyJ,EAAU8sN,EAAOl/W,KACvB6G,EAAMurJ,EAAU8sN,EAAOr4W,KACvBmP,EAAMo8I,EAAU8sN,EAAOlpW,KAK3B,OAJA4iO,EAAQt5F,GAAU,SAAU/oH,GAC1B,IAAIgpL,EAAa8/J,EAAc9oV,GAC1Bv2B,EAAIxI,KAAK0nX,EAAQ3/J,GAA0D14M,EAAIrP,KAAK0nX,EAAQ3/J,GAAYzkN,KAAKy7B,GAA/EvgB,EAAIxe,KAAK0nX,EAAQ3/J,EAAY,CAAChpL,OAE5D2oV,M,6BCtBX,IAAIrjM,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBx8C,EAAW,EAAQ,IAEnBigO,EAAiB,EAAQ,IAEzBM,EAAgB,EAAQ,KAExB1mI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACDr6L,SAAU,SAAkBi8Q,GAC1B,OAAOvkC,EAAQomI,EAAejgO,EAASlnJ,QAAQ,SAAUyF,EAAK/D,GAC5D,GAAI+lX,EAAc/lX,EAAO4jR,GAAgB,OAAOvkC,EAAQvpL,cACvDnwD,GAAW,GAAM,GAAMmgJ,Y,cCvB9B9iJ,EAAOC,QAAU,SAAUoK,EAAG3M,GAE5B,OAAO2M,IAAM3M,GAAK2M,GAAKA,GAAK3M,GAAKA,I,6BCFnC,IAAI4hL,EAAI,EAAQ,GAEZ+8D,EAAU,EAAQ,IAElBxmF,EAAY,EAAQ,IAIxBypB,EAAE,CACA1+K,OAAQ,MACRi3I,MAAM,GACL,CACDmrO,MAAO,SAAejgO,EAAU+/N,GAC9B,IAAIH,EAAS,IAAIrnX,KACjBu6J,EAAUitN,GACV,IAAI70K,EAASp4C,EAAU8sN,EAAOlpW,KAI9B,OAHA4iO,EAAQt5F,GAAU,SAAU/oH,GAC1Bi0K,EAAOhzM,KAAK0nX,EAAQG,EAAc9oV,GAAUA,MAEvC2oV,M,6BCnBX,IAAIrjM,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBx8C,EAAW,EAAQ,IAEnBigO,EAAiB,EAAQ,IAEzBpmI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACDikL,MAAO,SAAeriG,GACpB,OAAOvkC,EAAQomI,EAAejgO,EAASlnJ,QAAQ,SAAUyF,EAAK/D,GAC5D,GAAIA,IAAU4jR,EAAe,OAAOvkC,EAAQvpL,KAAK/xD,UAChD4B,GAAW,GAAM,GAAMvF,W,6BCrB9B,IAAIkiL,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBqvB,EAAa,EAAQ,IAErB7rE,EAAW,EAAQ,IAEnBqT,EAAY,EAAQ,IAEpBjuJ,EAAO,EAAQ,IAEf86W,EAAqB,EAAQ,IAE7BD,EAAiB,EAAQ,IAEzBpmI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACDkkL,QAAS,SAAiB7pN,GAGxB,IAAIn2J,EAAMs/I,EAASlnJ,MACf6C,EAAWskX,EAAev/W,GAC1BkgJ,EAAgBx7I,EAAKyxJ,EAAYt9J,UAAUC,OAAS,EAAID,UAAU,QAAK4G,EAAW,GAClFggX,EAAS,IAAKD,EAAmBx/W,EAAKmrN,EAAW,SACjDpgB,EAASp4C,EAAU8sN,EAAOlpW,KAI9B,OAHA4iO,EAAQl+O,GAAU,SAAU4C,EAAK/D,GAC/BixM,EAAOhzM,KAAK0nX,EAAQv/N,EAAcpmJ,EAAO+D,EAAKmC,GAAMlG,UACnD2F,GAAW,GAAM,GACbggX,M,6BCrCX,IAAIrjM,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBqvB,EAAa,EAAQ,IAErB7rE,EAAW,EAAQ,IAEnBqT,EAAY,EAAQ,IAEpBjuJ,EAAO,EAAQ,IAEf86W,EAAqB,EAAQ,IAE7BD,EAAiB,EAAQ,IAEzBpmI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACDmkL,UAAW,SAAmB9pN,GAG5B,IAAIn2J,EAAMs/I,EAASlnJ,MACf6C,EAAWskX,EAAev/W,GAC1BkgJ,EAAgBx7I,EAAKyxJ,EAAYt9J,UAAUC,OAAS,EAAID,UAAU,QAAK4G,EAAW,GAClFggX,EAAS,IAAKD,EAAmBx/W,EAAKmrN,EAAW,SACjDpgB,EAASp4C,EAAU8sN,EAAOlpW,KAI9B,OAHA4iO,EAAQl+O,GAAU,SAAU4C,EAAK/D,GAC/BixM,EAAOhzM,KAAK0nX,EAAQ5hX,EAAKqiJ,EAAcpmJ,EAAO+D,EAAKmC,WAClDP,GAAW,GAAM,GACbggX,M,6BCrCX,IAAIrjM,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBx8C,EAAW,EAAQ,IAEnBqT,EAAY,EAAQ,IAEpBwmF,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CAED1nJ,MAAO,SAAeyrG,GAOpB,IAJA,IAAI7/I,EAAMs/I,EAASlnJ,MACf2yM,EAASp4C,EAAU3yJ,EAAIuW,KACvB5d,EAAI,EAEDA,EAAIE,UAAUC,QACnBqgP,EAAQtgP,UAAUF,KAAMoyM,EAAQ/qM,GAAK,GAGvC,OAAOA,M,gBChCH,EAAQ,EAMhBo8K,CAAE,CACA1+K,OAAQ,MACRi3I,MAAM,GACL,CACDurO,GARO,EAAQ,Q,6BCAjB,IAAI9jM,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBx8C,EAAW,EAAQ,IAEnBqT,EAAY,EAAQ,IAEpB4sN,EAAiB,EAAQ,IAEzBpmI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACD77L,OAAQ,SAAgBk2J,GAGtB,IAAIn2J,EAAMs/I,EAASlnJ,MACf6C,EAAWskX,EAAev/W,GAC1BmgX,EAAYtnX,UAAUC,OAAS,EAC/Bo6P,EAAcitH,OAAY1gX,EAAY5G,UAAU,GAUpD,GATA85J,EAAUwD,GACVgjF,EAAQl+O,GAAU,SAAU4C,EAAK/D,GAC3BqmX,GACFA,GAAY,EACZjtH,EAAcp5P,GAEdo5P,EAAc/8F,EAAW+8F,EAAap5P,EAAO+D,EAAKmC,UAEnDP,GAAW,GAAM,GAChB0gX,EAAW,MAAMloX,UAAU,6CAC/B,OAAOi7P,M,6BCrCX,IAAI92E,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBx8C,EAAW,EAAQ,IAEnB56I,EAAO,EAAQ,IAEf66W,EAAiB,EAAQ,IAEzBpmI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACDzlC,KAAM,SAAcF,GAGlB,IAAIn2J,EAAMs/I,EAASlnJ,MACf6C,EAAWskX,EAAev/W,GAC1BkgJ,EAAgBx7I,EAAKyxJ,EAAYt9J,UAAUC,OAAS,EAAID,UAAU,QAAK4G,EAAW,GACtF,OAAO05O,EAAQl+O,GAAU,SAAU4C,EAAK/D,GACtC,GAAIomJ,EAAcpmJ,EAAO+D,EAAKmC,GAAM,OAAOm5O,EAAQvpL,cAClDnwD,GAAW,GAAM,GAAMmgJ,Y,6BC5B9B,IAAIw8B,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBx8C,EAAW,EAAQ,IAEnBqT,EAAY,EAAQ,IAIxBypB,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACD9/K,OAAQ,SAAgBne,EAAKqF,GAG3B,IAAIlD,EAAMs/I,EAASlnJ,MACfU,EAASD,UAAUC,OACvB65J,EAAUzvJ,GACV,IAAIk9W,EAAiBpgX,EAAIO,IAAI1C,GAE7B,IAAKuiX,GAAkBtnX,EAAS,EAC9B,MAAMb,UAAU,yBAGlB,IAAI6B,EAAQsmX,EAAiBpgX,EAAIoH,IAAIvJ,GAAO80J,EAAU75J,EAAS,EAAID,UAAU,QAAK4G,EAAtCkzJ,CAAiD90J,EAAKmC,GAElG,OADAA,EAAIuW,IAAI1Y,EAAKqF,EAASpJ,EAAO+D,EAAKmC,IAC3BA,M,6BC9BX,IAAIo8K,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBukL,EAAmB,EAAQ,KAI/BjkM,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACDwkL,OAAQ,WAGN,OAAOD,EAAiBtnX,MAAMX,KAAMS,e,6BCjBxC,IAAIymJ,EAAW,EAAQ,IAEnBqT,EAAY,EAAQ,IAGxB71J,EAAOC,QAAU,WAMf,IAHA,IAAIwZ,EAAM+oI,EAASlnJ,MACfmoX,EAAQ5tN,EAAUp8I,EAAI9X,KAEjBk7C,EAAI,EAAGl+B,EAAM5iB,UAAUC,OAAQ6gD,EAAIl+B,EAAKk+B,IAC/C4mU,EAAMxoX,KAAKwe,EAAK1d,UAAU8gD,IAG5B,OAAOpjC,I,6BCfT,IAAI6lK,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBsjL,EAAsB,EAAQ,KAIlChjM,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACDwjL,UAAW,WAGT,OAAOF,EAAoBrmX,MAAMX,KAAMS,e,6BCjB3C,IAAIujL,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBqvB,EAAa,EAAQ,IAErB7rE,EAAW,EAAQ,IAEnBqT,EAAY,EAAQ,IAEpB6sN,EAAqB,EAAQ,IAE7BrmI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACD0kL,WAAY,SAAoB3gO,GAC9B,IAAItpI,EAAM+oI,EAASlnJ,MACfqoX,EAAS,IAAKjB,EAAmBjpW,EAAK40M,EAAW,QAAxC,CAAiD50M,GAC1Ds/P,EAAUljH,EAAU8tN,EAAe,QAIvC,OAHAtnI,EAAQt5F,GAAU,SAAU/lJ,GAC1B+7Q,EAAQ99Q,KAAK0oX,EAAQ3mX,MAEhB2mX,M,6BC7BX,IAAIrkM,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBx8C,EAAW,EAAQ,IAEnB56I,EAAO,EAAQ,IAEfg8W,EAAiB,EAAQ,KAEzBvnI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACDxlC,MAAO,SAAeH,GAGpB,IAAI5/I,EAAM+oI,EAASlnJ,MACf6C,EAAWylX,EAAenqW,GAC1B2pI,EAAgBx7I,EAAKyxJ,EAAYt9J,UAAUC,OAAS,EAAID,UAAU,QAAK4G,EAAW,GACtF,OAAQ05O,EAAQl+O,GAAU,SAAUnB,GAClC,IAAKomJ,EAAcpmJ,EAAOA,EAAOyc,GAAM,OAAO4iO,EAAQvpL,cACrDnwD,GAAW,GAAO,GAAMmgJ,Y,6BC5B/B,IAAIw8B,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBqvB,EAAa,EAAQ,IAErB7rE,EAAW,EAAQ,IAEnBqT,EAAY,EAAQ,IAEpBjuJ,EAAO,EAAQ,IAEf86W,EAAqB,EAAQ,IAE7BkB,EAAiB,EAAQ,KAEzBvnI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACDz+L,OAAQ,SAAgB84J,GAGtB,IAAI5/I,EAAM+oI,EAASlnJ,MACf6C,EAAWylX,EAAenqW,GAC1B2pI,EAAgBx7I,EAAKyxJ,EAAYt9J,UAAUC,OAAS,EAAID,UAAU,QAAK4G,EAAW,GAClFghX,EAAS,IAAKjB,EAAmBjpW,EAAK40M,EAAW,SACjDo1J,EAAQ5tN,EAAU8tN,EAAOhiX,KAI7B,OAHA06O,EAAQl+O,GAAU,SAAUnB,GACtBomJ,EAAcpmJ,EAAOA,EAAOyc,IAAMgqW,EAAMxoX,KAAK0oX,EAAQ3mX,UACxD2F,GAAW,GAAO,GACdghX,M,6BCrCX,IAAIrkM,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBx8C,EAAW,EAAQ,IAEnB56I,EAAO,EAAQ,IAEfg8W,EAAiB,EAAQ,KAEzBvnI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACDvlC,KAAM,SAAcJ,GAGlB,IAAI5/I,EAAM+oI,EAASlnJ,MACf6C,EAAWylX,EAAenqW,GAC1B2pI,EAAgBx7I,EAAKyxJ,EAAYt9J,UAAUC,OAAS,EAAID,UAAU,QAAK4G,EAAW,GACtF,OAAO05O,EAAQl+O,GAAU,SAAUnB,GACjC,GAAIomJ,EAAcpmJ,EAAOA,EAAOyc,GAAM,OAAO4iO,EAAQvpL,KAAK91D,UACzD2F,GAAW,GAAO,GAAMvF,W,gBC9BvB,EAAQ,EAMhBkiL,CAAE,CACA1+K,OAAQ,MACRi3I,MAAM,GACL,CACD54I,KARS,EAAQ,Q,6BCAnB,IAAIqgL,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBqvB,EAAa,EAAQ,IAErB7rE,EAAW,EAAQ,IAEnBqT,EAAY,EAAQ,IAEpB6sN,EAAqB,EAAQ,IAE7BrmI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACDllJ,aAAc,SAAsBipG,GAClC,IAAItpI,EAAM+oI,EAASlnJ,MACfqoX,EAAS,IAAKjB,EAAmBjpW,EAAK40M,EAAW,SACjDw1J,EAAWhuN,EAAUp8I,EAAIhW,KACzBggX,EAAQ5tN,EAAU8tN,EAAOhiX,KAI7B,OAHA06O,EAAQt5F,GAAU,SAAU/lJ,GACtB6mX,EAAS5oX,KAAKwe,EAAKzc,IAAQymX,EAAMxoX,KAAK0oX,EAAQ3mX,MAE7C2mX,M,6BC9BX,IAAIrkM,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBx8C,EAAW,EAAQ,IAEnBqT,EAAY,EAAQ,IAEpBwmF,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACD8kL,eAAgB,SAAwB/gO,GACtC,IAAItpI,EAAM+oI,EAASlnJ,MACfuoX,EAAWhuN,EAAUp8I,EAAIhW,KAC7B,OAAQ44O,EAAQt5F,GAAU,SAAU/lJ,GAClC,IAAkC,IAA9B6mX,EAAS5oX,KAAKwe,EAAKzc,GAAiB,OAAOq/O,EAAQvpL,UACtDgwF,Y,6BCvBP,IAAIw8B,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBqvB,EAAa,EAAQ,IAErB7rE,EAAW,EAAQ,IAEnBqT,EAAY,EAAQ,IAEpBopC,EAAc,EAAQ,KAEtBo9C,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACD+kL,WAAY,SAAoBhhO,GAC9B,IAAI5kJ,EAAW8gM,EAAY3jM,MACvB0oX,EAAWxhO,EAASO,GACpB8gO,EAAWG,EAASvgX,IAOxB,MALuB,mBAAZogX,IACTG,EAAW,IAAK31J,EAAW,OAAhB,CAAwBtrE,GACnC8gO,EAAWhuN,EAAUmuN,EAASvgX,OAGxB44O,EAAQl+O,GAAU,SAAUnB,GAClC,IAAuC,IAAnC6mX,EAAS5oX,KAAK+oX,EAAUhnX,GAAkB,OAAOq/O,EAAQvpL,cAC5DnwD,GAAW,GAAO,GAAMmgJ,Y,6BClC/B,IAAIw8B,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBx8C,EAAW,EAAQ,IAEnBqT,EAAY,EAAQ,IAEpBwmF,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACDilL,aAAc,SAAsBlhO,GAClC,IAAItpI,EAAM+oI,EAASlnJ,MACfuoX,EAAWhuN,EAAUp8I,EAAIhW,KAC7B,OAAQ44O,EAAQt5F,GAAU,SAAU/lJ,GAClC,IAAkC,IAA9B6mX,EAAS5oX,KAAKwe,EAAKzc,GAAkB,OAAOq/O,EAAQvpL,UACvDgwF,Y,6BCvBP,IAAIw8B,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBx8C,EAAW,EAAQ,IAEnBohO,EAAiB,EAAQ,KAEzBvnI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACDh6I,KAAM,SAAc28K,GAClB,IAAIloN,EAAM+oI,EAASlnJ,MACf6C,EAAWylX,EAAenqW,GAC1ByqW,OAAoBvhX,IAAdg/N,EAA0B,IAAMvmO,OAAOumO,GAC7CvkO,EAAS,GAEb,OADAi/O,EAAQl+O,EAAUf,EAAOmB,KAAMnB,GAAQ,GAAO,GACvCA,EAAO4nD,KAAKk/T,O,6BCxBvB,IAAI5kM,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBqvB,EAAa,EAAQ,IAErB7rE,EAAW,EAAQ,IAEnBqT,EAAY,EAAQ,IAEpBjuJ,EAAO,EAAQ,IAEf86W,EAAqB,EAAQ,IAE7BkB,EAAiB,EAAQ,KAEzBvnI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACD97L,IAAK,SAAam2J,GAGhB,IAAI5/I,EAAM+oI,EAASlnJ,MACf6C,EAAWylX,EAAenqW,GAC1B2pI,EAAgBx7I,EAAKyxJ,EAAYt9J,UAAUC,OAAS,EAAID,UAAU,QAAK4G,EAAW,GAClFghX,EAAS,IAAKjB,EAAmBjpW,EAAK40M,EAAW,SACjDo1J,EAAQ5tN,EAAU8tN,EAAOhiX,KAI7B,OAHA06O,EAAQl+O,GAAU,SAAUnB,GAC1BymX,EAAMxoX,KAAK0oX,EAAQvgO,EAAcpmJ,EAAOA,EAAOyc,WAC9C9W,GAAW,GAAO,GACdghX,M,gBCvCH,EAAQ,EAMhBrkM,CAAE,CACA1+K,OAAQ,MACRi3I,MAAM,GACL,CACDurO,GARO,EAAQ,Q,6BCAjB,IAAI9jM,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBx8C,EAAW,EAAQ,IAEnBqT,EAAY,EAAQ,IAEpB+tN,EAAiB,EAAQ,KAEzBvnI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACD77L,OAAQ,SAAgBk2J,GAGtB,IAAI5/I,EAAM+oI,EAASlnJ,MACf6C,EAAWylX,EAAenqW,GAC1B4pW,EAAYtnX,UAAUC,OAAS,EAC/Bo6P,EAAcitH,OAAY1gX,EAAY5G,UAAU,GAUpD,GATA85J,EAAUwD,GACVgjF,EAAQl+O,GAAU,SAAUnB,GACtBqmX,GACFA,GAAY,EACZjtH,EAAcp5P,GAEdo5P,EAAc/8F,EAAW+8F,EAAap5P,EAAOA,EAAOyc,UAErD9W,GAAW,GAAO,GACjB0gX,EAAW,MAAMloX,UAAU,6CAC/B,OAAOi7P,M,6BCrCX,IAAI92E,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBx8C,EAAW,EAAQ,IAEnB56I,EAAO,EAAQ,IAEfg8W,EAAiB,EAAQ,KAEzBvnI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACDzlC,KAAM,SAAcF,GAGlB,IAAI5/I,EAAM+oI,EAASlnJ,MACf6C,EAAWylX,EAAenqW,GAC1B2pI,EAAgBx7I,EAAKyxJ,EAAYt9J,UAAUC,OAAS,EAAID,UAAU,QAAK4G,EAAW,GACtF,OAAO05O,EAAQl+O,GAAU,SAAUnB,GACjC,GAAIomJ,EAAcpmJ,EAAOA,EAAOyc,GAAM,OAAO4iO,EAAQvpL,cACpDnwD,GAAW,GAAO,GAAMmgJ,Y,6BC5B/B,IAAIw8B,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBqvB,EAAa,EAAQ,IAErB7rE,EAAW,EAAQ,IAEnBqT,EAAY,EAAQ,IAEpB6sN,EAAqB,EAAQ,IAE7BrmI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACDmlL,oBAAqB,SAA6BphO,GAChD,IAAItpI,EAAM+oI,EAASlnJ,MACfqoX,EAAS,IAAKjB,EAAmBjpW,EAAK40M,EAAW,QAAxC,CAAiD50M,GAC1Ds/P,EAAUljH,EAAU8tN,EAAe,QACnCF,EAAQ5tN,EAAU8tN,EAAOhiX,KAI7B,OAHA06O,EAAQt5F,GAAU,SAAU/lJ,GAC1B+7Q,EAAQ99Q,KAAK0oX,EAAQ3mX,IAAUymX,EAAMxoX,KAAK0oX,EAAQ3mX,MAE7C2mX,M,6BC9BX,IAAIrkM,EAAI,EAAQ,GAEZ0f,EAAU,EAAQ,IAElBqvB,EAAa,EAAQ,IAErB7rE,EAAW,EAAQ,IAEnBqT,EAAY,EAAQ,IAEpB6sN,EAAqB,EAAQ,IAE7BrmI,EAAU,EAAQ,IAItB/8D,EAAE,CACA1+K,OAAQ,MACRwtN,OAAO,EACPm0J,MAAM,EACNxqO,OAAQinD,GACP,CACD1/J,MAAO,SAAeyjH,GACpB,IAAItpI,EAAM+oI,EAASlnJ,MACfqoX,EAAS,IAAKjB,EAAmBjpW,EAAK40M,EAAW,QAAxC,CAAiD50M,GAE9D,OADA4iO,EAAQt5F,EAAU8S,EAAU8tN,EAAOhiX,KAAMgiX,GAClCA,M,gBC5BiB,EAAQ,GAIpCjoG,CAAsB,Y,gBCJM,EAAQ,GAIpCA,CAAsB,e,gBCJM,EAAQ,GAIpCA,CAAsB,iB,6BCFtB,IAAI9+Q,EAAU,EAAQ,KAElBwnX,EAAoB,CAACxuN,eAAgBz6J,UAAW6xM,YAChDtuJ,GAAU,EAGd,SAAS9pB,IACP8pB,GAAU,EACV9hD,EAAQoiR,GAAK,KACbpiR,EAAQ6iR,GAAK,KA6Ef,SAAS4kG,EAAevlX,EAAOwuE,GAC7B,OAAOA,EAAKisF,MAAK,SAAU6+E,GACzB,OAAOt5O,aAAiBs5O,KApF5Bn4O,EAAQ20B,QAAUA,EAQlB30B,EAAQw0B,OAER,SAAgBlxB,GACdA,EAAUA,GAAW,GACjBm7C,GAAS9pB,IACb8pB,GAAU,EACV,IAAI7lB,EAAK,EACLyrV,EAAY,EACZC,EAAa,GAgCjB,SAASC,EAAY3rV,IACft1B,EAAQkhX,eAAiBJ,EAAeE,EAAW1rV,GAAI/5B,MAAOyE,EAAQmhX,WAAaN,MACrFG,EAAW1rV,GAAIyrV,UAAYA,IAEvB/gX,EAAQihX,aACVD,EAAW1rV,GAAI8rV,QAAS,EACxBphX,EAAQihX,YAAYD,EAAW1rV,GAAIyrV,UAAWC,EAAW1rV,GAAI/5B,SAE7DylX,EAAW1rV,GAAI8rV,QAAS,EAkBhC,SAAkB9rV,EAAI/5B,GACpBob,QAAQC,KAAK,6CAA+C0e,EAAK,QACnD/5B,IAAUA,EAAMwE,OAASxE,IAAU,IAC1CikE,MAAM,MAAMjiE,SAAQ,SAAUgjC,GACnC5pB,QAAQC,KAAK,KAAO2pB,MArBhB8gV,CAASL,EAAW1rV,GAAIyrV,UAAWC,EAAW1rV,GAAI/5B,SAvCxDlC,EAAQoiR,GAAK,SAAUK,GACF,IAAfA,EAAQT,IACZ2lG,EAAWllG,EAAQwlG,MACbN,EAAWllG,EAAQwlG,IAAIF,OAyC/B,SAAmB9rV,GACb0rV,EAAW1rV,GAAI8rV,SACbphX,EAAQuhX,UACVvhX,EAAQuhX,UAAUP,EAAW1rV,GAAIyrV,UAAWC,EAAW1rV,GAAI/5B,OACjDylX,EAAW1rV,GAAI2rV,cACzBtqW,QAAQC,KAAK,kCAAoCoqW,EAAW1rV,GAAIyrV,UAAY,MAC5EpqW,QAAQC,KAAK,gHAAkHoqW,EAAW1rV,GAAIyrV,UAAY,OA9C1JQ,CAAUzlG,EAAQwlG,IAElBhtN,aAAa0sN,EAAWllG,EAAQwlG,IAAI1sN,gBAG/BosN,EAAWllG,EAAQwlG,MAI9BjoX,EAAQ6iR,GAAK,SAAUJ,EAAS94Q,GACX,IAAf84Q,EAAQV,KAEVU,EAAQwlG,GAAKhsV,IACb0rV,EAAWllG,EAAQwlG,IAAM,CACvBP,UAAW,KACXxlX,MAAOyH,EACP4xJ,QAASl7C,WAAWunQ,EAAY58W,KAAK,KAAMy3Q,EAAQwlG,IAInDR,EAAe99W,EAAK69W,GAAqB,IAAM,KAC/CO,QAAQ,O,8BCjDhB,YAaA,SAASI,EAAQpjG,GACVpgL,EAAMvlG,SACTgpX,KACW,GAIbzjR,EAAMA,EAAMvlG,QAAU2lR,EATxB3hR,EAAOC,QAAU8kX,EAYjB,IAOIC,EAPAzjR,EAAQ,GAWR/2F,EAAQ,EAWZ,SAASu4E,IACP,KAAOv4E,EAAQ+2F,EAAMvlG,QAAQ,CAC3B,IAAIi0L,EAAezlL,EAUnB,GAPAA,GAAgB,EAChB+2F,EAAM0uF,GAAch1L,OAMhBuP,EAnBO,KAmBW,CAGpB,IAAK,IAAIy6W,EAAO,EAAGC,EAAY3jR,EAAMvlG,OAASwO,EAAOy6W,EAAOC,EAAWD,IACrE1jR,EAAM0jR,GAAQ1jR,EAAM0jR,EAAOz6W,GAG7B+2F,EAAMvlG,QAAUwO,EAChBA,EAAQ,GAIZ+2F,EAAMvlG,OAAS,EACfwO,EAAQ,GACG,EAYb,IAAI0wC,EAA0B,qBAAX+7F,EAAyBA,EAAS+C,KACjDmrO,EAA0BjqU,EAAMkmO,kBAAoBlmO,EAAMmmO,uBAgG9D,SAAS+jG,EAAyBh/W,GAChC,OAAO,WAKL,IAAIi/W,EAAgBpoQ,WAAWqoQ,EAAa,GAIxCC,EAAiBC,YAAYF,EAAa,IAE9C,SAASA,IAGPztN,aAAawtN,GACbI,cAAcF,GACdn/W,MApGJ4+W,EADqC,oBAA5BG,EAsCX,SAA6C/+W,GAC3C,IAAIuuB,EAAS,EACT4kM,EAAW,IAAI4rJ,EAAwB/+W,GACvCuzH,EAAO1vG,SAAS61M,eAAe,IAInC,OAHAvG,EAASM,QAAQlgG,EAAM,CACrB+nJ,eAAe,IAEV,WACL/sP,GAAUA,EACVglG,EAAK5+F,KAAOpG,GA9CC+wV,CAAoC3iS,GA0BpCqiS,EAAyBriS,GAQ1CgiS,EAAQC,aAAeA,EA0EvBD,EAAQK,yBAA2BA,I,+CC3MnC,IAAIxoX,EAAU,EAAQ,KAEtBoD,EAAOC,QAAUrD,EAGjB,IAAI+oX,EAAOC,GAAa,GACpBC,EAAQD,GAAa,GACrBE,EAAOF,EAAa,MACpBG,EAAYH,OAAajjX,GACzBilJ,EAAOg+N,EAAa,GACpBI,EAAcJ,EAAa,IAE/B,SAASA,EAAa5oX,GACpB,IAAIlC,EAAI,IAAI8B,EAAQA,EAAQijR,IAG5B,OAFA/kR,EAAE8jR,GAAK,EACP9jR,EAAE+jR,GAAK7hR,EACAlC,EAGT8B,EAAQC,QAAU,SAAUG,GAC1B,GAAIA,aAAiBJ,EAAS,OAAOI,EACrC,GAAc,OAAVA,EAAgB,OAAO8oX,EAC3B,QAAcnjX,IAAV3F,EAAqB,OAAO+oX,EAChC,IAAc,IAAV/oX,EAAgB,OAAO2oX,EAC3B,IAAc,IAAV3oX,EAAiB,OAAO6oX,EAC5B,GAAc,IAAV7oX,EAAa,OAAO4qJ,EACxB,GAAc,KAAV5qJ,EAAc,OAAOgpX,EAEzB,GAAqB,kBAAVhpX,GAAuC,oBAAVA,EACtC,IACE,IAAIM,EAAON,EAAMM,KAEjB,GAAoB,oBAATA,EACT,OAAO,IAAIV,EAAQU,EAAKsK,KAAK5K,IAE/B,MAAOmiR,GACP,OAAO,IAAIviR,GAAQ,SAAUC,EAASC,GACpCA,EAAOqiR,MAKb,OAAOymG,EAAa5oX,IAGtB,IAAIipX,EAAmB,SAAyBljO,GAC9C,MAA0B,oBAAfloJ,MAAMoE,MAEfgnX,EAAmBprX,MAAMoE,KAClBpE,MAAMoE,KAAK8jJ,KAIpBkjO,EAAmB,SAAyB57W,GAC1C,OAAOxP,MAAME,UAAUqE,MAAMnE,KAAKoP,IAG7BxP,MAAME,UAAUqE,MAAMnE,KAAK8nJ,KAGpCnmJ,EAAQsjN,IAAM,SAAUzpE,GACtB,IAAIwD,EAAOgsO,EAAiBxvO,GAE5B,OAAO,IAAI75I,GAAQ,SAAUC,EAASC,GACpC,GAAoB,IAAhBm9I,EAAKj+I,OAAc,OAAOa,EAAQ,IACtC,IAAIqpX,EAAYjsO,EAAKj+I,OAErB,SAASivH,EAAIpvH,EAAGu2K,GACd,GAAIA,IAAuB,kBAARA,GAAmC,oBAARA,GAAqB,CACjE,GAAIA,aAAex1K,GAAWw1K,EAAI90K,OAASV,EAAQ7B,UAAUuC,KAAM,CACjE,KAAkB,IAAX80K,EAAIwsG,IACTxsG,EAAMA,EAAIysG,GAGZ,OAAe,IAAXzsG,EAAIwsG,GAAiB3zJ,EAAIpvH,EAAGu2K,EAAIysG,KACrB,IAAXzsG,EAAIwsG,IAAU9hR,EAAOs1K,EAAIysG,SAC7BzsG,EAAI90K,MAAK,SAAU80K,GACjBnnD,EAAIpvH,EAAGu2K,KACNt1K,IAGH,IAAIQ,EAAO80K,EAAI90K,KAEf,GAAoB,oBAATA,EAKT,YAJQ,IAAIV,EAAQU,EAAKsK,KAAKwqK,IAC5B90K,MAAK,SAAU80K,GACfnnD,EAAIpvH,EAAGu2K,KACNt1K,GAMTm9I,EAAKp+I,GAAKu2K,EAEU,MAAd8zM,GACJrpX,EAAQo9I,GAIZ,IAAK,IAAIp+I,EAAI,EAAGA,EAAIo+I,EAAKj+I,OAAQH,IAC/BovH,EAAIpvH,EAAGo+I,EAAKp+I,QAKlBe,EAAQE,OAAS,SAAUE,GACzB,OAAO,IAAIJ,GAAQ,SAAUC,EAASC,GACpCA,EAAOE,OAIXJ,EAAQ62N,KAAO,SAAU34L,GACvB,OAAO,IAAIl+B,GAAQ,SAAUC,EAASC,GACpCmpX,EAAiBnrV,GAAQh6B,SAAQ,SAAU9D,GACzCJ,EAAQC,QAAQG,GAAOM,KAAKT,EAASC,UAO3CF,EAAQ7B,UAAiB,MAAI,SAAUmkR,GACrC,OAAO5jR,KAAKgC,KAAK,KAAM4hR,K,6BC7HzB,uNAAI8I,EACY,oBAAqBhuI,KADjCguI,EAEQ,WAAYhuI,MAAQ,aAAc97I,OAF1C8pR,EAGI,eAAgBhuI,MAAQ,SAAUA,MAAQ,WAC9C,IAEE,OADA,IAAIv8B,MACG,EACP,MAAOthH,GACP,OAAO,GALqC,GAH9C6rR,EAWQ,aAAchuI,KAXtBguI,EAYW,gBAAiBhuI,KAOhC,GAAIguI,EACF,IAAIm+F,EAAc,CAAC,qBAAsB,sBAAuB,6BAA8B,sBAAuB,uBAAwB,sBAAuB,uBAAwB,wBAAyB,yBAEjNzzM,EAAoB/iE,YAAYC,QAAU,SAAUroG,GACtD,OAAOA,GAAO4+W,EAAY/pX,QAAQ1B,OAAOK,UAAUkM,SAAShM,KAAKsM,KAAS,GAI9E,SAAS6+W,EAAc3jX,GAKrB,GAJoB,kBAATA,IACTA,EAAOrH,OAAOqH,IAGZ,6BAA6BqyB,KAAKryB,IAAkB,KAATA,EAC7C,MAAM,IAAItH,UAAU,0CAGtB,OAAOsH,EAAKywG,cAGd,SAASmzQ,EAAerpX,GAKtB,MAJqB,kBAAVA,IACTA,EAAQ5B,OAAO4B,IAGVA,EAIT,SAASspX,EAAYC,GACnB,IAAIpoX,EAAW,CACbjB,KAAM,WACJ,IAAIF,EAAQupX,EAAMzmX,QAClB,MAAO,CACLzC,UAAgBsF,IAAV3F,EACNA,MAAOA,KAWb,OANIgrR,IACF7pR,EAASD,OAAOC,UAAY,WAC1B,OAAOA,IAIJA,EAGF,SAAS20N,EAAQx6E,GACtBh9I,KAAK4H,IAAM,GAEPo1I,aAAmBw6E,EACrBx6E,EAAQx3I,SAAQ,SAAU9D,EAAOyF,GAC/BnH,KAAKg/L,OAAO73L,EAAMzF,KACjB1B,MACMT,MAAMwM,QAAQixI,GACvBA,EAAQx3I,SAAQ,SAAUi9G,GACxBziH,KAAKg/L,OAAOv8E,EAAO,GAAIA,EAAO,MAC7BziH,MACMg9I,GACT59I,OAAOgyM,oBAAoBp0D,GAASx3I,SAAQ,SAAU2B,GACpDnH,KAAKg/L,OAAO73L,EAAM61I,EAAQ71I,MACzBnH,MAgEP,SAASkrX,EAAShpX,GAChB,GAAIA,EAAKipX,SACP,OAAO7pX,QAAQE,OAAO,IAAI3B,UAAU,iBAGtCqC,EAAKipX,UAAW,EAGlB,SAASC,EAAgB3rL,GACvB,OAAO,IAAIn+L,SAAQ,SAAUC,EAASC,GACpCi+L,EAAO2T,OAAS,WACd7xM,EAAQk+L,EAAO39L,SAGjB29L,EAAO0T,QAAU,WACf3xM,EAAOi+L,EAAOj8L,WAKpB,SAAS6nX,EAAsBz7P,GAC7B,IAAI6vE,EAAS,IAAIsU,WACbgwE,EAAUqnG,EAAgB3rL,GAE9B,OADAA,EAAO6rL,kBAAkB17P,GAClBm0J,EAqBT,SAASwnG,EAAYzwM,GACnB,GAAIA,EAAIh3K,MACN,OAAOg3K,EAAIh3K,MAAM,GAEjB,IAAI+iD,EAAO,IAAI/T,WAAWgoI,EAAI5e,YAE9B,OADAr1G,EAAK1oC,IAAI,IAAI20B,WAAWgoI,IACjBj0H,EAAKoR,OAIhB,SAASogJ,IAwGP,OAvGAr4M,KAAKmrX,UAAW,EAEhBnrX,KAAKwrX,UAAY,SAAUtpX,GA7L7B,IAAoB+J,EAwMhBjM,KAAKmrX,SAAWnrX,KAAKmrX,SACrBnrX,KAAKyrX,UAAYvpX,EAEZA,EAEsB,kBAATA,EAChBlC,KAAK0rX,UAAYxpX,EACRwqR,GAAgBvqK,KAAK1iH,UAAU0pJ,cAAcjnJ,GACtDlC,KAAK2rX,UAAYzpX,EACRwqR,GAAoBv1G,SAAS13K,UAAU0pJ,cAAcjnJ,GAC9DlC,KAAK4rX,cAAgB1pX,EACZwqR,GAAwB70G,gBAAgBp4K,UAAU0pJ,cAAcjnJ,GACzElC,KAAK0rX,UAAYxpX,EAAKyJ,WACb+gR,GAAuBA,KArNlBzgR,EAqN6C/J,IApNjDqyG,SAAS90G,UAAU0pJ,cAAcl9I,KAqN3CjM,KAAK6rX,iBAAmBN,EAAYrpX,EAAK+1D,QAEzCj4D,KAAKyrX,UAAY,IAAItpQ,KAAK,CAACniH,KAAK6rX,oBACvBn/F,IAAwBr4K,YAAY50G,UAAU0pJ,cAAcjnJ,IAASk1K,EAAkBl1K,IAChGlC,KAAK6rX,iBAAmBN,EAAYrpX,GAEpClC,KAAK0rX,UAAYxpX,EAAO9C,OAAOK,UAAUkM,SAAShM,KAAKuC,GAhBvDlC,KAAK0rX,UAAY,GAmBd1rX,KAAKg9I,QAAQhuI,IAAI,kBACA,kBAAT9M,EACTlC,KAAKg9I,QAAQ7+H,IAAI,eAAgB,4BACxBne,KAAK2rX,WAAa3rX,KAAK2rX,UAAU/wW,KAC1C5a,KAAKg9I,QAAQ7+H,IAAI,eAAgBne,KAAK2rX,UAAU/wW,MACvC8xQ,GAAwB70G,gBAAgBp4K,UAAU0pJ,cAAcjnJ,IACzElC,KAAKg9I,QAAQ7+H,IAAI,eAAgB,qDAKnCuuQ,IACF1sR,KAAK4vH,KAAO,WACV,IAAI/tH,EAAWqpX,EAASlrX,MAExB,GAAI6B,EACF,OAAOA,EAGT,GAAI7B,KAAK2rX,UACP,OAAOrqX,QAAQC,QAAQvB,KAAK2rX,WACvB,GAAI3rX,KAAK6rX,iBACd,OAAOvqX,QAAQC,QAAQ,IAAI4gH,KAAK,CAACniH,KAAK6rX,oBACjC,GAAI7rX,KAAK4rX,cACd,MAAM,IAAItkX,MAAM,wCAEhB,OAAOhG,QAAQC,QAAQ,IAAI4gH,KAAK,CAACniH,KAAK0rX,cAI1C1rX,KAAKs4N,YAAc,WACjB,OAAIt4N,KAAK6rX,iBACAX,EAASlrX,OAASsB,QAAQC,QAAQvB,KAAK6rX,kBAEvC7rX,KAAK4vH,OAAO5tH,KAAKqpX,KAK9BrrX,KAAK8vG,KAAO,WACV,IAAIjuG,EAAWqpX,EAASlrX,MAExB,GAAI6B,EACF,OAAOA,EAGT,GAAI7B,KAAK2rX,UACP,OAhHN,SAAwB/7P,GACtB,IAAI6vE,EAAS,IAAIsU,WACbgwE,EAAUqnG,EAAgB3rL,GAE9B,OADAA,EAAOqsL,WAAWl8P,GACXm0J,EA4GIgoG,CAAe/rX,KAAK2rX,WACtB,GAAI3rX,KAAK6rX,iBACd,OAAOvqX,QAAQC,QA3GrB,SAA+Bu5K,GAI7B,IAHA,IAAIj0H,EAAO,IAAI/T,WAAWgoI,GACtB7oD,EAAQ,IAAI1yH,MAAMsnD,EAAKnmD,QAElBH,EAAI,EAAGA,EAAIsmD,EAAKnmD,OAAQH,IAC/B0xH,EAAM1xH,GAAKT,OAAOqsH,aAAatlE,EAAKtmD,IAGtC,OAAO0xH,EAAMvoE,KAAK,IAmGSsiU,CAAsBhsX,KAAK6rX,mBAC7C,GAAI7rX,KAAK4rX,cACd,MAAM,IAAItkX,MAAM,wCAEhB,OAAOhG,QAAQC,QAAQvB,KAAK0rX,YAI5Bh/F,IACF1sR,KAAKisX,SAAW,WACd,OAAOjsX,KAAK8vG,OAAO9tG,KAAKkqH,KAI5BlsH,KAAKy3G,KAAO,WACV,OAAOz3G,KAAK8vG,OAAO9tG,KAAK6K,KAAKC,QAGxB9M,KA3NTw3N,EAAQ/3N,UAAUu/L,OAAS,SAAU73L,EAAMzF,GACzCyF,EAAO2jX,EAAc3jX,GACrBzF,EAAQqpX,EAAerpX,GACvB,IAAIq6W,EAAW/7W,KAAK4H,IAAIT,GACxBnH,KAAK4H,IAAIT,GAAQ40W,EAAWA,EAAW,KAAOr6W,EAAQA,GAGxD81N,EAAQ/3N,UAAkB,OAAI,SAAU0H,UAC/BnH,KAAK4H,IAAIkjX,EAAc3jX,KAGhCqwN,EAAQ/3N,UAAUuP,IAAM,SAAU7H,GAEhC,OADAA,EAAO2jX,EAAc3jX,GACdnH,KAAKmI,IAAIhB,GAAQnH,KAAK4H,IAAIT,GAAQ,MAG3CqwN,EAAQ/3N,UAAU0I,IAAM,SAAUhB,GAChC,OAAOnH,KAAK4H,IAAIlI,eAAeorX,EAAc3jX,KAG/CqwN,EAAQ/3N,UAAU0e,IAAM,SAAUhX,EAAMzF,GACtC1B,KAAK4H,IAAIkjX,EAAc3jX,IAAS4jX,EAAerpX,IAGjD81N,EAAQ/3N,UAAU+F,QAAU,SAAUsF,EAAU5J,GAC9C,IAAK,IAAIiG,KAAQnH,KAAK4H,IAChB5H,KAAK4H,IAAIlI,eAAeyH,IAC1B2D,EAASnL,KAAKuB,EAASlB,KAAK4H,IAAIT,GAAOA,EAAMnH,OAKnDw3N,EAAQ/3N,UAAUsF,KAAO,WACvB,IAAIkmX,EAAQ,GAIZ,OAHAjrX,KAAKwF,SAAQ,SAAU9D,EAAOyF,GAC5B8jX,EAAMhoX,KAAKkE,MAEN6jX,EAAYC,IAGrBzzJ,EAAQ/3N,UAAU+/B,OAAS,WACzB,IAAIyrV,EAAQ,GAIZ,OAHAjrX,KAAKwF,SAAQ,SAAU9D,GACrBupX,EAAMhoX,KAAKvB,MAENspX,EAAYC,IAGrBzzJ,EAAQ/3N,UAAUqH,QAAU,WAC1B,IAAImkX,EAAQ,GAIZ,OAHAjrX,KAAKwF,SAAQ,SAAU9D,EAAOyF,GAC5B8jX,EAAMhoX,KAAK,CAACkE,EAAMzF,OAEbspX,EAAYC,IAGjBv+F,IACFl1D,EAAQ/3N,UAAUmD,OAAOC,UAAY20N,EAAQ/3N,UAAUqH,SAsKzD,IAAI4+O,EAAU,CAAC,SAAU,MAAO,OAAQ,UAAW,OAAQ,OAOpD,SAAS9tB,EAAQ/3C,EAAO53K,GAE7B,IAAI/F,GADJ+F,EAAUA,GAAW,IACF/F,KAEnB,GAAI29K,aAAiB+3C,EAAS,CAC5B,GAAI/3C,EAAMsrM,SACR,MAAM,IAAItrX,UAAU,gBAGtBG,KAAK6xB,IAAMguJ,EAAMhuJ,IACjB7xB,KAAKqzO,YAAcxzD,EAAMwzD,YAEpBprO,EAAQ+0I,UACXh9I,KAAKg9I,QAAU,IAAIw6E,EAAQ33C,EAAM7iC,UAGnCh9I,KAAKo9I,OAASyiC,EAAMziC,OACpBp9I,KAAK86D,KAAO+kH,EAAM/kH,KAClB96D,KAAKksX,OAASrsM,EAAMqsM,OAEfhqX,GAA2B,MAAnB29K,EAAM4rM,YACjBvpX,EAAO29K,EAAM4rM,UACb5rM,EAAMsrM,UAAW,QAGnBnrX,KAAK6xB,IAAM/xB,OAAO+/K,GAcpB,GAXA7/K,KAAKqzO,YAAcprO,EAAQorO,aAAerzO,KAAKqzO,aAAe,eAE1DprO,EAAQ+0I,SAAYh9I,KAAKg9I,UAC3Bh9I,KAAKg9I,QAAU,IAAIw6E,EAAQvvN,EAAQ+0I,UAGrCh9I,KAAKo9I,OAvCP,SAAyBA,GACvB,IAAI+uO,EAAU/uO,EAAOxxI,cACrB,OAAO85O,EAAQ5kP,QAAQqrX,IAAY,EAAIA,EAAU/uO,EAqCnCgvO,CAAgBnkX,EAAQm1I,QAAUp9I,KAAKo9I,QAAU,OAC/Dp9I,KAAK86D,KAAO7yD,EAAQ6yD,MAAQ96D,KAAK86D,MAAQ,KACzC96D,KAAKksX,OAASjkX,EAAQikX,QAAUlsX,KAAKksX,OACrClsX,KAAKqsX,SAAW,MAEK,QAAhBrsX,KAAKo9I,QAAoC,SAAhBp9I,KAAKo9I,SAAsBl7I,EACvD,MAAM,IAAIrC,UAAU,6CAGtBG,KAAKwrX,UAAUtpX,GASjB,SAASgqH,EAAOhqH,GACd,IAAIoqX,EAAO,IAAIn1M,SASf,OARAj1K,EAAKslE,OAAOC,MAAM,KAAKjiE,SAAQ,SAAUy2J,GACvC,GAAIA,EAAO,CACT,IAAIx0F,EAAQw0F,EAAMx0F,MAAM,KACpBtgE,EAAOsgE,EAAMjjE,QAAQgH,QAAQ,MAAO,KACpC9J,EAAQ+lE,EAAM/d,KAAK,KAAKl+C,QAAQ,MAAO,KAC3C8gX,EAAKttL,OAAOj9E,mBAAmB56G,GAAO46G,mBAAmBrgH,QAGtD4qX,EAGT,SAAShiG,EAAaiiG,GACpB,IAAIvvO,EAAU,IAAIw6E,EAalB,OAV0B+0J,EAAW/gX,QAAQ,eAAgB,KACzCi8D,MAAM,SAASjiE,SAAQ,SAAUgjC,GACnD,IAAIk0E,EAAQl0E,EAAKi/B,MAAM,KACnBhiE,EAAMi3G,EAAMl4G,QAAQgjE,OAExB,GAAI/hE,EAAK,CACP,IAAI/D,EAAQg7G,EAAMhzD,KAAK,KAAK8d,OAC5Bw1E,EAAQgiD,OAAOv5L,EAAK/D,OAGjBs7I,EAIF,SAASwvO,EAASC,EAAUxkX,GAC5BA,IACHA,EAAU,IAGZjI,KAAK4a,KAAO,UACZ5a,KAAKqnE,YAA4BhgE,IAAnBY,EAAQo/D,OAAuB,IAAMp/D,EAAQo/D,OAC3DrnE,KAAK6oT,GAAK7oT,KAAKqnE,QAAU,KAAOrnE,KAAKqnE,OAAS,IAC9CrnE,KAAKqrR,WAAa,eAAgBpjR,EAAUA,EAAQojR,WAAa,GACjErrR,KAAKg9I,QAAU,IAAIw6E,EAAQvvN,EAAQ+0I,SACnCh9I,KAAK6xB,IAAM5pB,EAAQ4pB,KAAO,GAE1B7xB,KAAKwrX,UAAUiB,GAjDjB70J,EAAQn4N,UAAU+I,MAAQ,WACxB,OAAO,IAAIovN,EAAQ53N,KAAM,CACvBkC,KAAMlC,KAAKyrX,aAkCfpzK,EAAK14M,KAAKi4N,EAAQn4N,WAelB44M,EAAK14M,KAAK6sX,EAAS/sX,WAEnB+sX,EAAS/sX,UAAU+I,MAAQ,WACzB,OAAO,IAAIgkX,EAASxsX,KAAKyrX,UAAW,CAClCpkT,OAAQrnE,KAAKqnE,OACbgkN,WAAYrrR,KAAKqrR,WACjBruI,QAAS,IAAIw6E,EAAQx3N,KAAKg9I,SAC1BnrH,IAAK7xB,KAAK6xB,OAId26V,EAAShpX,MAAQ,WACf,IAAIy+G,EAAW,IAAIuqQ,EAAS,KAAM,CAChCnlT,OAAQ,EACRgkN,WAAY,KAGd,OADAppK,EAASrnG,KAAO,QACTqnG,GAGT,IAAIyqQ,EAAmB,CAAC,IAAK,IAAK,IAAK,IAAK,KAE5CF,EAASG,SAAW,SAAU96V,EAAKw1C,GACjC,IAA0C,IAAtCqlT,EAAiB5rX,QAAQumE,GAC3B,MAAM,IAAIqqI,WAAW,uBAGvB,OAAO,IAAI86K,EAAS,KAAM,CACxBnlT,OAAQA,EACR21E,QAAS,CACPklH,SAAUrwO,MAKT,IAAI+6V,EAAeluO,KAAKkuO,aAE/B,IACE,IAAIA,EACJ,MAAO3hX,IACP2hX,EAAe,SAAsBr6R,EAASprF,GAC5CnH,KAAKuyF,QAAUA,EACfvyF,KAAKmH,KAAOA,EACZ,IAAI3D,EAAQ8D,MAAMirF,GAClBvyF,KAAKgI,MAAQxE,EAAMwE,QAGRvI,UAAYL,OAAOc,OAAOoH,MAAM7H,WAC7CmtX,EAAantX,UAAUQ,YAAc2sX,EAGhC,SAASt+P,EAAMuxD,EAAOhiH,GAC3B,OAAO,IAAIv8D,SAAQ,SAAUC,EAASC,GACpC,IAAI+gH,EAAU,IAAIq1G,EAAQ/3C,EAAOhiH,GAEjC,GAAI0kD,EAAQ2pQ,QAAU3pQ,EAAQ2pQ,OAAOj1J,QACnC,OAAOz1N,EAAO,IAAIorX,EAAa,UAAW,eAG5C,IAAIC,EAAM,IAAIrqQ,eAEd,SAASsqQ,IACPD,EAAI/gG,QAGN+gG,EAAIz5K,OAAS,WACX,IAAInrM,EAAU,CACZo/D,OAAQwlT,EAAIxlT,OACZgkN,WAAYwhG,EAAIxhG,WAChBruI,QAASstI,EAAauiG,EAAI1hG,yBAA2B,KAEvDljR,EAAQ4pB,IAAM,gBAAiBg7V,EAAMA,EAAI5hG,YAAchjR,EAAQ+0I,QAAQhuI,IAAI,iBAC3E,IAAI9M,EAAO,aAAc2qX,EAAMA,EAAI5qQ,SAAW4qQ,EAAIzhG,aAClDzpK,YAAW,WACTpgH,EAAQ,IAAIirX,EAAStqX,EAAM+F,MAC1B,IAGL4kX,EAAI15K,QAAU,WACZxxF,YAAW,WACTngH,EAAO,IAAI3B,UAAU,6BACpB,IAGLgtX,EAAIvhG,UAAY,WACd3pK,YAAW,WACTngH,EAAO,IAAI3B,UAAU,6BACpB,IAGLgtX,EAAI30J,QAAU,WACZv2G,YAAW,WACTngH,EAAO,IAAIorX,EAAa,UAAW,iBAClC,IAWLC,EAAInqQ,KAAKH,EAAQ66B,OARjB,SAAgBvrH,GACd,IACE,MAAe,KAARA,GAAc6sH,KAAKwjH,SAAS9P,KAAO1zG,KAAKwjH,SAAS9P,KAAOvgO,EAC/D,MAAOhxB,GACP,OAAOgxB,GAIck7V,CAAOxqQ,EAAQ1wF,MAAM,GAElB,YAAxB0wF,EAAQ8wH,YACVw5I,EAAIjqQ,iBAAkB,EACW,SAAxBL,EAAQ8wH,cACjBw5I,EAAIjqQ,iBAAkB,GAGpB,iBAAkBiqQ,IAChBngG,EACFmgG,EAAI3qQ,aAAe,OACVwqK,IAAoG,IAA7EnqK,EAAQy6B,QAAQhuI,IAAI,gBAAgBlO,QAAQ,8BAC5E+rX,EAAI3qQ,aAAe,gBAIvBK,EAAQy6B,QAAQx3I,SAAQ,SAAU9D,EAAOyF,GACvC0lX,EAAI9pQ,iBAAiB57G,EAAMzF,MAGzB6gH,EAAQ2pQ,SACV3pQ,EAAQ2pQ,OAAOvxW,iBAAiB,QAASmyW,GAEzCD,EAAI7hG,mBAAqB,WAEA,IAAnB6hG,EAAIxnR,YACNkd,EAAQ2pQ,OAAOjxW,oBAAoB,QAAS6xW,KAKlDD,EAAIniX,KAAkC,qBAAtB63G,EAAQkpQ,UAA4B,KAAOlpQ,EAAQkpQ,cAGvEn9P,EAAMmzB,UAAW,EAEZ/C,KAAKpwB,QACRowB,KAAKpwB,MAAQA,EACbowB,KAAK84E,QAAUA,EACf94E,KAAKk5E,QAAUA,EACfl5E,KAAK8tO,SAAWA,I,iBC7iBlB,aACA,WACE,IAAIQ,EAAgBC,EAAQC,EAAUC,EAAgBC,EAAcC,EAEzC,qBAAhBv4P,aAA+C,OAAhBA,aAAwBA,YAAYE,IAC5EtwH,EAAOC,QAAU,WACf,OAAOmwH,YAAYE,OAEO,qBAAZ8pC,GAAuC,OAAZA,GAAoBA,EAAQmuN,QACvEvoX,EAAOC,QAAU,WACf,OAAQqoX,IAAmBI,GAAgB,KAG7CH,EAASnuN,EAAQmuN,OAQjBE,GANAH,EAAiB,WACf,IAAI1pH,EAEJ,OAAe,KADfA,EAAK2pH,KACK,GAAW3pH,EAAG,OAI1B+pH,EAA4B,IAAnBvuN,EAAQwuN,SACjBF,EAAeD,EAAiBE,GACvBt4P,KAAKC,KACdtwH,EAAOC,QAAU,WACf,OAAOowH,KAAKC,MAAQk4P,GAGtBA,EAAWn4P,KAAKC,QAEhBtwH,EAAOC,QAAU,WACf,OAAO,IAAIowH,MAAOqiH,UAAY81I,GAGhCA,GAAW,IAAIn4P,MAAOqiH,aAEvBz3O,KAAKK,Q,gDC3BR,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,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","file":"static/js/2.888fed5a.chunk.js","sourcesContent":["/*! *****************************************************************************\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***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\nexport function __spreadArray(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 || from);\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import { __assign, __read, __spreadArray, __values } from \"tslib\";\nexport var constructStack = function constructStack() {\n var absoluteEntries = [];\n var relativeEntries = [];\n var entriesNameSet = new Set();\n\n var sort = function sort(entries) {\n return entries.sort(function (a, b) {\n return stepWeights[b.step] - stepWeights[a.step] || priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"];\n });\n };\n\n var removeByName = function removeByName(toRemove) {\n var isRemoved = false;\n\n var filterCb = function filterCb(entry) {\n if (entry.name && entry.name === toRemove) {\n isRemoved = true;\n entriesNameSet.delete(toRemove);\n return false;\n }\n\n return true;\n };\n\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n\n var removeByReference = function removeByReference(toRemove) {\n var isRemoved = false;\n\n var filterCb = function filterCb(entry) {\n if (entry.middleware === toRemove) {\n isRemoved = true;\n if (entry.name) entriesNameSet.delete(entry.name);\n return false;\n }\n\n return true;\n };\n\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n\n var cloneTo = function cloneTo(toStack) {\n absoluteEntries.forEach(function (entry) {\n //@ts-ignore\n toStack.add(entry.middleware, __assign({}, entry));\n });\n relativeEntries.forEach(function (entry) {\n //@ts-ignore\n toStack.addRelativeTo(entry.middleware, __assign({}, entry));\n });\n return toStack;\n };\n\n var expandRelativeMiddlewareList = function expandRelativeMiddlewareList(from) {\n var expandedMiddlewareList = [];\n from.before.forEach(function (entry) {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n } else {\n expandedMiddlewareList.push.apply(expandedMiddlewareList, __spreadArray([], __read(expandRelativeMiddlewareList(entry))));\n }\n });\n expandedMiddlewareList.push(from);\n from.after.reverse().forEach(function (entry) {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n } else {\n expandedMiddlewareList.push.apply(expandedMiddlewareList, __spreadArray([], __read(expandRelativeMiddlewareList(entry))));\n }\n });\n return expandedMiddlewareList;\n };\n /**\n * Get a final list of middleware in the order of being executed in the resolved handler.\n */\n\n\n var getMiddlewareList = function getMiddlewareList() {\n var normalizedAbsoluteEntries = [];\n var normalizedRelativeEntries = [];\n var normalizedEntriesNameMap = {};\n absoluteEntries.forEach(function (entry) {\n var normalizedEntry = __assign(__assign({}, entry), {\n before: [],\n after: []\n });\n\n if (normalizedEntry.name) normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedAbsoluteEntries.push(normalizedEntry);\n });\n relativeEntries.forEach(function (entry) {\n var normalizedEntry = __assign(__assign({}, entry), {\n before: [],\n after: []\n });\n\n if (normalizedEntry.name) normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedRelativeEntries.push(normalizedEntry);\n });\n normalizedRelativeEntries.forEach(function (entry) {\n if (entry.toMiddleware) {\n var toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n\n if (toMiddleware === undefined) {\n throw new Error(entry.toMiddleware + \" is not found when adding \" + (entry.name || \"anonymous\") + \" middleware \" + entry.relation + \" \" + entry.toMiddleware);\n }\n\n if (entry.relation === \"after\") {\n toMiddleware.after.push(entry);\n }\n\n if (entry.relation === \"before\") {\n toMiddleware.before.push(entry);\n }\n }\n });\n var mainChain = sort(normalizedAbsoluteEntries).map(expandRelativeMiddlewareList).reduce(function (wholeList, expendedMiddlewareList) {\n // TODO: Replace it with Array.flat();\n wholeList.push.apply(wholeList, __spreadArray([], __read(expendedMiddlewareList)));\n return wholeList;\n }, []);\n return mainChain.map(function (entry) {\n return entry.middleware;\n });\n };\n\n var stack = {\n add: function add(middleware, options) {\n if (options === void 0) {\n options = {};\n }\n\n var name = options.name,\n override = options.override;\n\n var entry = __assign({\n step: \"initialize\",\n priority: \"normal\",\n middleware: middleware\n }, options);\n\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override) throw new Error(\"Duplicate middleware name '\" + name + \"'\");\n var toOverrideIndex = absoluteEntries.findIndex(function (entry) {\n return entry.name === name;\n });\n var toOverride = absoluteEntries[toOverrideIndex];\n\n if (toOverride.step !== entry.step || toOverride.priority !== entry.priority) {\n throw new Error(\"\\\"\" + name + \"\\\" middleware with \" + toOverride.priority + \" priority in \" + toOverride.step + \" step cannot be \" + (\"overridden by same-name middleware with \" + entry.priority + \" priority in \" + entry.step + \" step.\"));\n }\n\n absoluteEntries.splice(toOverrideIndex, 1);\n }\n\n entriesNameSet.add(name);\n }\n\n absoluteEntries.push(entry);\n },\n addRelativeTo: function addRelativeTo(middleware, options) {\n var name = options.name,\n override = options.override;\n\n var entry = __assign({\n middleware: middleware\n }, options);\n\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override) throw new Error(\"Duplicate middleware name '\" + name + \"'\");\n var toOverrideIndex = relativeEntries.findIndex(function (entry) {\n return entry.name === name;\n });\n var toOverride = relativeEntries[toOverrideIndex];\n\n if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n throw new Error(\"\\\"\" + name + \"\\\" middleware \" + toOverride.relation + \" \\\"\" + toOverride.toMiddleware + \"\\\" middleware cannot be overridden \" + (\"by same-name middleware \" + entry.relation + \" \\\"\" + entry.toMiddleware + \"\\\" middleware.\"));\n }\n\n relativeEntries.splice(toOverrideIndex, 1);\n }\n\n entriesNameSet.add(name);\n }\n\n relativeEntries.push(entry);\n },\n clone: function clone() {\n return cloneTo(constructStack());\n },\n use: function use(plugin) {\n plugin.applyToStack(stack);\n },\n remove: function remove(toRemove) {\n if (typeof toRemove === \"string\") return removeByName(toRemove);else return removeByReference(toRemove);\n },\n removeByTag: function removeByTag(toRemove) {\n var isRemoved = false;\n\n var filterCb = function filterCb(entry) {\n var tags = entry.tags,\n name = entry.name;\n\n if (tags && tags.includes(toRemove)) {\n if (name) entriesNameSet.delete(name);\n isRemoved = true;\n return false;\n }\n\n return true;\n };\n\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n },\n concat: function concat(from) {\n var cloned = cloneTo(constructStack());\n cloned.use(from);\n return cloned;\n },\n applyToStack: cloneTo,\n resolve: function resolve(handler, context) {\n var e_1, _a;\n\n try {\n for (var _b = __values(getMiddlewareList().reverse()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var middleware = _c.value;\n handler = middleware(handler, context);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return handler;\n }\n };\n return stack;\n};\nvar stepWeights = {\n initialize: 5,\n serialize: 4,\n build: 3,\n finalizeRequest: 2,\n deserialize: 1\n};\nvar priorityWeights = {\n high: 3,\n normal: 2,\n low: 1\n};","import { constructStack } from \"@aws-sdk/middleware-stack\";\n\nvar Client =\n/** @class */\nfunction () {\n function Client(config) {\n this.middlewareStack = constructStack();\n this.config = config;\n }\n\n Client.prototype.send = function (command, optionsOrCb, cb) {\n var options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n var callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n var handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n\n if (callback) {\n handler(command).then(function (result) {\n return callback(null, result.output);\n }, function (err) {\n return callback(err);\n }).catch( // prevent any errors thrown in the callback from triggering an\n // unhandled promise rejection\n function () {});\n } else {\n return handler(command).then(function (result) {\n return result.output;\n });\n }\n };\n\n Client.prototype.destroy = function () {\n if (this.config.requestHandler.destroy) this.config.requestHandler.destroy();\n };\n\n return Client;\n}();\n\nexport { Client };","import { constructStack } from \"@aws-sdk/middleware-stack\";\n\nvar Command =\n/** @class */\nfunction () {\n function Command() {\n this.middlewareStack = constructStack();\n }\n\n return Command;\n}();\n\nexport { Command };","/**\n * Function that wraps encodeURIComponent to encode additional characters\n * to fully adhere to RFC 3986.\n */\nexport function extendedEncodeURIComponent(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}","/**\n * The XML parser will set one K:V for a member that could\n * return multiple entries but only has one.\n */\nexport var getArrayIfSingleItem = function getArrayIfSingleItem(mayBeArray) {\n return Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray];\n};","/**\n * Recursively parses object and populates value is node from\n * \"#text\" key if it's available\n */\nexport var getValueFromTextNode = function getValueFromTextNode(obj) {\n var textNodeName = \"#text\";\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== undefined) {\n obj[key] = obj[key][textNodeName];\n } else if (typeof obj[key] === \"object\" && obj[key] !== null) {\n obj[key] = getValueFromTextNode(obj[key]);\n }\n }\n\n return obj;\n};","/**\n * Lazy String holder for JSON typed contents.\n */\nimport { __extends, __read, __spreadArray } from \"tslib\";\n/**\n * Because of https://github.com/microsoft/tslib/issues/95,\n * TS 'extends' shim doesn't support extending native types like String.\n * So here we create StringWrapper that duplicate everything from String\n * class including its prototype chain. So we can extend from here.\n */\n// @ts-ignore StringWrapper implementation is not a simple constructor\n\nexport var StringWrapper = function StringWrapper() {\n //@ts-ignore 'this' cannot be assigned to any, but Object.getPrototypeOf accepts any\n var Class = Object.getPrototypeOf(this).constructor;\n var Constructor = Function.bind.apply(String, __spreadArray([null], __read(arguments))); //@ts-ignore Call wrapped String constructor directly, don't bother typing it.\n\n var instance = new Constructor();\n Object.setPrototypeOf(instance, Class.prototype);\n return instance;\n};\nStringWrapper.prototype = Object.create(String.prototype, {\n constructor: {\n value: StringWrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n});\nObject.setPrototypeOf(StringWrapper, String);\n\nvar LazyJsonString =\n/** @class */\nfunction (_super) {\n __extends(LazyJsonString, _super);\n\n function LazyJsonString() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LazyJsonString.prototype.deserializeJSON = function () {\n return JSON.parse(_super.prototype.toString.call(this));\n };\n\n LazyJsonString.prototype.toJSON = function () {\n return _super.prototype.toString.call(this);\n };\n\n LazyJsonString.fromObject = function (object) {\n if (object instanceof LazyJsonString) {\n return object;\n } else if (object instanceof String || typeof object === \"string\") {\n return new LazyJsonString(object);\n }\n\n return new LazyJsonString(JSON.stringify(object));\n };\n\n return LazyJsonString;\n}(StringWrapper);\n\nexport { LazyJsonString };","/**\n * Give an input string, strictly parses a boolean value.\n *\n * @param value The boolean string to parse.\n * @returns true for \"true\", false for \"false\", otherwise an error is thrown.\n */\nexport var parseBoolean = function parseBoolean(value) {\n switch (value) {\n case \"true\":\n return true;\n\n case \"false\":\n return false;\n\n default:\n throw new Error(\"Unable to parse boolean value \\\"\" + value + \"\\\"\");\n }\n};\n/*\n * Asserts a value is a boolean and returns it.\n *\n * @param value A value that is expected to be a boolean.\n * @returns The value if it's a boolean, undefined if it's null/undefined,\n * otherwise an error is thrown.\n */\n\nexport var expectBoolean = function expectBoolean(value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n\n if (typeof value === \"boolean\") {\n return value;\n }\n\n throw new TypeError(\"Expected boolean, got \" + typeof value);\n};\n/**\n * Asserts a value is a number and returns it.\n *\n * @param value A value that is expected to be a number.\n * @returns The value if it's a number, undefined if it's null/undefined,\n * otherwise an error is thrown.\n */\n\nexport var expectNumber = function expectNumber(value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n\n if (typeof value === \"number\") {\n return value;\n }\n\n throw new TypeError(\"Expected number, got \" + typeof value);\n};\n/**\n * Asserts a value is a string and returns it.\n *\n * @param value A value that is expected to be a string.\n * @returns The value if it's a string, undefined if it's null/undefined,\n * otherwise an error is thrown.\n */\n\nexport var expectString = function expectString(value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n\n if (typeof value === \"string\") {\n return value;\n }\n\n throw new TypeError(\"Expected string, got \" + typeof value);\n};\n/**\n * Asserts a value is a number and returns it, and also converts string\n * representations of non-numeric floats into Numbers.\n *\n * @param value A number or string representation of a non-numeric float.\n * @returns The value as a number, undefined if it's null/undefined,\n * otherwise an error is thrown.\n */\n\nexport var handleFloat = function handleFloat(value) {\n if (typeof value == \"string\") {\n switch (value) {\n case \"NaN\":\n return NaN;\n\n case \"Infinity\":\n return Infinity;\n\n case \"-Infinity\":\n return -Infinity;\n\n default:\n throw new Error(\"Unable to parse float value: \" + value);\n }\n }\n\n return expectNumber(value);\n};","/**\n * Builds a proper UTC HttpDate timestamp from a Date object\n * since not all environments will have this as the expected\n * format.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toUTCString\n * > Prior to ECMAScript 2018, the format of the return value\n * > varied according to the platform. The most common return\n * > value was an RFC-1123 formatted date stamp, which is a\n * > slightly updated version of RFC-822 date stamps.\n */\n// Build indexes outside so we allocate them once.\nvar days = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"]; // prettier-ignore\n\nvar months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nexport function dateToUtcString(date) {\n var year = date.getUTCFullYear();\n var month = date.getUTCMonth();\n var dayOfWeek = date.getUTCDay();\n var dayOfMonthInt = date.getUTCDate();\n var hoursInt = date.getUTCHours();\n var minutesInt = date.getUTCMinutes();\n var secondsInt = date.getUTCSeconds(); // Build 0 prefixed strings for contents that need to be\n // two digits and where we get an integer back.\n\n var dayOfMonthString = dayOfMonthInt < 10 ? \"0\" + dayOfMonthInt : \"\" + dayOfMonthInt;\n var hoursString = hoursInt < 10 ? \"0\" + hoursInt : \"\" + hoursInt;\n var minutesString = minutesInt < 10 ? \"0\" + minutesInt : \"\" + minutesInt;\n var secondsString = secondsInt < 10 ? \"0\" + secondsInt : \"\" + secondsInt;\n return days[dayOfWeek] + \", \" + dayOfMonthString + \" \" + months[month] + \" \" + year + \" \" + hoursString + \":\" + minutesString + \":\" + secondsString + \" GMT\";\n}","export * from \"./client\";\nexport * from \"./command\";\nexport * from \"./emitWarningIfUnsupportedVersion\";\nexport * from \"./extended-encode-uri-component\";\nexport * from \"./get-array-if-single-item\";\nexport * from \"./get-value-from-text-node\";\nexport * from \"./lazy-json\";\nexport * from \"./parse-utils\";\nexport * from \"./ser-utils\";\nexport * from \"./date-utils\";\nexport * from \"./split-every\";\nexport * from \"./constants\";","export var SENSITIVE_STRING = \"***SensitiveInformation***\";","import _defineProperty from \"D:\\\\AT projects\\\\virtual-photo-studio\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/defineProperty\";\nimport _assertThisInitialized from \"D:\\\\AT projects\\\\virtual-photo-studio\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/assertThisInitialized\";\nimport _classCallCheck from \"D:\\\\AT projects\\\\virtual-photo-studio\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/classCallCheck\";\nimport _inherits from \"D:\\\\AT projects\\\\virtual-photo-studio\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/inherits\";\nimport _createSuper from \"D:\\\\AT projects\\\\virtual-photo-studio\\\\node_modules\\\\babel-preset-react-app\\\\node_modules\\\\@babel\\\\runtime/helpers/esm/createSuper\";\n\n// Polyfills\nif (Number.EPSILON === undefined) {\n Number.EPSILON = Math.pow(2, -52);\n}\n\nif (Number.isInteger === undefined) {\n // Missing in IE\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger\n Number.isInteger = function (value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n };\n} //\n\n\nif (Math.sign === undefined) {\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sign\n Math.sign = function (x) {\n return x < 0 ? -1 : x > 0 ? 1 : +x;\n };\n}\n\nif ('name' in Function.prototype === false) {\n // Missing in IE\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name\n Object.defineProperty(Function.prototype, 'name', {\n get: function get() {\n return this.toString().match(/^\\s*function\\s*([^\\(\\s]*)/)[1];\n }\n });\n}\n\nif (Object.assign === undefined) {\n // Missing in IE\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n Object.assign = function (target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (Object.prototype.hasOwnProperty.call(source, nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n\n return output;\n };\n}\n\nvar REVISION = '110';\nvar MOUSE = {\n LEFT: 0,\n MIDDLE: 1,\n RIGHT: 2,\n ROTATE: 0,\n DOLLY: 1,\n PAN: 2\n};\nvar TOUCH = {\n ROTATE: 0,\n PAN: 1,\n DOLLY_PAN: 2,\n DOLLY_ROTATE: 3\n};\nvar CullFaceNone = 0;\nvar CullFaceBack = 1;\nvar CullFaceFront = 2;\nvar CullFaceFrontBack = 3;\nvar FrontFaceDirectionCW = 0;\nvar FrontFaceDirectionCCW = 1;\nvar BasicShadowMap = 0;\nvar PCFShadowMap = 1;\nvar PCFSoftShadowMap = 2;\nvar VSMShadowMap = 3;\nvar FrontSide = 0;\nvar BackSide = 1;\nvar DoubleSide = 2;\nvar FlatShading = 1;\nvar SmoothShading = 2;\nvar NoColors = 0;\nvar FaceColors = 1;\nvar VertexColors = 2;\nvar NoBlending = 0;\nvar NormalBlending = 1;\nvar AdditiveBlending = 2;\nvar SubtractiveBlending = 3;\nvar MultiplyBlending = 4;\nvar CustomBlending = 5;\nvar AddEquation = 100;\nvar SubtractEquation = 101;\nvar ReverseSubtractEquation = 102;\nvar MinEquation = 103;\nvar MaxEquation = 104;\nvar ZeroFactor = 200;\nvar OneFactor = 201;\nvar SrcColorFactor = 202;\nvar OneMinusSrcColorFactor = 203;\nvar SrcAlphaFactor = 204;\nvar OneMinusSrcAlphaFactor = 205;\nvar DstAlphaFactor = 206;\nvar OneMinusDstAlphaFactor = 207;\nvar DstColorFactor = 208;\nvar OneMinusDstColorFactor = 209;\nvar SrcAlphaSaturateFactor = 210;\nvar NeverDepth = 0;\nvar AlwaysDepth = 1;\nvar LessDepth = 2;\nvar LessEqualDepth = 3;\nvar EqualDepth = 4;\nvar GreaterEqualDepth = 5;\nvar GreaterDepth = 6;\nvar NotEqualDepth = 7;\nvar MultiplyOperation = 0;\nvar MixOperation = 1;\nvar AddOperation = 2;\nvar NoToneMapping = 0;\nvar LinearToneMapping = 1;\nvar ReinhardToneMapping = 2;\nvar Uncharted2ToneMapping = 3;\nvar CineonToneMapping = 4;\nvar ACESFilmicToneMapping = 5;\nvar UVMapping = 300;\nvar CubeReflectionMapping = 301;\nvar CubeRefractionMapping = 302;\nvar EquirectangularReflectionMapping = 303;\nvar EquirectangularRefractionMapping = 304;\nvar SphericalReflectionMapping = 305;\nvar CubeUVReflectionMapping = 306;\nvar CubeUVRefractionMapping = 307;\nvar RepeatWrapping = 1000;\nvar ClampToEdgeWrapping = 1001;\nvar MirroredRepeatWrapping = 1002;\nvar NearestFilter = 1003;\nvar NearestMipmapNearestFilter = 1004;\nvar NearestMipMapNearestFilter = 1004;\nvar NearestMipmapLinearFilter = 1005;\nvar NearestMipMapLinearFilter = 1005;\nvar LinearFilter = 1006;\nvar LinearMipmapNearestFilter = 1007;\nvar LinearMipMapNearestFilter = 1007;\nvar LinearMipmapLinearFilter = 1008;\nvar LinearMipMapLinearFilter = 1008;\nvar UnsignedByteType = 1009;\nvar ByteType = 1010;\nvar ShortType = 1011;\nvar UnsignedShortType = 1012;\nvar IntType = 1013;\nvar UnsignedIntType = 1014;\nvar FloatType = 1015;\nvar HalfFloatType = 1016;\nvar UnsignedShort4444Type = 1017;\nvar UnsignedShort5551Type = 1018;\nvar UnsignedShort565Type = 1019;\nvar UnsignedInt248Type = 1020;\nvar AlphaFormat = 1021;\nvar RGBFormat = 1022;\nvar RGBAFormat = 1023;\nvar LuminanceFormat = 1024;\nvar LuminanceAlphaFormat = 1025;\nvar RGBEFormat = RGBAFormat;\nvar DepthFormat = 1026;\nvar DepthStencilFormat = 1027;\nvar RedFormat = 1028;\nvar RGB_S3TC_DXT1_Format = 33776;\nvar RGBA_S3TC_DXT1_Format = 33777;\nvar RGBA_S3TC_DXT3_Format = 33778;\nvar RGBA_S3TC_DXT5_Format = 33779;\nvar RGB_PVRTC_4BPPV1_Format = 35840;\nvar RGB_PVRTC_2BPPV1_Format = 35841;\nvar RGBA_PVRTC_4BPPV1_Format = 35842;\nvar RGBA_PVRTC_2BPPV1_Format = 35843;\nvar RGB_ETC1_Format = 36196;\nvar RGBA_ASTC_4x4_Format = 37808;\nvar RGBA_ASTC_5x4_Format = 37809;\nvar RGBA_ASTC_5x5_Format = 37810;\nvar RGBA_ASTC_6x5_Format = 37811;\nvar RGBA_ASTC_6x6_Format = 37812;\nvar RGBA_ASTC_8x5_Format = 37813;\nvar RGBA_ASTC_8x6_Format = 37814;\nvar RGBA_ASTC_8x8_Format = 37815;\nvar RGBA_ASTC_10x5_Format = 37816;\nvar RGBA_ASTC_10x6_Format = 37817;\nvar RGBA_ASTC_10x8_Format = 37818;\nvar RGBA_ASTC_10x10_Format = 37819;\nvar RGBA_ASTC_12x10_Format = 37820;\nvar RGBA_ASTC_12x12_Format = 37821;\nvar LoopOnce = 2200;\nvar LoopRepeat = 2201;\nvar LoopPingPong = 2202;\nvar InterpolateDiscrete = 2300;\nvar InterpolateLinear = 2301;\nvar InterpolateSmooth = 2302;\nvar ZeroCurvatureEnding = 2400;\nvar ZeroSlopeEnding = 2401;\nvar WrapAroundEnding = 2402;\nvar TrianglesDrawMode = 0;\nvar TriangleStripDrawMode = 1;\nvar TriangleFanDrawMode = 2;\nvar LinearEncoding = 3000;\nvar sRGBEncoding = 3001;\nvar GammaEncoding = 3007;\nvar RGBEEncoding = 3002;\nvar LogLuvEncoding = 3003;\nvar RGBM7Encoding = 3004;\nvar RGBM16Encoding = 3005;\nvar RGBDEncoding = 3006;\nvar BasicDepthPacking = 3200;\nvar RGBADepthPacking = 3201;\nvar TangentSpaceNormalMap = 0;\nvar ObjectSpaceNormalMap = 1;\nvar ZeroStencilOp = 0;\nvar KeepStencilOp = 7680;\nvar ReplaceStencilOp = 7681;\nvar IncrementStencilOp = 7682;\nvar DecrementStencilOp = 7683;\nvar IncrementWrapStencilOp = 34055;\nvar DecrementWrapStencilOp = 34056;\nvar InvertStencilOp = 5386;\nvar NeverStencilFunc = 512;\nvar LessStencilFunc = 513;\nvar EqualStencilFunc = 514;\nvar LessEqualStencilFunc = 515;\nvar GreaterStencilFunc = 516;\nvar NotEqualStencilFunc = 517;\nvar GreaterEqualStencilFunc = 518;\nvar AlwaysStencilFunc = 519;\nvar StaticDrawUsage = 35044;\nvar DynamicDrawUsage = 35048;\nvar StreamDrawUsage = 35040;\nvar StaticReadUsage = 35045;\nvar DynamicReadUsage = 35049;\nvar StreamReadUsage = 35041;\nvar StaticCopyUsage = 35046;\nvar DynamicCopyUsage = 35050;\nvar StreamCopyUsage = 35042;\n/**\n * https://github.com/mrdoob/eventdispatcher.js/\n */\n\nfunction EventDispatcher() {}\n\nObject.assign(EventDispatcher.prototype, {\n addEventListener: function addEventListener(type, listener) {\n if (this._listeners === undefined) this._listeners = {};\n var listeners = this._listeners;\n\n if (listeners[type] === undefined) {\n listeners[type] = [];\n }\n\n if (listeners[type].indexOf(listener) === -1) {\n listeners[type].push(listener);\n }\n },\n hasEventListener: function hasEventListener(type, listener) {\n if (this._listeners === undefined) return false;\n var listeners = this._listeners;\n return listeners[type] !== undefined && listeners[type].indexOf(listener) !== -1;\n },\n removeEventListener: function removeEventListener(type, listener) {\n if (this._listeners === undefined) return;\n var listeners = this._listeners;\n var listenerArray = listeners[type];\n\n if (listenerArray !== undefined) {\n var index = listenerArray.indexOf(listener);\n\n if (index !== -1) {\n listenerArray.splice(index, 1);\n }\n }\n },\n dispatchEvent: function dispatchEvent(event) {\n if (this._listeners === undefined) return;\n var listeners = this._listeners;\n var listenerArray = listeners[event.type];\n\n if (listenerArray !== undefined) {\n event.target = this;\n var array = listenerArray.slice(0);\n\n for (var i = 0, l = array.length; i < l; i++) {\n array[i].call(this, event);\n }\n }\n }\n});\n/**\n * @author alteredq / http://alteredqualia.com/\n * @author mrdoob / http://mrdoob.com/\n */\n\nvar _lut = [];\n\nfor (var i = 0; i < 256; i++) {\n _lut[i] = (i < 16 ? '0' : '') + i.toString(16);\n}\n\nvar _Math = {\n DEG2RAD: Math.PI / 180,\n RAD2DEG: 180 / Math.PI,\n generateUUID: function generateUUID() {\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\n var d0 = Math.random() * 0xffffffff | 0;\n var d1 = Math.random() * 0xffffffff | 0;\n var d2 = Math.random() * 0xffffffff | 0;\n var d3 = Math.random() * 0xffffffff | 0;\n var uuid = _lut[d0 & 0xff] + _lut[d0 >> 8 & 0xff] + _lut[d0 >> 16 & 0xff] + _lut[d0 >> 24 & 0xff] + '-' + _lut[d1 & 0xff] + _lut[d1 >> 8 & 0xff] + '-' + _lut[d1 >> 16 & 0x0f | 0x40] + _lut[d1 >> 24 & 0xff] + '-' + _lut[d2 & 0x3f | 0x80] + _lut[d2 >> 8 & 0xff] + '-' + _lut[d2 >> 16 & 0xff] + _lut[d2 >> 24 & 0xff] + _lut[d3 & 0xff] + _lut[d3 >> 8 & 0xff] + _lut[d3 >> 16 & 0xff] + _lut[d3 >> 24 & 0xff]; // .toUpperCase() here flattens concatenated strings to save heap memory space.\n\n return uuid.toUpperCase();\n },\n clamp: function clamp(value, min, max) {\n return Math.max(min, Math.min(max, value));\n },\n // compute euclidian modulo of m % n\n // https://en.wikipedia.org/wiki/Modulo_operation\n euclideanModulo: function euclideanModulo(n, m) {\n return (n % m + m) % m;\n },\n // Linear mapping from range to range \n mapLinear: function mapLinear(x, a1, a2, b1, b2) {\n return b1 + (x - a1) * (b2 - b1) / (a2 - a1);\n },\n // https://en.wikipedia.org/wiki/Linear_interpolation\n lerp: function lerp(x, y, t) {\n return (1 - t) * x + t * y;\n },\n // http://en.wikipedia.org/wiki/Smoothstep\n smoothstep: function smoothstep(x, min, max) {\n if (x <= min) return 0;\n if (x >= max) return 1;\n x = (x - min) / (max - min);\n return x * x * (3 - 2 * x);\n },\n smootherstep: function smootherstep(x, min, max) {\n if (x <= min) return 0;\n if (x >= max) return 1;\n x = (x - min) / (max - min);\n return x * x * x * (x * (x * 6 - 15) + 10);\n },\n // Random integer from interval\n randInt: function randInt(low, high) {\n return low + Math.floor(Math.random() * (high - low + 1));\n },\n // Random float from interval\n randFloat: function randFloat(low, high) {\n return low + Math.random() * (high - low);\n },\n // Random float from <-range/2, range/2> interval\n randFloatSpread: function randFloatSpread(range) {\n return range * (0.5 - Math.random());\n },\n degToRad: function degToRad(degrees) {\n return degrees * _Math.DEG2RAD;\n },\n radToDeg: function radToDeg(radians) {\n return radians * _Math.RAD2DEG;\n },\n isPowerOfTwo: function isPowerOfTwo(value) {\n return (value & value - 1) === 0 && value !== 0;\n },\n ceilPowerOfTwo: function ceilPowerOfTwo(value) {\n return Math.pow(2, Math.ceil(Math.log(value) / Math.LN2));\n },\n floorPowerOfTwo: function floorPowerOfTwo(value) {\n return Math.pow(2, Math.floor(Math.log(value) / Math.LN2));\n }\n};\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author philogb / http://blog.thejit.org/\n * @author egraether / http://egraether.com/\n * @author zz85 / http://www.lab4games.net/zz85/blog\n */\n\nfunction Vector2(x, y) {\n this.x = x || 0;\n this.y = y || 0;\n}\n\nObject.defineProperties(Vector2.prototype, {\n \"width\": {\n get: function get() {\n return this.x;\n },\n set: function set(value) {\n this.x = value;\n }\n },\n \"height\": {\n get: function get() {\n return this.y;\n },\n set: function set(value) {\n this.y = value;\n }\n }\n});\nObject.assign(Vector2.prototype, {\n isVector2: true,\n set: function set(x, y) {\n this.x = x;\n this.y = y;\n return this;\n },\n setScalar: function setScalar(scalar) {\n this.x = scalar;\n this.y = scalar;\n return this;\n },\n setX: function setX(x) {\n this.x = x;\n return this;\n },\n setY: function setY(y) {\n this.y = y;\n return this;\n },\n setComponent: function setComponent(index, value) {\n switch (index) {\n case 0:\n this.x = value;\n break;\n\n case 1:\n this.y = value;\n break;\n\n default:\n throw new Error('index is out of range: ' + index);\n }\n\n return this;\n },\n getComponent: function getComponent(index) {\n switch (index) {\n case 0:\n return this.x;\n\n case 1:\n return this.y;\n\n default:\n throw new Error('index is out of range: ' + index);\n }\n },\n clone: function clone() {\n return new this.constructor(this.x, this.y);\n },\n copy: function copy(v) {\n this.x = v.x;\n this.y = v.y;\n return this;\n },\n add: function add(v, w) {\n if (w !== undefined) {\n console.warn('THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.');\n return this.addVectors(v, w);\n }\n\n this.x += v.x;\n this.y += v.y;\n return this;\n },\n addScalar: function addScalar(s) {\n this.x += s;\n this.y += s;\n return this;\n },\n addVectors: function addVectors(a, b) {\n this.x = a.x + b.x;\n this.y = a.y + b.y;\n return this;\n },\n addScaledVector: function addScaledVector(v, s) {\n this.x += v.x * s;\n this.y += v.y * s;\n return this;\n },\n sub: function sub(v, w) {\n if (w !== undefined) {\n console.warn('THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.');\n return this.subVectors(v, w);\n }\n\n this.x -= v.x;\n this.y -= v.y;\n return this;\n },\n subScalar: function subScalar(s) {\n this.x -= s;\n this.y -= s;\n return this;\n },\n subVectors: function subVectors(a, b) {\n this.x = a.x - b.x;\n this.y = a.y - b.y;\n return this;\n },\n multiply: function multiply(v) {\n this.x *= v.x;\n this.y *= v.y;\n return this;\n },\n multiplyScalar: function multiplyScalar(scalar) {\n this.x *= scalar;\n this.y *= scalar;\n return this;\n },\n divide: function divide(v) {\n this.x /= v.x;\n this.y /= v.y;\n return this;\n },\n divideScalar: function divideScalar(scalar) {\n return this.multiplyScalar(1 / scalar);\n },\n applyMatrix3: function applyMatrix3(m) {\n var x = this.x,\n y = this.y;\n var e = m.elements;\n this.x = e[0] * x + e[3] * y + e[6];\n this.y = e[1] * x + e[4] * y + e[7];\n return this;\n },\n min: function min(v) {\n this.x = Math.min(this.x, v.x);\n this.y = Math.min(this.y, v.y);\n return this;\n },\n max: function max(v) {\n this.x = Math.max(this.x, v.x);\n this.y = Math.max(this.y, v.y);\n return this;\n },\n clamp: function clamp(min, max) {\n // assumes min < max, componentwise\n this.x = Math.max(min.x, Math.min(max.x, this.x));\n this.y = Math.max(min.y, Math.min(max.y, this.y));\n return this;\n },\n clampScalar: function clampScalar(minVal, maxVal) {\n this.x = Math.max(minVal, Math.min(maxVal, this.x));\n this.y = Math.max(minVal, Math.min(maxVal, this.y));\n return this;\n },\n clampLength: function clampLength(min, max) {\n var length = this.length();\n return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\n },\n floor: function floor() {\n this.x = Math.floor(this.x);\n this.y = Math.floor(this.y);\n return this;\n },\n ceil: function ceil() {\n this.x = Math.ceil(this.x);\n this.y = Math.ceil(this.y);\n return this;\n },\n round: function round() {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n return this;\n },\n roundToZero: function roundToZero() {\n this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x);\n this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y);\n return this;\n },\n negate: function negate() {\n this.x = -this.x;\n this.y = -this.y;\n return this;\n },\n dot: function dot(v) {\n return this.x * v.x + this.y * v.y;\n },\n cross: function cross(v) {\n return this.x * v.y - this.y * v.x;\n },\n lengthSq: function lengthSq() {\n return this.x * this.x + this.y * this.y;\n },\n length: function length() {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n },\n manhattanLength: function manhattanLength() {\n return Math.abs(this.x) + Math.abs(this.y);\n },\n normalize: function normalize() {\n return this.divideScalar(this.length() || 1);\n },\n angle: function angle() {\n // computes the angle in radians with respect to the positive x-axis\n var angle = Math.atan2(this.y, this.x);\n if (angle < 0) angle += 2 * Math.PI;\n return angle;\n },\n distanceTo: function distanceTo(v) {\n return Math.sqrt(this.distanceToSquared(v));\n },\n distanceToSquared: function distanceToSquared(v) {\n var dx = this.x - v.x,\n dy = this.y - v.y;\n return dx * dx + dy * dy;\n },\n manhattanDistanceTo: function manhattanDistanceTo(v) {\n return Math.abs(this.x - v.x) + Math.abs(this.y - v.y);\n },\n setLength: function setLength(length) {\n return this.normalize().multiplyScalar(length);\n },\n lerp: function lerp(v, alpha) {\n this.x += (v.x - this.x) * alpha;\n this.y += (v.y - this.y) * alpha;\n return this;\n },\n lerpVectors: function lerpVectors(v1, v2, alpha) {\n return this.subVectors(v2, v1).multiplyScalar(alpha).add(v1);\n },\n equals: function equals(v) {\n return v.x === this.x && v.y === this.y;\n },\n fromArray: function fromArray(array, offset) {\n if (offset === undefined) offset = 0;\n this.x = array[offset];\n this.y = array[offset + 1];\n return this;\n },\n toArray: function toArray(array, offset) {\n if (array === undefined) array = [];\n if (offset === undefined) offset = 0;\n array[offset] = this.x;\n array[offset + 1] = this.y;\n return array;\n },\n fromBufferAttribute: function fromBufferAttribute(attribute, index, offset) {\n if (offset !== undefined) {\n console.warn('THREE.Vector2: offset has been removed from .fromBufferAttribute().');\n }\n\n this.x = attribute.getX(index);\n this.y = attribute.getY(index);\n return this;\n },\n rotateAround: function rotateAround(center, angle) {\n var c = Math.cos(angle),\n s = Math.sin(angle);\n var x = this.x - center.x;\n var y = this.y - center.y;\n this.x = x * c - y * s + center.x;\n this.y = x * s + y * c + center.y;\n return this;\n }\n});\n/**\n * @author mikael emtinger / http://gomo.se/\n * @author alteredq / http://alteredqualia.com/\n * @author WestLangley / http://github.com/WestLangley\n * @author bhouston / http://clara.io\n */\n\nfunction Quaternion(x, y, z, w) {\n this._x = x || 0;\n this._y = y || 0;\n this._z = z || 0;\n this._w = w !== undefined ? w : 1;\n}\n\nObject.assign(Quaternion, {\n slerp: function slerp(qa, qb, qm, t) {\n return qm.copy(qa).slerp(qb, t);\n },\n slerpFlat: function slerpFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t) {\n // fuzz-free, array-based Quaternion SLERP operation\n var x0 = src0[srcOffset0 + 0],\n y0 = src0[srcOffset0 + 1],\n z0 = src0[srcOffset0 + 2],\n w0 = src0[srcOffset0 + 3],\n x1 = src1[srcOffset1 + 0],\n y1 = src1[srcOffset1 + 1],\n z1 = src1[srcOffset1 + 2],\n w1 = src1[srcOffset1 + 3];\n\n if (w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1) {\n var s = 1 - t,\n cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1,\n dir = cos >= 0 ? 1 : -1,\n sqrSin = 1 - cos * cos; // Skip the Slerp for tiny steps to avoid numeric problems:\n\n if (sqrSin > Number.EPSILON) {\n var sin = Math.sqrt(sqrSin),\n len = Math.atan2(sin, cos * dir);\n s = Math.sin(s * len) / sin;\n t = Math.sin(t * len) / sin;\n }\n\n var tDir = t * dir;\n x0 = x0 * s + x1 * tDir;\n y0 = y0 * s + y1 * tDir;\n z0 = z0 * s + z1 * tDir;\n w0 = w0 * s + w1 * tDir; // Normalize in case we just did a lerp:\n\n if (s === 1 - t) {\n var f = 1 / Math.sqrt(x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0);\n x0 *= f;\n y0 *= f;\n z0 *= f;\n w0 *= f;\n }\n }\n\n dst[dstOffset] = x0;\n dst[dstOffset + 1] = y0;\n dst[dstOffset + 2] = z0;\n dst[dstOffset + 3] = w0;\n }\n});\nObject.defineProperties(Quaternion.prototype, {\n x: {\n get: function get() {\n return this._x;\n },\n set: function set(value) {\n this._x = value;\n\n this._onChangeCallback();\n }\n },\n y: {\n get: function get() {\n return this._y;\n },\n set: function set(value) {\n this._y = value;\n\n this._onChangeCallback();\n }\n },\n z: {\n get: function get() {\n return this._z;\n },\n set: function set(value) {\n this._z = value;\n\n this._onChangeCallback();\n }\n },\n w: {\n get: function get() {\n return this._w;\n },\n set: function set(value) {\n this._w = value;\n\n this._onChangeCallback();\n }\n }\n});\nObject.assign(Quaternion.prototype, {\n isQuaternion: true,\n set: function set(x, y, z, w) {\n this._x = x;\n this._y = y;\n this._z = z;\n this._w = w;\n\n this._onChangeCallback();\n\n return this;\n },\n clone: function clone() {\n return new this.constructor(this._x, this._y, this._z, this._w);\n },\n copy: function copy(quaternion) {\n this._x = quaternion.x;\n this._y = quaternion.y;\n this._z = quaternion.z;\n this._w = quaternion.w;\n\n this._onChangeCallback();\n\n return this;\n },\n setFromEuler: function setFromEuler(euler, update) {\n if (!(euler && euler.isEuler)) {\n throw new Error('THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.');\n }\n\n var x = euler._x,\n y = euler._y,\n z = euler._z,\n order = euler.order; // http://www.mathworks.com/matlabcentral/fileexchange/\n // \t20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/\n //\tcontent/SpinCalc.m\n\n var cos = Math.cos;\n var sin = Math.sin;\n var c1 = cos(x / 2);\n var c2 = cos(y / 2);\n var c3 = cos(z / 2);\n var s1 = sin(x / 2);\n var s2 = sin(y / 2);\n var s3 = sin(z / 2);\n\n if (order === 'XYZ') {\n this._x = s1 * c2 * c3 + c1 * s2 * s3;\n this._y = c1 * s2 * c3 - s1 * c2 * s3;\n this._z = c1 * c2 * s3 + s1 * s2 * c3;\n this._w = c1 * c2 * c3 - s1 * s2 * s3;\n } else if (order === 'YXZ') {\n this._x = s1 * c2 * c3 + c1 * s2 * s3;\n this._y = c1 * s2 * c3 - s1 * c2 * s3;\n this._z = c1 * c2 * s3 - s1 * s2 * c3;\n this._w = c1 * c2 * c3 + s1 * s2 * s3;\n } else if (order === 'ZXY') {\n this._x = s1 * c2 * c3 - c1 * s2 * s3;\n this._y = c1 * s2 * c3 + s1 * c2 * s3;\n this._z = c1 * c2 * s3 + s1 * s2 * c3;\n this._w = c1 * c2 * c3 - s1 * s2 * s3;\n } else if (order === 'ZYX') {\n this._x = s1 * c2 * c3 - c1 * s2 * s3;\n this._y = c1 * s2 * c3 + s1 * c2 * s3;\n this._z = c1 * c2 * s3 - s1 * s2 * c3;\n this._w = c1 * c2 * c3 + s1 * s2 * s3;\n } else if (order === 'YZX') {\n this._x = s1 * c2 * c3 + c1 * s2 * s3;\n this._y = c1 * s2 * c3 + s1 * c2 * s3;\n this._z = c1 * c2 * s3 - s1 * s2 * c3;\n this._w = c1 * c2 * c3 - s1 * s2 * s3;\n } else if (order === 'XZY') {\n this._x = s1 * c2 * c3 - c1 * s2 * s3;\n this._y = c1 * s2 * c3 - s1 * c2 * s3;\n this._z = c1 * c2 * s3 + s1 * s2 * c3;\n this._w = c1 * c2 * c3 + s1 * s2 * s3;\n }\n\n if (update !== false) this._onChangeCallback();\n return this;\n },\n setFromAxisAngle: function setFromAxisAngle(axis, angle) {\n // http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm\n // assumes axis is normalized\n var halfAngle = angle / 2,\n s = Math.sin(halfAngle);\n this._x = axis.x * s;\n this._y = axis.y * s;\n this._z = axis.z * s;\n this._w = Math.cos(halfAngle);\n\n this._onChangeCallback();\n\n return this;\n },\n setFromRotationMatrix: function setFromRotationMatrix(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 m11 = te[0],\n m12 = te[4],\n m13 = te[8],\n m21 = te[1],\n m22 = te[5],\n m23 = te[9],\n m31 = te[2],\n m32 = te[6],\n m33 = te[10],\n trace = m11 + m22 + m33,\n s;\n\n if (trace > 0) {\n 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 } else if (m11 > m22 && m11 > m33) {\n 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 } else if (m22 > m33) {\n 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 } else {\n 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 }\n\n this._onChangeCallback();\n\n return this;\n },\n setFromUnitVectors: function setFromUnitVectors(vFrom, vTo) {\n // assumes direction vectors vFrom and vTo are normalized\n var EPS = 0.000001;\n var r = vFrom.dot(vTo) + 1;\n\n if (r < EPS) {\n r = 0;\n\n if (Math.abs(vFrom.x) > Math.abs(vFrom.z)) {\n this._x = -vFrom.y;\n this._y = vFrom.x;\n this._z = 0;\n this._w = r;\n } else {\n this._x = 0;\n this._y = -vFrom.z;\n this._z = vFrom.y;\n this._w = r;\n }\n } else {\n // crossVectors( vFrom, vTo ); // inlined to avoid cyclic dependency on Vector3\n this._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\n this._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\n this._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\n this._w = r;\n }\n\n return this.normalize();\n },\n angleTo: function angleTo(q) {\n return 2 * Math.acos(Math.abs(_Math.clamp(this.dot(q), -1, 1)));\n },\n rotateTowards: function rotateTowards(q, step) {\n var angle = this.angleTo(q);\n if (angle === 0) return this;\n var t = Math.min(1, step / angle);\n this.slerp(q, t);\n return this;\n },\n inverse: function inverse() {\n // quaternion is assumed to have unit length\n return this.conjugate();\n },\n conjugate: function conjugate() {\n this._x *= -1;\n this._y *= -1;\n this._z *= -1;\n\n this._onChangeCallback();\n\n return this;\n },\n dot: function dot(v) {\n return this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w;\n },\n lengthSq: function lengthSq() {\n return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n },\n length: function length() {\n return Math.sqrt(this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w);\n },\n normalize: function normalize() {\n var l = this.length();\n\n if (l === 0) {\n this._x = 0;\n this._y = 0;\n this._z = 0;\n this._w = 1;\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\n this._onChangeCallback();\n\n return this;\n },\n multiply: function multiply(q, p) {\n if (p !== undefined) {\n console.warn('THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.');\n return this.multiplyQuaternions(q, p);\n }\n\n return this.multiplyQuaternions(this, q);\n },\n premultiply: function premultiply(q) {\n return this.multiplyQuaternions(q, this);\n },\n multiplyQuaternions: function multiplyQuaternions(a, b) {\n // from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm\n var qax = a._x,\n qay = a._y,\n qaz = a._z,\n qaw = a._w;\n var qbx = b._x,\n qby = b._y,\n qbz = b._z,\n qbw = b._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\n this._onChangeCallback();\n\n return this;\n },\n slerp: function slerp(qb, t) {\n if (t === 0) return this;\n if (t === 1) return this.copy(qb);\n var x = this._x,\n y = this._y,\n z = this._z,\n w = this._w; // http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/\n\n var cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z;\n\n if (cosHalfTheta < 0) {\n this._w = -qb._w;\n this._x = -qb._x;\n this._y = -qb._y;\n this._z = -qb._z;\n cosHalfTheta = -cosHalfTheta;\n } else {\n this.copy(qb);\n }\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\n var sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta;\n\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\n this._onChangeCallback();\n\n return this;\n }\n\n var sinHalfTheta = Math.sqrt(sqrSinHalfTheta);\n var halfTheta = Math.atan2(sinHalfTheta, cosHalfTheta);\n var ratioA = Math.sin((1 - t) * halfTheta) / sinHalfTheta,\n 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\n this._onChangeCallback();\n\n return this;\n },\n equals: function equals(quaternion) {\n return quaternion._x === this._x && quaternion._y === this._y && quaternion._z === this._z && quaternion._w === this._w;\n },\n fromArray: function fromArray(array, offset) {\n if (offset === undefined) 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\n this._onChangeCallback();\n\n return this;\n },\n toArray: function toArray(array, offset) {\n if (array === undefined) array = [];\n if (offset === undefined) 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 return array;\n },\n _onChange: function _onChange(callback) {\n this._onChangeCallback = callback;\n return this;\n },\n _onChangeCallback: function _onChangeCallback() {}\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author kile / http://kile.stravaganza.org/\n * @author philogb / http://blog.thejit.org/\n * @author mikael emtinger / http://gomo.se/\n * @author egraether / http://egraether.com/\n * @author WestLangley / http://github.com/WestLangley\n */\n\nvar _vector = new Vector3();\n\nvar _quaternion = new Quaternion();\n\nfunction Vector3(x, y, z) {\n this.x = x || 0;\n this.y = y || 0;\n this.z = z || 0;\n}\n\nObject.assign(Vector3.prototype, {\n isVector3: true,\n set: function set(x, y, z) {\n this.x = x;\n this.y = y;\n this.z = z;\n return this;\n },\n setScalar: function setScalar(scalar) {\n this.x = scalar;\n this.y = scalar;\n this.z = scalar;\n return this;\n },\n setX: function setX(x) {\n this.x = x;\n return this;\n },\n setY: function setY(y) {\n this.y = y;\n return this;\n },\n setZ: function setZ(z) {\n this.z = z;\n return this;\n },\n setComponent: function setComponent(index, value) {\n switch (index) {\n case 0:\n this.x = value;\n break;\n\n case 1:\n this.y = value;\n break;\n\n case 2:\n this.z = value;\n break;\n\n default:\n throw new Error('index is out of range: ' + index);\n }\n\n return this;\n },\n getComponent: function getComponent(index) {\n switch (index) {\n case 0:\n return this.x;\n\n case 1:\n return this.y;\n\n case 2:\n return this.z;\n\n default:\n throw new Error('index is out of range: ' + index);\n }\n },\n clone: function clone() {\n return new this.constructor(this.x, this.y, this.z);\n },\n copy: function copy(v) {\n this.x = v.x;\n this.y = v.y;\n this.z = v.z;\n return this;\n },\n add: function add(v, w) {\n if (w !== undefined) {\n console.warn('THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.');\n return this.addVectors(v, w);\n }\n\n this.x += v.x;\n this.y += v.y;\n this.z += v.z;\n return this;\n },\n addScalar: function addScalar(s) {\n this.x += s;\n this.y += s;\n this.z += s;\n return this;\n },\n addVectors: function addVectors(a, b) {\n this.x = a.x + b.x;\n this.y = a.y + b.y;\n this.z = a.z + b.z;\n return this;\n },\n addScaledVector: function addScaledVector(v, s) {\n this.x += v.x * s;\n this.y += v.y * s;\n this.z += v.z * s;\n return this;\n },\n sub: function sub(v, w) {\n if (w !== undefined) {\n console.warn('THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.');\n return this.subVectors(v, w);\n }\n\n this.x -= v.x;\n this.y -= v.y;\n this.z -= v.z;\n return this;\n },\n subScalar: function subScalar(s) {\n this.x -= s;\n this.y -= s;\n this.z -= s;\n return this;\n },\n subVectors: function subVectors(a, b) {\n this.x = a.x - b.x;\n this.y = a.y - b.y;\n this.z = a.z - b.z;\n return this;\n },\n multiply: function multiply(v, w) {\n if (w !== undefined) {\n console.warn('THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.');\n return this.multiplyVectors(v, w);\n }\n\n this.x *= v.x;\n this.y *= v.y;\n this.z *= v.z;\n return this;\n },\n multiplyScalar: function multiplyScalar(scalar) {\n this.x *= scalar;\n this.y *= scalar;\n this.z *= scalar;\n return this;\n },\n multiplyVectors: function multiplyVectors(a, b) {\n this.x = a.x * b.x;\n this.y = a.y * b.y;\n this.z = a.z * b.z;\n return this;\n },\n applyEuler: function applyEuler(euler) {\n if (!(euler && euler.isEuler)) {\n console.error('THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.');\n }\n\n return this.applyQuaternion(_quaternion.setFromEuler(euler));\n },\n applyAxisAngle: function applyAxisAngle(axis, angle) {\n return this.applyQuaternion(_quaternion.setFromAxisAngle(axis, angle));\n },\n applyMatrix3: function applyMatrix3(m) {\n var x = this.x,\n y = this.y,\n z = this.z;\n var e = m.elements;\n this.x = e[0] * x + e[3] * y + e[6] * z;\n this.y = e[1] * x + e[4] * y + e[7] * z;\n this.z = e[2] * x + e[5] * y + e[8] * z;\n return this;\n },\n applyMatrix4: function applyMatrix4(m) {\n var x = this.x,\n y = this.y,\n z = this.z;\n var e = m.elements;\n var w = 1 / (e[3] * x + e[7] * y + e[11] * z + e[15]);\n this.x = (e[0] * x + e[4] * y + e[8] * z + e[12]) * w;\n this.y = (e[1] * x + e[5] * y + e[9] * z + e[13]) * w;\n this.z = (e[2] * x + e[6] * y + e[10] * z + e[14]) * w;\n return this;\n },\n applyQuaternion: function applyQuaternion(q) {\n var x = this.x,\n y = this.y,\n z = this.z;\n var qx = q.x,\n qy = q.y,\n qz = q.z,\n qw = q.w; // calculate quat * vector\n\n var ix = qw * x + qy * z - qz * y;\n var iy = qw * y + qz * x - qx * z;\n var iz = qw * z + qx * y - qy * x;\n var iw = -qx * x - qy * y - qz * z; // calculate result * inverse quat\n\n this.x = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n this.y = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n this.z = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n return this;\n },\n project: function project(camera) {\n return this.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix);\n },\n unproject: function unproject(camera) {\n return this.applyMatrix4(camera.projectionMatrixInverse).applyMatrix4(camera.matrixWorld);\n },\n transformDirection: function transformDirection(m) {\n // input: THREE.Matrix4 affine matrix\n // vector interpreted as a direction\n var x = this.x,\n y = this.y,\n z = this.z;\n var e = m.elements;\n this.x = e[0] * x + e[4] * y + e[8] * z;\n this.y = e[1] * x + e[5] * y + e[9] * z;\n this.z = e[2] * x + e[6] * y + e[10] * z;\n return this.normalize();\n },\n divide: function divide(v) {\n this.x /= v.x;\n this.y /= v.y;\n this.z /= v.z;\n return this;\n },\n divideScalar: function divideScalar(scalar) {\n return this.multiplyScalar(1 / scalar);\n },\n min: function min(v) {\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 return this;\n },\n max: function max(v) {\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 return this;\n },\n clamp: function clamp(min, max) {\n // assumes min < max, componentwise\n this.x = Math.max(min.x, Math.min(max.x, this.x));\n this.y = Math.max(min.y, Math.min(max.y, this.y));\n this.z = Math.max(min.z, Math.min(max.z, this.z));\n return this;\n },\n clampScalar: function clampScalar(minVal, maxVal) {\n this.x = Math.max(minVal, Math.min(maxVal, this.x));\n this.y = Math.max(minVal, Math.min(maxVal, this.y));\n this.z = Math.max(minVal, Math.min(maxVal, this.z));\n return this;\n },\n clampLength: function clampLength(min, max) {\n var length = this.length();\n return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\n },\n floor: function floor() {\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 ceil: function ceil() {\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 round: function round() {\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 roundToZero: function roundToZero() {\n this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x);\n this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y);\n this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z);\n return this;\n },\n negate: function negate() {\n this.x = -this.x;\n this.y = -this.y;\n this.z = -this.z;\n return this;\n },\n dot: function dot(v) {\n return this.x * v.x + this.y * v.y + this.z * v.z;\n },\n // TODO lengthSquared?\n lengthSq: function lengthSq() {\n return this.x * this.x + this.y * this.y + this.z * this.z;\n },\n length: function length() {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\n },\n manhattanLength: function manhattanLength() {\n return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z);\n },\n normalize: function normalize() {\n return this.divideScalar(this.length() || 1);\n },\n setLength: function setLength(length) {\n return this.normalize().multiplyScalar(length);\n },\n lerp: function lerp(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 return this;\n },\n lerpVectors: function lerpVectors(v1, v2, alpha) {\n return this.subVectors(v2, v1).multiplyScalar(alpha).add(v1);\n },\n cross: function cross(v, w) {\n if (w !== undefined) {\n console.warn('THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.');\n return this.crossVectors(v, w);\n }\n\n return this.crossVectors(this, v);\n },\n crossVectors: function crossVectors(a, b) {\n var ax = a.x,\n ay = a.y,\n az = a.z;\n var bx = b.x,\n by = b.y,\n bz = b.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 projectOnVector: function projectOnVector(v) {\n // v cannot be the zero v\n var scalar = v.dot(this) / v.lengthSq();\n return this.copy(v).multiplyScalar(scalar);\n },\n projectOnPlane: function projectOnPlane(planeNormal) {\n _vector.copy(this).projectOnVector(planeNormal);\n\n return this.sub(_vector);\n },\n reflect: function reflect(normal) {\n // reflect incident vector off plane orthogonal to normal\n // normal is assumed to have unit length\n return this.sub(_vector.copy(normal).multiplyScalar(2 * this.dot(normal)));\n },\n angleTo: function angleTo(v) {\n var denominator = Math.sqrt(this.lengthSq() * v.lengthSq());\n if (denominator === 0) console.error('THREE.Vector3: angleTo() can\\'t handle zero length vectors.');\n var theta = this.dot(v) / denominator; // clamp, to handle numerical problems\n\n return Math.acos(_Math.clamp(theta, -1, 1));\n },\n distanceTo: function distanceTo(v) {\n return Math.sqrt(this.distanceToSquared(v));\n },\n distanceToSquared: function distanceToSquared(v) {\n var dx = this.x - v.x,\n dy = this.y - v.y,\n dz = this.z - v.z;\n return dx * dx + dy * dy + dz * dz;\n },\n manhattanDistanceTo: function manhattanDistanceTo(v) {\n return Math.abs(this.x - v.x) + Math.abs(this.y - v.y) + Math.abs(this.z - v.z);\n },\n setFromSpherical: function setFromSpherical(s) {\n return this.setFromSphericalCoords(s.radius, s.phi, s.theta);\n },\n setFromSphericalCoords: function setFromSphericalCoords(radius, phi, theta) {\n var sinPhiRadius = Math.sin(phi) * radius;\n this.x = sinPhiRadius * Math.sin(theta);\n this.y = Math.cos(phi) * radius;\n this.z = sinPhiRadius * Math.cos(theta);\n return this;\n },\n setFromCylindrical: function setFromCylindrical(c) {\n return this.setFromCylindricalCoords(c.radius, c.theta, c.y);\n },\n setFromCylindricalCoords: function setFromCylindricalCoords(radius, theta, y) {\n this.x = radius * Math.sin(theta);\n this.y = y;\n this.z = radius * Math.cos(theta);\n return this;\n },\n setFromMatrixPosition: function setFromMatrixPosition(m) {\n var e = m.elements;\n this.x = e[12];\n this.y = e[13];\n this.z = e[14];\n return this;\n },\n setFromMatrixScale: function setFromMatrixScale(m) {\n var sx = this.setFromMatrixColumn(m, 0).length();\n var sy = this.setFromMatrixColumn(m, 1).length();\n var sz = this.setFromMatrixColumn(m, 2).length();\n this.x = sx;\n this.y = sy;\n this.z = sz;\n return this;\n },\n setFromMatrixColumn: function setFromMatrixColumn(m, index) {\n return this.fromArray(m.elements, index * 4);\n },\n equals: function equals(v) {\n return v.x === this.x && v.y === this.y && v.z === this.z;\n },\n fromArray: function fromArray(array, offset) {\n if (offset === undefined) offset = 0;\n this.x = array[offset];\n this.y = array[offset + 1];\n this.z = array[offset + 2];\n return this;\n },\n toArray: function toArray(array, offset) {\n if (array === undefined) array = [];\n if (offset === undefined) offset = 0;\n array[offset] = this.x;\n array[offset + 1] = this.y;\n array[offset + 2] = this.z;\n return array;\n },\n fromBufferAttribute: function fromBufferAttribute(attribute, index, offset) {\n if (offset !== undefined) {\n console.warn('THREE.Vector3: offset has been removed from .fromBufferAttribute().');\n }\n\n this.x = attribute.getX(index);\n this.y = attribute.getY(index);\n this.z = attribute.getZ(index);\n return this;\n }\n});\n/**\n * @author alteredq / http://alteredqualia.com/\n * @author WestLangley / http://github.com/WestLangley\n * @author bhouston / http://clara.io\n * @author tschw\n */\n\nvar _vector$1 = new Vector3();\n\nfunction Matrix3() {\n this.elements = [1, 0, 0, 0, 1, 0, 0, 0, 1];\n\n if (arguments.length > 0) {\n console.error('THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.');\n }\n}\n\nObject.assign(Matrix3.prototype, {\n isMatrix3: true,\n set: function set(n11, n12, n13, n21, n22, n23, n31, n32, n33) {\n var te = this.elements;\n te[0] = n11;\n te[1] = n21;\n te[2] = n31;\n te[3] = n12;\n te[4] = n22;\n te[5] = n32;\n te[6] = n13;\n te[7] = n23;\n te[8] = n33;\n return this;\n },\n identity: function identity() {\n this.set(1, 0, 0, 0, 1, 0, 0, 0, 1);\n return this;\n },\n clone: function clone() {\n return new this.constructor().fromArray(this.elements);\n },\n copy: function copy(m) {\n var te = this.elements;\n var me = m.elements;\n te[0] = me[0];\n te[1] = me[1];\n te[2] = me[2];\n te[3] = me[3];\n te[4] = me[4];\n te[5] = me[5];\n te[6] = me[6];\n te[7] = me[7];\n te[8] = me[8];\n return this;\n },\n setFromMatrix4: function setFromMatrix4(m) {\n var me = m.elements;\n this.set(me[0], me[4], me[8], me[1], me[5], me[9], me[2], me[6], me[10]);\n return this;\n },\n applyToBufferAttribute: function applyToBufferAttribute(attribute) {\n for (var i = 0, l = attribute.count; i < l; i++) {\n _vector$1.x = attribute.getX(i);\n _vector$1.y = attribute.getY(i);\n _vector$1.z = attribute.getZ(i);\n\n _vector$1.applyMatrix3(this);\n\n attribute.setXYZ(i, _vector$1.x, _vector$1.y, _vector$1.z);\n }\n\n return attribute;\n },\n multiply: function multiply(m) {\n return this.multiplyMatrices(this, m);\n },\n premultiply: function premultiply(m) {\n return this.multiplyMatrices(m, this);\n },\n multiplyMatrices: function multiplyMatrices(a, b) {\n var ae = a.elements;\n var be = b.elements;\n var te = this.elements;\n var a11 = ae[0],\n a12 = ae[3],\n a13 = ae[6];\n var a21 = ae[1],\n a22 = ae[4],\n a23 = ae[7];\n var a31 = ae[2],\n a32 = ae[5],\n a33 = ae[8];\n var b11 = be[0],\n b12 = be[3],\n b13 = be[6];\n var b21 = be[1],\n b22 = be[4],\n b23 = be[7];\n var b31 = be[2],\n b32 = be[5],\n 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 multiplyScalar: function multiplyScalar(s) {\n var te = this.elements;\n te[0] *= s;\n te[3] *= s;\n te[6] *= s;\n te[1] *= s;\n te[4] *= s;\n te[7] *= s;\n te[2] *= s;\n te[5] *= s;\n te[8] *= s;\n return this;\n },\n determinant: function determinant() {\n var te = this.elements;\n var a = te[0],\n b = te[1],\n c = te[2],\n d = te[3],\n e = te[4],\n f = te[5],\n g = te[6],\n h = te[7],\n i = te[8];\n return a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g;\n },\n getInverse: function getInverse(matrix, throwOnDegenerate) {\n if (matrix && matrix.isMatrix4) {\n console.error(\"THREE.Matrix3: .getInverse() no longer takes a Matrix4 argument.\");\n }\n\n var me = matrix.elements,\n te = this.elements,\n n11 = me[0],\n n21 = me[1],\n n31 = me[2],\n n12 = me[3],\n n22 = me[4],\n n32 = me[5],\n n13 = me[6],\n n23 = me[7],\n n33 = me[8],\n t11 = n33 * n22 - n32 * n23,\n t12 = n32 * n13 - n33 * n12,\n t13 = n23 * n12 - n22 * n13,\n det = n11 * t11 + n21 * t12 + n31 * t13;\n\n if (det === 0) {\n var msg = \"THREE.Matrix3: .getInverse() can't invert matrix, determinant is 0\";\n\n if (throwOnDegenerate === true) {\n throw new Error(msg);\n } else {\n console.warn(msg);\n }\n\n return this.identity();\n }\n\n var detInv = 1 / det;\n te[0] = t11 * detInv;\n te[1] = (n31 * n23 - n33 * n21) * detInv;\n te[2] = (n32 * n21 - n31 * n22) * detInv;\n te[3] = t12 * detInv;\n te[4] = (n33 * n11 - n31 * n13) * detInv;\n te[5] = (n31 * n12 - n32 * n11) * detInv;\n te[6] = t13 * detInv;\n te[7] = (n21 * n13 - n23 * n11) * detInv;\n te[8] = (n22 * n11 - n21 * n12) * detInv;\n return this;\n },\n transpose: function transpose() {\n var tmp,\n m = this.elements;\n tmp = m[1];\n m[1] = m[3];\n m[3] = tmp;\n tmp = m[2];\n m[2] = m[6];\n m[6] = tmp;\n tmp = m[5];\n m[5] = m[7];\n m[7] = tmp;\n return this;\n },\n getNormalMatrix: function getNormalMatrix(matrix4) {\n return this.setFromMatrix4(matrix4).getInverse(this).transpose();\n },\n transposeIntoArray: function transposeIntoArray(r) {\n var m = this.elements;\n r[0] = m[0];\n r[1] = m[3];\n r[2] = m[6];\n r[3] = m[1];\n r[4] = m[4];\n r[5] = m[7];\n r[6] = m[2];\n r[7] = m[5];\n r[8] = m[8];\n return this;\n },\n setUvTransform: function setUvTransform(tx, ty, sx, sy, rotation, cx, cy) {\n var c = Math.cos(rotation);\n var s = Math.sin(rotation);\n this.set(sx * c, sx * s, -sx * (c * cx + s * cy) + cx + tx, -sy * s, sy * c, -sy * (-s * cx + c * cy) + cy + ty, 0, 0, 1);\n },\n scale: function scale(sx, sy) {\n var te = this.elements;\n te[0] *= sx;\n te[3] *= sx;\n te[6] *= sx;\n te[1] *= sy;\n te[4] *= sy;\n te[7] *= sy;\n return this;\n },\n rotate: function rotate(theta) {\n var c = Math.cos(theta);\n var s = Math.sin(theta);\n var te = this.elements;\n var a11 = te[0],\n a12 = te[3],\n a13 = te[6];\n var a21 = te[1],\n a22 = te[4],\n a23 = te[7];\n te[0] = c * a11 + s * a21;\n te[3] = c * a12 + s * a22;\n te[6] = c * a13 + s * a23;\n te[1] = -s * a11 + c * a21;\n te[4] = -s * a12 + c * a22;\n te[7] = -s * a13 + c * a23;\n return this;\n },\n translate: function translate(tx, ty) {\n var te = this.elements;\n te[0] += tx * te[2];\n te[3] += tx * te[5];\n te[6] += tx * te[8];\n te[1] += ty * te[2];\n te[4] += ty * te[5];\n te[7] += ty * te[8];\n return this;\n },\n equals: function equals(matrix) {\n var te = this.elements;\n var me = matrix.elements;\n\n for (var i = 0; i < 9; i++) {\n if (te[i] !== me[i]) return false;\n }\n\n return true;\n },\n fromArray: function fromArray(array, offset) {\n if (offset === undefined) offset = 0;\n\n for (var i = 0; i < 9; i++) {\n this.elements[i] = array[i + offset];\n }\n\n return this;\n },\n toArray: function toArray(array, offset) {\n if (array === undefined) array = [];\n if (offset === undefined) 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 return array;\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author alteredq / http://alteredqualia.com/\n * @author szimek / https://github.com/szimek/\n */\n\nvar _canvas;\n\nvar ImageUtils = {\n getDataURL: function getDataURL(image) {\n var canvas;\n\n if (typeof HTMLCanvasElement == 'undefined') {\n return image.src;\n } else if (image instanceof HTMLCanvasElement) {\n canvas = image;\n } else {\n if (_canvas === undefined) _canvas = document.createElementNS('http://www.w3.org/1999/xhtml', 'canvas');\n _canvas.width = image.width;\n _canvas.height = image.height;\n\n var context = _canvas.getContext('2d');\n\n if (image instanceof ImageData) {\n context.putImageData(image, 0, 0);\n } else {\n context.drawImage(image, 0, 0, image.width, image.height);\n }\n\n canvas = _canvas;\n }\n\n if (canvas.width > 2048 || canvas.height > 2048) {\n return canvas.toDataURL('image/jpeg', 0.6);\n } else {\n return canvas.toDataURL('image/png');\n }\n }\n};\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author alteredq / http://alteredqualia.com/\n * @author szimek / https://github.com/szimek/\n */\n\nvar textureId = 0;\n\nfunction Texture(image, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding) {\n Object.defineProperty(this, 'id', {\n value: textureId++\n });\n this.uuid = _Math.generateUUID();\n this.name = '';\n this.image = image !== undefined ? image : Texture.DEFAULT_IMAGE;\n this.mipmaps = [];\n this.mapping = mapping !== undefined ? mapping : Texture.DEFAULT_MAPPING;\n this.wrapS = wrapS !== undefined ? wrapS : ClampToEdgeWrapping;\n this.wrapT = wrapT !== undefined ? wrapT : ClampToEdgeWrapping;\n this.magFilter = magFilter !== undefined ? magFilter : LinearFilter;\n this.minFilter = minFilter !== undefined ? minFilter : LinearMipmapLinearFilter;\n this.anisotropy = anisotropy !== undefined ? anisotropy : 1;\n this.format = format !== undefined ? format : RGBAFormat;\n this.type = type !== undefined ? type : UnsignedByteType;\n this.offset = new Vector2(0, 0);\n this.repeat = new Vector2(1, 1);\n this.center = new Vector2(0, 0);\n this.rotation = 0;\n this.matrixAutoUpdate = true;\n this.matrix = new Matrix3();\n this.generateMipmaps = true;\n this.premultiplyAlpha = false;\n this.flipY = true;\n this.unpackAlignment = 4; // valid values: 1, 2, 4, 8 (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml)\n // Values of encoding !== THREE.LinearEncoding only supported on map, envMap and emissiveMap.\n //\n // Also changing the encoding after already used by a Material will not automatically make the Material\n // update. You need to explicitly call Material.needsUpdate to trigger it to recompile.\n\n this.encoding = encoding !== undefined ? encoding : LinearEncoding;\n this.version = 0;\n this.onUpdate = null;\n}\n\nTexture.DEFAULT_IMAGE = undefined;\nTexture.DEFAULT_MAPPING = UVMapping;\nTexture.prototype = Object.assign(Object.create(EventDispatcher.prototype), {\n constructor: Texture,\n isTexture: true,\n updateMatrix: function updateMatrix() {\n this.matrix.setUvTransform(this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y);\n },\n clone: function clone() {\n return new this.constructor().copy(this);\n },\n copy: function copy(source) {\n this.name = source.name;\n this.image = source.image;\n this.mipmaps = source.mipmaps.slice(0);\n this.mapping = source.mapping;\n this.wrapS = source.wrapS;\n this.wrapT = source.wrapT;\n this.magFilter = source.magFilter;\n this.minFilter = source.minFilter;\n this.anisotropy = source.anisotropy;\n this.format = source.format;\n this.type = source.type;\n this.offset.copy(source.offset);\n this.repeat.copy(source.repeat);\n this.center.copy(source.center);\n this.rotation = source.rotation;\n this.matrixAutoUpdate = source.matrixAutoUpdate;\n this.matrix.copy(source.matrix);\n this.generateMipmaps = source.generateMipmaps;\n this.premultiplyAlpha = source.premultiplyAlpha;\n this.flipY = source.flipY;\n this.unpackAlignment = source.unpackAlignment;\n this.encoding = source.encoding;\n return this;\n },\n toJSON: function toJSON(meta) {\n var isRootObject = meta === undefined || typeof meta === 'string';\n\n if (!isRootObject && meta.textures[this.uuid] !== undefined) {\n return meta.textures[this.uuid];\n }\n\n var output = {\n metadata: {\n version: 4.5,\n type: 'Texture',\n generator: 'Texture.toJSON'\n },\n uuid: this.uuid,\n name: this.name,\n mapping: this.mapping,\n repeat: [this.repeat.x, this.repeat.y],\n offset: [this.offset.x, this.offset.y],\n center: [this.center.x, this.center.y],\n rotation: this.rotation,\n wrap: [this.wrapS, this.wrapT],\n format: this.format,\n type: this.type,\n encoding: this.encoding,\n minFilter: this.minFilter,\n magFilter: this.magFilter,\n anisotropy: this.anisotropy,\n flipY: this.flipY,\n premultiplyAlpha: this.premultiplyAlpha,\n unpackAlignment: this.unpackAlignment\n };\n\n if (this.image !== undefined) {\n // TODO: Move to THREE.Image\n var image = this.image;\n\n if (image.uuid === undefined) {\n image.uuid = _Math.generateUUID(); // UGH\n }\n\n if (!isRootObject && meta.images[image.uuid] === undefined) {\n var url;\n\n if (Array.isArray(image)) {\n // process array of images e.g. CubeTexture\n url = [];\n\n for (var i = 0, l = image.length; i < l; i++) {\n url.push(ImageUtils.getDataURL(image[i]));\n }\n } else {\n // process single image\n url = ImageUtils.getDataURL(image);\n }\n\n meta.images[image.uuid] = {\n uuid: image.uuid,\n url: url\n };\n }\n\n output.image = image.uuid;\n }\n\n if (!isRootObject) {\n meta.textures[this.uuid] = output;\n }\n\n return output;\n },\n dispose: function dispose() {\n this.dispatchEvent({\n type: 'dispose'\n });\n },\n transformUv: function transformUv(uv) {\n if (this.mapping !== UVMapping) return uv;\n uv.applyMatrix3(this.matrix);\n\n if (uv.x < 0 || uv.x > 1) {\n switch (this.wrapS) {\n case RepeatWrapping:\n uv.x = uv.x - Math.floor(uv.x);\n break;\n\n case ClampToEdgeWrapping:\n uv.x = uv.x < 0 ? 0 : 1;\n break;\n\n case MirroredRepeatWrapping:\n if (Math.abs(Math.floor(uv.x) % 2) === 1) {\n uv.x = Math.ceil(uv.x) - uv.x;\n } else {\n uv.x = uv.x - Math.floor(uv.x);\n }\n\n break;\n }\n }\n\n if (uv.y < 0 || uv.y > 1) {\n switch (this.wrapT) {\n case RepeatWrapping:\n uv.y = uv.y - Math.floor(uv.y);\n break;\n\n case ClampToEdgeWrapping:\n uv.y = uv.y < 0 ? 0 : 1;\n break;\n\n case MirroredRepeatWrapping:\n if (Math.abs(Math.floor(uv.y) % 2) === 1) {\n uv.y = Math.ceil(uv.y) - uv.y;\n } else {\n uv.y = uv.y - Math.floor(uv.y);\n }\n\n break;\n }\n }\n\n if (this.flipY) {\n uv.y = 1 - uv.y;\n }\n\n return uv;\n }\n});\nObject.defineProperty(Texture.prototype, \"needsUpdate\", {\n set: function set(value) {\n if (value === true) this.version++;\n }\n});\n/**\n * @author supereggbert / http://www.paulbrunt.co.uk/\n * @author philogb / http://blog.thejit.org/\n * @author mikael emtinger / http://gomo.se/\n * @author egraether / http://egraether.com/\n * @author WestLangley / http://github.com/WestLangley\n */\n\nfunction Vector4(x, y, z, w) {\n this.x = x || 0;\n this.y = y || 0;\n this.z = z || 0;\n this.w = w !== undefined ? w : 1;\n}\n\nObject.defineProperties(Vector4.prototype, {\n \"width\": {\n get: function get() {\n return this.z;\n },\n set: function set(value) {\n this.z = value;\n }\n },\n \"height\": {\n get: function get() {\n return this.w;\n },\n set: function set(value) {\n this.w = value;\n }\n }\n});\nObject.assign(Vector4.prototype, {\n isVector4: true,\n set: function set(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 setScalar: function setScalar(scalar) {\n this.x = scalar;\n this.y = scalar;\n this.z = scalar;\n this.w = scalar;\n return this;\n },\n setX: function setX(x) {\n this.x = x;\n return this;\n },\n setY: function setY(y) {\n this.y = y;\n return this;\n },\n setZ: function setZ(z) {\n this.z = z;\n return this;\n },\n setW: function setW(w) {\n this.w = w;\n return this;\n },\n setComponent: function setComponent(index, value) {\n switch (index) {\n case 0:\n this.x = value;\n break;\n\n case 1:\n this.y = value;\n break;\n\n case 2:\n this.z = value;\n break;\n\n case 3:\n this.w = value;\n break;\n\n default:\n throw new Error('index is out of range: ' + index);\n }\n\n return this;\n },\n getComponent: function getComponent(index) {\n switch (index) {\n case 0:\n return this.x;\n\n case 1:\n return this.y;\n\n case 2:\n return this.z;\n\n case 3:\n return this.w;\n\n default:\n throw new Error('index is out of range: ' + index);\n }\n },\n clone: function clone() {\n return new this.constructor(this.x, this.y, this.z, this.w);\n },\n copy: function copy(v) {\n this.x = v.x;\n this.y = v.y;\n this.z = v.z;\n this.w = v.w !== undefined ? v.w : 1;\n return this;\n },\n add: function add(v, w) {\n if (w !== undefined) {\n console.warn('THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.');\n return this.addVectors(v, w);\n }\n\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 addScalar: function addScalar(s) {\n this.x += s;\n this.y += s;\n this.z += s;\n this.w += s;\n return this;\n },\n addVectors: function addVectors(a, b) {\n this.x = a.x + b.x;\n this.y = a.y + b.y;\n this.z = a.z + b.z;\n this.w = a.w + b.w;\n return this;\n },\n addScaledVector: function addScaledVector(v, s) {\n this.x += v.x * s;\n this.y += v.y * s;\n this.z += v.z * s;\n this.w += v.w * s;\n return this;\n },\n sub: function sub(v, w) {\n if (w !== undefined) {\n console.warn('THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.');\n return this.subVectors(v, w);\n }\n\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 subScalar: function subScalar(s) {\n this.x -= s;\n this.y -= s;\n this.z -= s;\n this.w -= s;\n return this;\n },\n subVectors: function subVectors(a, b) {\n this.x = a.x - b.x;\n this.y = a.y - b.y;\n this.z = a.z - b.z;\n this.w = a.w - b.w;\n return this;\n },\n multiplyScalar: function multiplyScalar(scalar) {\n this.x *= scalar;\n this.y *= scalar;\n this.z *= scalar;\n this.w *= scalar;\n return this;\n },\n applyMatrix4: function applyMatrix4(m) {\n var x = this.x,\n y = this.y,\n z = this.z,\n w = this.w;\n var e = m.elements;\n this.x = e[0] * x + e[4] * y + e[8] * z + e[12] * w;\n this.y = e[1] * x + e[5] * y + e[9] * z + e[13] * w;\n this.z = e[2] * x + e[6] * y + e[10] * z + e[14] * w;\n this.w = e[3] * x + e[7] * y + e[11] * z + e[15] * w;\n return this;\n },\n divideScalar: function divideScalar(scalar) {\n return this.multiplyScalar(1 / scalar);\n },\n setAxisAngleFromQuaternion: function setAxisAngleFromQuaternion(q) {\n // http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm\n // q is assumed to be normalized\n this.w = 2 * Math.acos(q.w);\n var s = Math.sqrt(1 - q.w * q.w);\n\n if (s < 0.0001) {\n this.x = 1;\n this.y = 0;\n this.z = 0;\n } else {\n this.x = q.x / s;\n this.y = q.y / s;\n this.z = q.z / s;\n }\n\n return this;\n },\n setAxisAngleFromRotationMatrix: function setAxisAngleFromRotationMatrix(m) {\n // http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm\n // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n var angle,\n x,\n y,\n z,\n // variables for result\n epsilon = 0.01,\n // margin to allow for rounding errors\n epsilon2 = 0.1,\n // margin to distinguish between 0 and 180 degrees\n te = m.elements,\n m11 = te[0],\n m12 = te[4],\n m13 = te[8],\n m21 = te[1],\n m22 = te[5],\n m23 = te[9],\n m31 = te[2],\n m32 = te[6],\n m33 = te[10];\n\n if (Math.abs(m12 - m21) < epsilon && Math.abs(m13 - m31) < epsilon && Math.abs(m23 - m32) < epsilon) {\n // singularity found\n // first check for identity matrix which must have +1 for all terms\n // in leading diagonal and zero in other terms\n if (Math.abs(m12 + m21) < epsilon2 && Math.abs(m13 + m31) < epsilon2 && Math.abs(m23 + m32) < epsilon2 && Math.abs(m11 + m22 + m33 - 3) < epsilon2) {\n // this singularity is identity matrix so angle = 0\n this.set(1, 0, 0, 0);\n return this; // zero angle, arbitrary axis\n } // otherwise this singularity is angle = 180\n\n\n angle = Math.PI;\n var xx = (m11 + 1) / 2;\n var yy = (m22 + 1) / 2;\n var zz = (m33 + 1) / 2;\n var xy = (m12 + m21) / 4;\n var xz = (m13 + m31) / 4;\n var yz = (m23 + m32) / 4;\n\n if (xx > yy && xx > zz) {\n // m11 is the largest diagonal term\n if (xx < epsilon) {\n x = 0;\n y = 0.707106781;\n z = 0.707106781;\n } else {\n x = Math.sqrt(xx);\n y = xy / x;\n z = xz / x;\n }\n } else if (yy > zz) {\n // m22 is the largest diagonal term\n if (yy < epsilon) {\n x = 0.707106781;\n y = 0;\n z = 0.707106781;\n } else {\n y = Math.sqrt(yy);\n x = xy / y;\n z = yz / y;\n }\n } else {\n // m33 is the largest diagonal term so base result on this\n if (zz < epsilon) {\n x = 0.707106781;\n y = 0.707106781;\n z = 0;\n } else {\n z = Math.sqrt(zz);\n x = xz / z;\n y = yz / z;\n }\n }\n\n this.set(x, y, z, angle);\n return this; // return 180 deg rotation\n } // as we have reached here there are no singularities so we can handle normally\n\n\n var s = Math.sqrt((m32 - m23) * (m32 - m23) + (m13 - m31) * (m13 - m31) + (m21 - m12) * (m21 - m12)); // used to normalize\n\n if (Math.abs(s) < 0.001) s = 1; // prevent divide by zero, should not happen if matrix is orthogonal and should be\n // caught by singularity test above, but I've left it in just in case\n\n this.x = (m32 - m23) / s;\n this.y = (m13 - m31) / s;\n this.z = (m21 - m12) / s;\n this.w = Math.acos((m11 + m22 + m33 - 1) / 2);\n return this;\n },\n min: function min(v) {\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 return this;\n },\n max: function max(v) {\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 return this;\n },\n clamp: function clamp(min, max) {\n // assumes min < max, componentwise\n this.x = Math.max(min.x, Math.min(max.x, this.x));\n this.y = Math.max(min.y, Math.min(max.y, this.y));\n this.z = Math.max(min.z, Math.min(max.z, this.z));\n this.w = Math.max(min.w, Math.min(max.w, this.w));\n return this;\n },\n clampScalar: function clampScalar(minVal, maxVal) {\n this.x = Math.max(minVal, Math.min(maxVal, this.x));\n this.y = Math.max(minVal, Math.min(maxVal, this.y));\n this.z = Math.max(minVal, Math.min(maxVal, this.z));\n this.w = Math.max(minVal, Math.min(maxVal, this.w));\n return this;\n },\n clampLength: function clampLength(min, max) {\n var length = this.length();\n return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\n },\n floor: function floor() {\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 ceil: function ceil() {\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 round: function round() {\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 roundToZero: function roundToZero() {\n this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x);\n this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y);\n this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z);\n this.w = this.w < 0 ? Math.ceil(this.w) : Math.floor(this.w);\n return this;\n },\n negate: function negate() {\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 dot: function dot(v) {\n return this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\n },\n lengthSq: function lengthSq() {\n return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n },\n length: function length() {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);\n },\n manhattanLength: function manhattanLength() {\n return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z) + Math.abs(this.w);\n },\n normalize: function normalize() {\n return this.divideScalar(this.length() || 1);\n },\n setLength: function setLength(length) {\n return this.normalize().multiplyScalar(length);\n },\n lerp: function lerp(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 lerpVectors: function lerpVectors(v1, v2, alpha) {\n return this.subVectors(v2, v1).multiplyScalar(alpha).add(v1);\n },\n equals: function equals(v) {\n return v.x === this.x && v.y === this.y && v.z === this.z && v.w === this.w;\n },\n fromArray: function fromArray(array, offset) {\n if (offset === undefined) 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 toArray: function toArray(array, offset) {\n if (array === undefined) array = [];\n if (offset === undefined) 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 return array;\n },\n fromBufferAttribute: function fromBufferAttribute(attribute, index, offset) {\n if (offset !== undefined) {\n console.warn('THREE.Vector4: offset has been removed from .fromBufferAttribute().');\n }\n\n this.x = attribute.getX(index);\n this.y = attribute.getY(index);\n this.z = attribute.getZ(index);\n this.w = attribute.getW(index);\n return this;\n }\n});\n/**\n * @author szimek / https://github.com/szimek/\n * @author alteredq / http://alteredqualia.com/\n * @author Marius Kintel / https://github.com/kintel\n */\n\n/*\n In options, we can specify:\n * Texture parameters for an auto-generated target texture\n * depthBuffer/stencilBuffer: Booleans to indicate if we should generate these buffers\n*/\n\nfunction WebGLRenderTarget(width, height, options) {\n this.width = width;\n this.height = height;\n this.scissor = new Vector4(0, 0, width, height);\n this.scissorTest = false;\n this.viewport = new Vector4(0, 0, width, height);\n options = options || {};\n this.texture = new Texture(undefined, undefined, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.encoding);\n this.texture.image = {};\n this.texture.image.width = width;\n this.texture.image.height = height;\n this.texture.generateMipmaps = options.generateMipmaps !== undefined ? options.generateMipmaps : false;\n this.texture.minFilter = options.minFilter !== undefined ? options.minFilter : LinearFilter;\n this.depthBuffer = options.depthBuffer !== undefined ? options.depthBuffer : true;\n this.stencilBuffer = options.stencilBuffer !== undefined ? options.stencilBuffer : true;\n this.depthTexture = options.depthTexture !== undefined ? options.depthTexture : null;\n}\n\nWebGLRenderTarget.prototype = Object.assign(Object.create(EventDispatcher.prototype), {\n constructor: WebGLRenderTarget,\n isWebGLRenderTarget: true,\n setSize: function setSize(width, height) {\n if (this.width !== width || this.height !== height) {\n this.width = width;\n this.height = height;\n this.texture.image.width = width;\n this.texture.image.height = height;\n this.dispose();\n }\n\n this.viewport.set(0, 0, width, height);\n this.scissor.set(0, 0, width, height);\n },\n clone: function clone() {\n return new this.constructor().copy(this);\n },\n copy: function copy(source) {\n this.width = source.width;\n this.height = source.height;\n this.viewport.copy(source.viewport);\n this.texture = source.texture.clone();\n this.depthBuffer = source.depthBuffer;\n this.stencilBuffer = source.stencilBuffer;\n this.depthTexture = source.depthTexture;\n return this;\n },\n dispose: function dispose() {\n this.dispatchEvent({\n type: 'dispose'\n });\n }\n});\n/**\n * @author Mugen87 / https://github.com/Mugen87\n * @author Matt DesLauriers / @mattdesl\n */\n\nfunction WebGLMultisampleRenderTarget(width, height, options) {\n WebGLRenderTarget.call(this, width, height, options);\n this.samples = 4;\n}\n\nWebGLMultisampleRenderTarget.prototype = Object.assign(Object.create(WebGLRenderTarget.prototype), {\n constructor: WebGLMultisampleRenderTarget,\n isWebGLMultisampleRenderTarget: true,\n copy: function copy(source) {\n WebGLRenderTarget.prototype.copy.call(this, source);\n this.samples = source.samples;\n return this;\n }\n});\n\nvar _v1 = new Vector3();\n\nvar _m1 = new Matrix4();\n\nvar _zero = new Vector3(0, 0, 0);\n\nvar _one = new Vector3(1, 1, 1);\n\nvar _x = new Vector3();\n\nvar _y = new Vector3();\n\nvar _z = new Vector3();\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author supereggbert / http://www.paulbrunt.co.uk/\n * @author philogb / http://blog.thejit.org/\n * @author jordi_ros / http://plattsoft.com\n * @author D1plo1d / http://github.com/D1plo1d\n * @author alteredq / http://alteredqualia.com/\n * @author mikael emtinger / http://gomo.se/\n * @author timknip / http://www.floorplanner.com/\n * @author bhouston / http://clara.io\n * @author WestLangley / http://github.com/WestLangley\n */\n\n\nfunction Matrix4() {\n this.elements = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n\n if (arguments.length > 0) {\n console.error('THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.');\n }\n}\n\nObject.assign(Matrix4.prototype, {\n isMatrix4: true,\n set: function set(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44) {\n var te = this.elements;\n te[0] = n11;\n te[4] = n12;\n te[8] = n13;\n te[12] = n14;\n te[1] = n21;\n te[5] = n22;\n te[9] = n23;\n te[13] = n24;\n te[2] = n31;\n te[6] = n32;\n te[10] = n33;\n te[14] = n34;\n te[3] = n41;\n te[7] = n42;\n te[11] = n43;\n te[15] = n44;\n return this;\n },\n identity: function identity() {\n this.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n return this;\n },\n clone: function clone() {\n return new Matrix4().fromArray(this.elements);\n },\n copy: function copy(m) {\n var te = this.elements;\n var me = m.elements;\n te[0] = me[0];\n te[1] = me[1];\n te[2] = me[2];\n te[3] = me[3];\n te[4] = me[4];\n te[5] = me[5];\n te[6] = me[6];\n te[7] = me[7];\n te[8] = me[8];\n te[9] = me[9];\n te[10] = me[10];\n te[11] = me[11];\n te[12] = me[12];\n te[13] = me[13];\n te[14] = me[14];\n te[15] = me[15];\n return this;\n },\n copyPosition: function copyPosition(m) {\n var te = this.elements,\n me = m.elements;\n te[12] = me[12];\n te[13] = me[13];\n te[14] = me[14];\n return this;\n },\n extractBasis: function extractBasis(xAxis, yAxis, zAxis) {\n xAxis.setFromMatrixColumn(this, 0);\n yAxis.setFromMatrixColumn(this, 1);\n zAxis.setFromMatrixColumn(this, 2);\n return this;\n },\n makeBasis: function makeBasis(xAxis, yAxis, zAxis) {\n this.set(xAxis.x, yAxis.x, zAxis.x, 0, xAxis.y, yAxis.y, zAxis.y, 0, xAxis.z, yAxis.z, zAxis.z, 0, 0, 0, 0, 1);\n return this;\n },\n extractRotation: function extractRotation(m) {\n // this method does not support reflection matrices\n var te = this.elements;\n var me = m.elements;\n\n var scaleX = 1 / _v1.setFromMatrixColumn(m, 0).length();\n\n var scaleY = 1 / _v1.setFromMatrixColumn(m, 1).length();\n\n var scaleZ = 1 / _v1.setFromMatrixColumn(m, 2).length();\n\n te[0] = me[0] * scaleX;\n te[1] = me[1] * scaleX;\n te[2] = me[2] * scaleX;\n te[3] = 0;\n te[4] = me[4] * scaleY;\n te[5] = me[5] * scaleY;\n te[6] = me[6] * scaleY;\n te[7] = 0;\n te[8] = me[8] * scaleZ;\n te[9] = me[9] * scaleZ;\n te[10] = me[10] * scaleZ;\n te[11] = 0;\n te[12] = 0;\n te[13] = 0;\n te[14] = 0;\n te[15] = 1;\n return this;\n },\n makeRotationFromEuler: function makeRotationFromEuler(euler) {\n if (!(euler && euler.isEuler)) {\n console.error('THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.');\n }\n\n var te = this.elements;\n var x = euler.x,\n y = euler.y,\n z = euler.z;\n var a = Math.cos(x),\n b = Math.sin(x);\n var c = Math.cos(y),\n d = Math.sin(y);\n var e = Math.cos(z),\n f = Math.sin(z);\n\n if (euler.order === 'XYZ') {\n var ae = a * e,\n af = a * f,\n be = b * e,\n bf = b * f;\n te[0] = c * e;\n te[4] = -c * f;\n te[8] = d;\n te[1] = af + be * d;\n te[5] = ae - bf * d;\n te[9] = -b * c;\n te[2] = bf - ae * d;\n te[6] = be + af * d;\n te[10] = a * c;\n } else if (euler.order === 'YXZ') {\n var ce = c * e,\n cf = c * f,\n de = d * e,\n df = d * f;\n te[0] = ce + df * b;\n te[4] = de * b - cf;\n te[8] = a * d;\n te[1] = a * f;\n te[5] = a * e;\n te[9] = -b;\n te[2] = cf * b - de;\n te[6] = df + ce * b;\n te[10] = a * c;\n } else if (euler.order === 'ZXY') {\n var ce = c * e,\n cf = c * f,\n de = d * e,\n df = d * f;\n te[0] = ce - df * b;\n te[4] = -a * f;\n te[8] = de + cf * b;\n te[1] = cf + de * b;\n te[5] = a * e;\n te[9] = df - ce * b;\n te[2] = -a * d;\n te[6] = b;\n te[10] = a * c;\n } else if (euler.order === 'ZYX') {\n var ae = a * e,\n af = a * f,\n be = b * e,\n bf = b * f;\n te[0] = c * e;\n te[4] = be * d - af;\n te[8] = ae * d + bf;\n te[1] = c * f;\n te[5] = bf * d + ae;\n te[9] = af * d - be;\n te[2] = -d;\n te[6] = b * c;\n te[10] = a * c;\n } else if (euler.order === 'YZX') {\n var ac = a * c,\n ad = a * d,\n bc = b * c,\n bd = b * d;\n te[0] = c * e;\n te[4] = bd - ac * f;\n te[8] = bc * f + ad;\n te[1] = f;\n te[5] = a * e;\n te[9] = -b * e;\n te[2] = -d * e;\n te[6] = ad * f + bc;\n te[10] = ac - bd * f;\n } else if (euler.order === 'XZY') {\n var ac = a * c,\n ad = a * d,\n bc = b * c,\n bd = b * d;\n te[0] = c * e;\n te[4] = -f;\n te[8] = d * e;\n te[1] = ac * f + bd;\n te[5] = a * e;\n te[9] = ad * f - bc;\n te[2] = bc * f - ad;\n te[6] = b * e;\n te[10] = bd * f + ac;\n } // bottom row\n\n\n te[3] = 0;\n te[7] = 0;\n te[11] = 0; // last column\n\n te[12] = 0;\n te[13] = 0;\n te[14] = 0;\n te[15] = 1;\n return this;\n },\n makeRotationFromQuaternion: function makeRotationFromQuaternion(q) {\n return this.compose(_zero, q, _one);\n },\n lookAt: function lookAt(eye, target, up) {\n var te = this.elements;\n\n _z.subVectors(eye, target);\n\n if (_z.lengthSq() === 0) {\n // eye and target are in the same position\n _z.z = 1;\n }\n\n _z.normalize();\n\n _x.crossVectors(up, _z);\n\n if (_x.lengthSq() === 0) {\n // up and z are parallel\n if (Math.abs(up.z) === 1) {\n _z.x += 0.0001;\n } else {\n _z.z += 0.0001;\n }\n\n _z.normalize();\n\n _x.crossVectors(up, _z);\n }\n\n _x.normalize();\n\n _y.crossVectors(_z, _x);\n\n te[0] = _x.x;\n te[4] = _y.x;\n te[8] = _z.x;\n te[1] = _x.y;\n te[5] = _y.y;\n te[9] = _z.y;\n te[2] = _x.z;\n te[6] = _y.z;\n te[10] = _z.z;\n return this;\n },\n multiply: function multiply(m, n) {\n if (n !== undefined) {\n console.warn('THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.');\n return this.multiplyMatrices(m, n);\n }\n\n return this.multiplyMatrices(this, m);\n },\n premultiply: function premultiply(m) {\n return this.multiplyMatrices(m, this);\n },\n multiplyMatrices: function multiplyMatrices(a, b) {\n var ae = a.elements;\n var be = b.elements;\n var te = this.elements;\n var a11 = ae[0],\n a12 = ae[4],\n a13 = ae[8],\n a14 = ae[12];\n var a21 = ae[1],\n a22 = ae[5],\n a23 = ae[9],\n a24 = ae[13];\n var a31 = ae[2],\n a32 = ae[6],\n a33 = ae[10],\n a34 = ae[14];\n var a41 = ae[3],\n a42 = ae[7],\n a43 = ae[11],\n a44 = ae[15];\n var b11 = be[0],\n b12 = be[4],\n b13 = be[8],\n b14 = be[12];\n var b21 = be[1],\n b22 = be[5],\n b23 = be[9],\n b24 = be[13];\n var b31 = be[2],\n b32 = be[6],\n b33 = be[10],\n b34 = be[14];\n var b41 = be[3],\n b42 = be[7],\n b43 = be[11],\n 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 multiplyScalar: function multiplyScalar(s) {\n var te = this.elements;\n te[0] *= s;\n te[4] *= s;\n te[8] *= s;\n te[12] *= s;\n te[1] *= s;\n te[5] *= s;\n te[9] *= s;\n te[13] *= s;\n te[2] *= s;\n te[6] *= s;\n te[10] *= s;\n te[14] *= s;\n te[3] *= s;\n te[7] *= s;\n te[11] *= s;\n te[15] *= s;\n return this;\n },\n applyToBufferAttribute: function applyToBufferAttribute(attribute) {\n for (var i = 0, l = attribute.count; i < l; i++) {\n _v1.x = attribute.getX(i);\n _v1.y = attribute.getY(i);\n _v1.z = attribute.getZ(i);\n\n _v1.applyMatrix4(this);\n\n attribute.setXYZ(i, _v1.x, _v1.y, _v1.z);\n }\n\n return attribute;\n },\n determinant: function determinant() {\n var te = this.elements;\n var n11 = te[0],\n n12 = te[4],\n n13 = te[8],\n n14 = te[12];\n var n21 = te[1],\n n22 = te[5],\n n23 = te[9],\n n24 = te[13];\n var n31 = te[2],\n n32 = te[6],\n n33 = te[10],\n n34 = te[14];\n var n41 = te[3],\n n42 = te[7],\n n43 = te[11],\n n44 = te[15]; //TODO: make this more efficient\n //( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm )\n\n return n41 * (+n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34) + n42 * (+n11 * n23 * n34 - n11 * n24 * n33 + n14 * n21 * n33 - n13 * n21 * n34 + n13 * n24 * n31 - n14 * n23 * n31) + n43 * (+n11 * n24 * n32 - n11 * n22 * n34 - n14 * n21 * n32 + n12 * n21 * n34 + n14 * n22 * n31 - n12 * n24 * n31) + n44 * (-n13 * n22 * n31 - n11 * n23 * n32 + n11 * n22 * n33 + n13 * n21 * n32 - n12 * n21 * n33 + n12 * n23 * n31);\n },\n transpose: function transpose() {\n var te = this.elements;\n var tmp;\n tmp = te[1];\n te[1] = te[4];\n te[4] = tmp;\n tmp = te[2];\n te[2] = te[8];\n te[8] = tmp;\n tmp = te[6];\n te[6] = te[9];\n te[9] = tmp;\n tmp = te[3];\n te[3] = te[12];\n te[12] = tmp;\n tmp = te[7];\n te[7] = te[13];\n te[13] = tmp;\n tmp = te[11];\n te[11] = te[14];\n te[14] = tmp;\n return this;\n },\n setPosition: function setPosition(x, y, z) {\n var te = this.elements;\n\n if (x.isVector3) {\n te[12] = x.x;\n te[13] = x.y;\n te[14] = x.z;\n } else {\n te[12] = x;\n te[13] = y;\n te[14] = z;\n }\n\n return this;\n },\n getInverse: function getInverse(m, throwOnDegenerate) {\n // based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm\n var te = this.elements,\n me = m.elements,\n n11 = me[0],\n n21 = me[1],\n n31 = me[2],\n n41 = me[3],\n n12 = me[4],\n n22 = me[5],\n n32 = me[6],\n n42 = me[7],\n n13 = me[8],\n n23 = me[9],\n n33 = me[10],\n n43 = me[11],\n n14 = me[12],\n n24 = me[13],\n n34 = me[14],\n n44 = me[15],\n t11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44,\n t12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44,\n t13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44,\n t14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;\n var det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;\n\n if (det === 0) {\n var msg = \"THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0\";\n\n if (throwOnDegenerate === true) {\n throw new Error(msg);\n } else {\n console.warn(msg);\n }\n\n return this.identity();\n }\n\n var detInv = 1 / det;\n te[0] = t11 * detInv;\n te[1] = (n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44) * detInv;\n te[2] = (n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44) * detInv;\n te[3] = (n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43) * detInv;\n te[4] = t12 * detInv;\n te[5] = (n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44) * detInv;\n te[6] = (n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44) * detInv;\n te[7] = (n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43) * detInv;\n te[8] = t13 * detInv;\n te[9] = (n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44) * detInv;\n te[10] = (n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44) * detInv;\n te[11] = (n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43) * detInv;\n te[12] = t14 * detInv;\n te[13] = (n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34) * detInv;\n te[14] = (n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34) * detInv;\n te[15] = (n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33) * detInv;\n return this;\n },\n scale: function scale(v) {\n var te = this.elements;\n var x = v.x,\n y = v.y,\n z = v.z;\n te[0] *= x;\n te[4] *= y;\n te[8] *= z;\n te[1] *= x;\n te[5] *= y;\n te[9] *= z;\n te[2] *= x;\n te[6] *= y;\n te[10] *= z;\n te[3] *= x;\n te[7] *= y;\n te[11] *= z;\n return this;\n },\n getMaxScaleOnAxis: function getMaxScaleOnAxis() {\n var te = this.elements;\n var scaleXSq = te[0] * te[0] + te[1] * te[1] + te[2] * te[2];\n var scaleYSq = te[4] * te[4] + te[5] * te[5] + te[6] * te[6];\n var scaleZSq = te[8] * te[8] + te[9] * te[9] + te[10] * te[10];\n return Math.sqrt(Math.max(scaleXSq, scaleYSq, scaleZSq));\n },\n makeTranslation: function makeTranslation(x, y, z) {\n this.set(1, 0, 0, x, 0, 1, 0, y, 0, 0, 1, z, 0, 0, 0, 1);\n return this;\n },\n makeRotationX: function makeRotationX(theta) {\n var c = Math.cos(theta),\n s = Math.sin(theta);\n this.set(1, 0, 0, 0, 0, c, -s, 0, 0, s, c, 0, 0, 0, 0, 1);\n return this;\n },\n makeRotationY: function makeRotationY(theta) {\n var c = Math.cos(theta),\n s = Math.sin(theta);\n this.set(c, 0, s, 0, 0, 1, 0, 0, -s, 0, c, 0, 0, 0, 0, 1);\n return this;\n },\n makeRotationZ: function makeRotationZ(theta) {\n var c = Math.cos(theta),\n s = Math.sin(theta);\n this.set(c, -s, 0, 0, s, c, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n return this;\n },\n makeRotationAxis: function makeRotationAxis(axis, angle) {\n // Based on http://www.gamedev.net/reference/articles/article1199.asp\n var c = Math.cos(angle);\n var s = Math.sin(angle);\n var t = 1 - c;\n var x = axis.x,\n y = axis.y,\n z = axis.z;\n var tx = t * x,\n ty = t * y;\n 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 return this;\n },\n makeScale: function makeScale(x, y, z) {\n this.set(x, 0, 0, 0, 0, y, 0, 0, 0, 0, z, 0, 0, 0, 0, 1);\n return this;\n },\n makeShear: function makeShear(x, y, z) {\n this.set(1, y, z, 0, x, 1, z, 0, x, y, 1, 0, 0, 0, 0, 1);\n return this;\n },\n compose: function compose(position, quaternion, scale) {\n var te = this.elements;\n var x = quaternion._x,\n y = quaternion._y,\n z = quaternion._z,\n w = quaternion._w;\n var x2 = x + x,\n y2 = y + y,\n z2 = z + z;\n var xx = x * x2,\n xy = x * y2,\n xz = x * z2;\n var yy = y * y2,\n yz = y * z2,\n zz = z * z2;\n var wx = w * x2,\n wy = w * y2,\n wz = w * z2;\n var sx = scale.x,\n sy = scale.y,\n 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] = position.x;\n te[13] = position.y;\n te[14] = position.z;\n te[15] = 1;\n return this;\n },\n decompose: function decompose(position, quaternion, scale) {\n var te = this.elements;\n\n var sx = _v1.set(te[0], te[1], te[2]).length();\n\n var sy = _v1.set(te[4], te[5], te[6]).length();\n\n var sz = _v1.set(te[8], te[9], te[10]).length(); // if determine is negative, we need to invert one scale\n\n\n var det = this.determinant();\n if (det < 0) sx = -sx;\n position.x = te[12];\n position.y = te[13];\n position.z = te[14]; // scale the rotation part\n\n _m1.copy(this);\n\n var invSX = 1 / sx;\n var invSY = 1 / sy;\n var invSZ = 1 / sz;\n _m1.elements[0] *= invSX;\n _m1.elements[1] *= invSX;\n _m1.elements[2] *= invSX;\n _m1.elements[4] *= invSY;\n _m1.elements[5] *= invSY;\n _m1.elements[6] *= invSY;\n _m1.elements[8] *= invSZ;\n _m1.elements[9] *= invSZ;\n _m1.elements[10] *= invSZ;\n quaternion.setFromRotationMatrix(_m1);\n scale.x = sx;\n scale.y = sy;\n scale.z = sz;\n return this;\n },\n makePerspective: function makePerspective(left, right, top, bottom, near, far) {\n if (far === undefined) {\n console.warn('THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.');\n }\n\n var te = this.elements;\n var x = 2 * near / (right - left);\n var y = 2 * near / (top - bottom);\n var a = (right + left) / (right - left);\n var b = (top + bottom) / (top - bottom);\n var c = -(far + near) / (far - near);\n var d = -2 * far * near / (far - near);\n te[0] = x;\n te[4] = 0;\n te[8] = a;\n te[12] = 0;\n te[1] = 0;\n te[5] = y;\n te[9] = b;\n te[13] = 0;\n te[2] = 0;\n te[6] = 0;\n te[10] = c;\n te[14] = d;\n te[3] = 0;\n te[7] = 0;\n te[11] = -1;\n te[15] = 0;\n return this;\n },\n makeOrthographic: function makeOrthographic(left, right, top, bottom, near, far) {\n var te = this.elements;\n var w = 1.0 / (right - left);\n var h = 1.0 / (top - bottom);\n var p = 1.0 / (far - near);\n var x = (right + left) * w;\n var y = (top + bottom) * h;\n var z = (far + near) * p;\n te[0] = 2 * w;\n te[4] = 0;\n te[8] = 0;\n te[12] = -x;\n te[1] = 0;\n te[5] = 2 * h;\n te[9] = 0;\n te[13] = -y;\n te[2] = 0;\n te[6] = 0;\n te[10] = -2 * p;\n te[14] = -z;\n te[3] = 0;\n te[7] = 0;\n te[11] = 0;\n te[15] = 1;\n return this;\n },\n equals: function equals(matrix) {\n var te = this.elements;\n var me = matrix.elements;\n\n for (var i = 0; i < 16; i++) {\n if (te[i] !== me[i]) return false;\n }\n\n return true;\n },\n fromArray: function fromArray(array, offset) {\n if (offset === undefined) offset = 0;\n\n for (var i = 0; i < 16; i++) {\n this.elements[i] = array[i + offset];\n }\n\n return this;\n },\n toArray: function toArray(array, offset) {\n if (array === undefined) array = [];\n if (offset === undefined) 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 return array;\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author WestLangley / http://github.com/WestLangley\n * @author bhouston / http://clara.io\n */\n\nvar _matrix = new Matrix4();\n\nvar _quaternion$1 = new Quaternion();\n\nfunction Euler(x, y, z, order) {\n this._x = x || 0;\n this._y = y || 0;\n this._z = z || 0;\n this._order = order || Euler.DefaultOrder;\n}\n\nEuler.RotationOrders = ['XYZ', 'YZX', 'ZXY', 'XZY', 'YXZ', 'ZYX'];\nEuler.DefaultOrder = 'XYZ';\nObject.defineProperties(Euler.prototype, {\n x: {\n get: function get() {\n return this._x;\n },\n set: function set(value) {\n this._x = value;\n\n this._onChangeCallback();\n }\n },\n y: {\n get: function get() {\n return this._y;\n },\n set: function set(value) {\n this._y = value;\n\n this._onChangeCallback();\n }\n },\n z: {\n get: function get() {\n return this._z;\n },\n set: function set(value) {\n this._z = value;\n\n this._onChangeCallback();\n }\n },\n order: {\n get: function get() {\n return this._order;\n },\n set: function set(value) {\n this._order = value;\n\n this._onChangeCallback();\n }\n }\n});\nObject.assign(Euler.prototype, {\n isEuler: true,\n set: function set(x, y, z, order) {\n this._x = x;\n this._y = y;\n this._z = z;\n this._order = order || this._order;\n\n this._onChangeCallback();\n\n return this;\n },\n clone: function clone() {\n return new this.constructor(this._x, this._y, this._z, this._order);\n },\n copy: function copy(euler) {\n this._x = euler._x;\n this._y = euler._y;\n this._z = euler._z;\n this._order = euler._order;\n\n this._onChangeCallback();\n\n return this;\n },\n setFromRotationMatrix: function setFromRotationMatrix(m, order, update) {\n var clamp = _Math.clamp; // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n var te = m.elements;\n var m11 = te[0],\n m12 = te[4],\n m13 = te[8];\n var m21 = te[1],\n m22 = te[5],\n m23 = te[9];\n var m31 = te[2],\n m32 = te[6],\n m33 = te[10];\n order = order || this._order;\n\n if (order === 'XYZ') {\n this._y = Math.asin(clamp(m13, -1, 1));\n\n if (Math.abs(m13) < 0.9999999) {\n this._x = Math.atan2(-m23, m33);\n this._z = Math.atan2(-m12, m11);\n } else {\n this._x = Math.atan2(m32, m22);\n this._z = 0;\n }\n } else if (order === 'YXZ') {\n this._x = Math.asin(-clamp(m23, -1, 1));\n\n if (Math.abs(m23) < 0.9999999) {\n this._y = Math.atan2(m13, m33);\n this._z = Math.atan2(m21, m22);\n } else {\n this._y = Math.atan2(-m31, m11);\n this._z = 0;\n }\n } else if (order === 'ZXY') {\n this._x = Math.asin(clamp(m32, -1, 1));\n\n if (Math.abs(m32) < 0.9999999) {\n this._y = Math.atan2(-m31, m33);\n this._z = Math.atan2(-m12, m22);\n } else {\n this._y = 0;\n this._z = Math.atan2(m21, m11);\n }\n } else if (order === 'ZYX') {\n this._y = Math.asin(-clamp(m31, -1, 1));\n\n if (Math.abs(m31) < 0.9999999) {\n this._x = Math.atan2(m32, m33);\n this._z = Math.atan2(m21, m11);\n } else {\n this._x = 0;\n this._z = Math.atan2(-m12, m22);\n }\n } else if (order === 'YZX') {\n this._z = Math.asin(clamp(m21, -1, 1));\n\n if (Math.abs(m21) < 0.9999999) {\n this._x = Math.atan2(-m23, m22);\n this._y = Math.atan2(-m31, m11);\n } else {\n this._x = 0;\n this._y = Math.atan2(m13, m33);\n }\n } else if (order === 'XZY') {\n this._z = Math.asin(-clamp(m12, -1, 1));\n\n if (Math.abs(m12) < 0.9999999) {\n this._x = Math.atan2(m32, m22);\n this._y = Math.atan2(m13, m11);\n } else {\n this._x = Math.atan2(-m23, m33);\n this._y = 0;\n }\n } else {\n console.warn('THREE.Euler: .setFromRotationMatrix() given unsupported order: ' + order);\n }\n\n this._order = order;\n if (update !== false) this._onChangeCallback();\n return this;\n },\n setFromQuaternion: function setFromQuaternion(q, order, update) {\n _matrix.makeRotationFromQuaternion(q);\n\n return this.setFromRotationMatrix(_matrix, order, update);\n },\n setFromVector3: function setFromVector3(v, order) {\n return this.set(v.x, v.y, v.z, order || this._order);\n },\n reorder: function reorder(newOrder) {\n // WARNING: this discards revolution information -bhouston\n _quaternion$1.setFromEuler(this);\n\n return this.setFromQuaternion(_quaternion$1, newOrder);\n },\n equals: function equals(euler) {\n return euler._x === this._x && euler._y === this._y && euler._z === this._z && euler._order === this._order;\n },\n fromArray: function fromArray(array) {\n this._x = array[0];\n this._y = array[1];\n this._z = array[2];\n if (array[3] !== undefined) this._order = array[3];\n\n this._onChangeCallback();\n\n return this;\n },\n toArray: function toArray(array, offset) {\n if (array === undefined) array = [];\n if (offset === undefined) offset = 0;\n array[offset] = this._x;\n array[offset + 1] = this._y;\n array[offset + 2] = this._z;\n array[offset + 3] = this._order;\n return array;\n },\n toVector3: function toVector3(optionalResult) {\n if (optionalResult) {\n return optionalResult.set(this._x, this._y, this._z);\n } else {\n return new Vector3(this._x, this._y, this._z);\n }\n },\n _onChange: function _onChange(callback) {\n this._onChangeCallback = callback;\n return this;\n },\n _onChangeCallback: function _onChangeCallback() {}\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction Layers() {\n this.mask = 1 | 0;\n}\n\nObject.assign(Layers.prototype, {\n set: function set(channel) {\n this.mask = 1 << channel | 0;\n },\n enable: function enable(channel) {\n this.mask |= 1 << channel | 0;\n },\n enableAll: function enableAll() {\n this.mask = 0xffffffff | 0;\n },\n toggle: function toggle(channel) {\n this.mask ^= 1 << channel | 0;\n },\n disable: function disable(channel) {\n this.mask &= ~(1 << channel | 0);\n },\n disableAll: function disableAll() {\n this.mask = 0;\n },\n test: function test(layers) {\n return (this.mask & layers.mask) !== 0;\n }\n});\nvar _object3DId = 0;\n\nvar _v1$1 = new Vector3();\n\nvar _q1 = new Quaternion();\n\nvar _m1$1 = new Matrix4();\n\nvar _target = new Vector3();\n\nvar _position = new Vector3();\n\nvar _scale = new Vector3();\n\nvar _quaternion$2 = new Quaternion();\n\nvar _xAxis = new Vector3(1, 0, 0);\n\nvar _yAxis = new Vector3(0, 1, 0);\n\nvar _zAxis = new Vector3(0, 0, 1);\n\nvar _addedEvent = {\n type: 'added'\n};\nvar _removedEvent = {\n type: 'removed'\n};\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author mikael emtinger / http://gomo.se/\n * @author alteredq / http://alteredqualia.com/\n * @author WestLangley / http://github.com/WestLangley\n * @author elephantatwork / www.elephantatwork.ch\n */\n\nfunction Object3D() {\n Object.defineProperty(this, 'id', {\n value: _object3DId++\n });\n this.uuid = _Math.generateUUID();\n this.name = '';\n this.type = 'Object3D';\n this.parent = null;\n this.children = [];\n this.up = Object3D.DefaultUp.clone();\n var position = new Vector3();\n var rotation = new Euler();\n var quaternion = new Quaternion();\n var scale = new Vector3(1, 1, 1);\n\n function onRotationChange() {\n quaternion.setFromEuler(rotation, false);\n }\n\n function onQuaternionChange() {\n rotation.setFromQuaternion(quaternion, undefined, false);\n }\n\n rotation._onChange(onRotationChange);\n\n quaternion._onChange(onQuaternionChange);\n\n Object.defineProperties(this, {\n position: {\n configurable: true,\n enumerable: true,\n value: position\n },\n rotation: {\n configurable: true,\n enumerable: true,\n value: rotation\n },\n quaternion: {\n configurable: true,\n enumerable: true,\n value: quaternion\n },\n scale: {\n configurable: true,\n enumerable: true,\n value: scale\n },\n modelViewMatrix: {\n value: new Matrix4()\n },\n normalMatrix: {\n value: new Matrix3()\n }\n });\n this.matrix = new Matrix4();\n this.matrixWorld = new Matrix4();\n this.matrixAutoUpdate = Object3D.DefaultMatrixAutoUpdate;\n this.matrixWorldNeedsUpdate = false;\n this.layers = new Layers();\n this.visible = true;\n this.castShadow = false;\n this.receiveShadow = false;\n this.frustumCulled = true;\n this.renderOrder = 0;\n this.userData = {};\n}\n\nObject3D.DefaultUp = new Vector3(0, 1, 0);\nObject3D.DefaultMatrixAutoUpdate = true;\nObject3D.prototype = Object.assign(Object.create(EventDispatcher.prototype), {\n constructor: Object3D,\n isObject3D: true,\n onBeforeRender: function onBeforeRender() {},\n onAfterRender: function onAfterRender() {},\n applyMatrix: function applyMatrix(matrix) {\n if (this.matrixAutoUpdate) this.updateMatrix();\n this.matrix.premultiply(matrix);\n this.matrix.decompose(this.position, this.quaternion, this.scale);\n },\n applyQuaternion: function applyQuaternion(q) {\n this.quaternion.premultiply(q);\n return this;\n },\n setRotationFromAxisAngle: function setRotationFromAxisAngle(axis, angle) {\n // assumes axis is normalized\n this.quaternion.setFromAxisAngle(axis, angle);\n },\n setRotationFromEuler: function setRotationFromEuler(euler) {\n this.quaternion.setFromEuler(euler, true);\n },\n setRotationFromMatrix: function setRotationFromMatrix(m) {\n // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n this.quaternion.setFromRotationMatrix(m);\n },\n setRotationFromQuaternion: function setRotationFromQuaternion(q) {\n // assumes q is normalized\n this.quaternion.copy(q);\n },\n rotateOnAxis: function rotateOnAxis(axis, angle) {\n // rotate object on axis in object space\n // axis is assumed to be normalized\n _q1.setFromAxisAngle(axis, angle);\n\n this.quaternion.multiply(_q1);\n return this;\n },\n rotateOnWorldAxis: function rotateOnWorldAxis(axis, angle) {\n // rotate object on axis in world space\n // axis is assumed to be normalized\n // method assumes no rotated parent\n _q1.setFromAxisAngle(axis, angle);\n\n this.quaternion.premultiply(_q1);\n return this;\n },\n rotateX: function rotateX(angle) {\n return this.rotateOnAxis(_xAxis, angle);\n },\n rotateY: function rotateY(angle) {\n return this.rotateOnAxis(_yAxis, angle);\n },\n rotateZ: function rotateZ(angle) {\n return this.rotateOnAxis(_zAxis, angle);\n },\n translateOnAxis: function translateOnAxis(axis, distance) {\n // translate object by distance along axis in object space\n // axis is assumed to be normalized\n _v1$1.copy(axis).applyQuaternion(this.quaternion);\n\n this.position.add(_v1$1.multiplyScalar(distance));\n return this;\n },\n translateX: function translateX(distance) {\n return this.translateOnAxis(_xAxis, distance);\n },\n translateY: function translateY(distance) {\n return this.translateOnAxis(_yAxis, distance);\n },\n translateZ: function translateZ(distance) {\n return this.translateOnAxis(_zAxis, distance);\n },\n localToWorld: function localToWorld(vector) {\n return vector.applyMatrix4(this.matrixWorld);\n },\n worldToLocal: function worldToLocal(vector) {\n return vector.applyMatrix4(_m1$1.getInverse(this.matrixWorld));\n },\n lookAt: function lookAt(x, y, z) {\n // This method does not support objects having non-uniformly-scaled parent(s)\n if (x.isVector3) {\n _target.copy(x);\n } else {\n _target.set(x, y, z);\n }\n\n var parent = this.parent;\n this.updateWorldMatrix(true, false);\n\n _position.setFromMatrixPosition(this.matrixWorld);\n\n if (this.isCamera || this.isLight) {\n _m1$1.lookAt(_position, _target, this.up);\n } else {\n _m1$1.lookAt(_target, _position, this.up);\n }\n\n this.quaternion.setFromRotationMatrix(_m1$1);\n\n if (parent) {\n _m1$1.extractRotation(parent.matrixWorld);\n\n _q1.setFromRotationMatrix(_m1$1);\n\n this.quaternion.premultiply(_q1.inverse());\n }\n },\n add: function add(object) {\n if (arguments.length > 1) {\n for (var i = 0; i < arguments.length; i++) {\n this.add(arguments[i]);\n }\n\n return this;\n }\n\n if (object === this) {\n console.error(\"THREE.Object3D.add: object can't be added as a child of itself.\", object);\n return this;\n }\n\n if (object && object.isObject3D) {\n if (object.parent !== null) {\n object.parent.remove(object);\n }\n\n object.parent = this;\n this.children.push(object);\n object.dispatchEvent(_addedEvent);\n } else {\n console.error(\"THREE.Object3D.add: object not an instance of THREE.Object3D.\", object);\n }\n\n return this;\n },\n remove: function remove(object) {\n if (arguments.length > 1) {\n for (var i = 0; i < arguments.length; i++) {\n this.remove(arguments[i]);\n }\n\n return this;\n }\n\n var index = this.children.indexOf(object);\n\n if (index !== -1) {\n object.parent = null;\n this.children.splice(index, 1);\n object.dispatchEvent(_removedEvent);\n }\n\n return this;\n },\n attach: function attach(object) {\n // adds object as a child of this, while maintaining the object's world transform\n this.updateWorldMatrix(true, false);\n\n _m1$1.getInverse(this.matrixWorld);\n\n if (object.parent !== null) {\n object.parent.updateWorldMatrix(true, false);\n\n _m1$1.multiply(object.parent.matrixWorld);\n }\n\n object.applyMatrix(_m1$1);\n object.updateWorldMatrix(false, false);\n this.add(object);\n return this;\n },\n getObjectById: function getObjectById(id) {\n return this.getObjectByProperty('id', id);\n },\n getObjectByName: function getObjectByName(name) {\n return this.getObjectByProperty('name', name);\n },\n getObjectByProperty: function getObjectByProperty(name, value) {\n if (this[name] === value) return this;\n\n for (var i = 0, l = this.children.length; i < l; i++) {\n var child = this.children[i];\n var object = child.getObjectByProperty(name, value);\n\n if (object !== undefined) {\n return object;\n }\n }\n\n return undefined;\n },\n getWorldPosition: function getWorldPosition(target) {\n if (target === undefined) {\n console.warn('THREE.Object3D: .getWorldPosition() target is now required');\n target = new Vector3();\n }\n\n this.updateMatrixWorld(true);\n return target.setFromMatrixPosition(this.matrixWorld);\n },\n getWorldQuaternion: function getWorldQuaternion(target) {\n if (target === undefined) {\n console.warn('THREE.Object3D: .getWorldQuaternion() target is now required');\n target = new Quaternion();\n }\n\n this.updateMatrixWorld(true);\n this.matrixWorld.decompose(_position, target, _scale);\n return target;\n },\n getWorldScale: function getWorldScale(target) {\n if (target === undefined) {\n console.warn('THREE.Object3D: .getWorldScale() target is now required');\n target = new Vector3();\n }\n\n this.updateMatrixWorld(true);\n this.matrixWorld.decompose(_position, _quaternion$2, target);\n return target;\n },\n getWorldDirection: function getWorldDirection(target) {\n if (target === undefined) {\n console.warn('THREE.Object3D: .getWorldDirection() target is now required');\n target = new Vector3();\n }\n\n this.updateMatrixWorld(true);\n var e = this.matrixWorld.elements;\n return target.set(e[8], e[9], e[10]).normalize();\n },\n raycast: function raycast() {},\n traverse: function traverse(callback) {\n callback(this);\n var children = this.children;\n\n for (var i = 0, l = children.length; i < l; i++) {\n children[i].traverse(callback);\n }\n },\n traverseVisible: function traverseVisible(callback) {\n if (this.visible === false) return;\n callback(this);\n var children = this.children;\n\n for (var i = 0, l = children.length; i < l; i++) {\n children[i].traverseVisible(callback);\n }\n },\n traverseAncestors: function traverseAncestors(callback) {\n var parent = this.parent;\n\n if (parent !== null) {\n callback(parent);\n parent.traverseAncestors(callback);\n }\n },\n updateMatrix: function updateMatrix() {\n this.matrix.compose(this.position, this.quaternion, this.scale);\n this.matrixWorldNeedsUpdate = true;\n },\n updateMatrixWorld: function updateMatrixWorld(force) {\n if (this.matrixAutoUpdate) this.updateMatrix();\n\n if (this.matrixWorldNeedsUpdate || force) {\n if (this.parent === null) {\n this.matrixWorld.copy(this.matrix);\n } else {\n this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix);\n }\n\n this.matrixWorldNeedsUpdate = false;\n force = true;\n } // update children\n\n\n var children = this.children;\n\n for (var i = 0, l = children.length; i < l; i++) {\n children[i].updateMatrixWorld(force);\n }\n },\n updateWorldMatrix: function updateWorldMatrix(updateParents, updateChildren) {\n var parent = this.parent;\n\n if (updateParents === true && parent !== null) {\n parent.updateWorldMatrix(true, false);\n }\n\n if (this.matrixAutoUpdate) this.updateMatrix();\n\n if (this.parent === null) {\n this.matrixWorld.copy(this.matrix);\n } else {\n this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix);\n } // update children\n\n\n if (updateChildren === true) {\n var children = this.children;\n\n for (var i = 0, l = children.length; i < l; i++) {\n children[i].updateWorldMatrix(false, true);\n }\n }\n },\n toJSON: function toJSON(meta) {\n // meta is a string when called from JSON.stringify\n var isRootObject = meta === undefined || typeof meta === 'string';\n var output = {}; // meta is a hash used to collect geometries, materials.\n // not providing it implies that this is the root object\n // being serialized.\n\n if (isRootObject) {\n // initialize meta obj\n meta = {\n geometries: {},\n materials: {},\n textures: {},\n images: {},\n shapes: {}\n };\n output.metadata = {\n version: 4.5,\n type: 'Object',\n generator: 'Object3D.toJSON'\n };\n } // standard Object3D serialization\n\n\n var object = {};\n object.uuid = this.uuid;\n object.type = this.type;\n if (this.name !== '') object.name = this.name;\n if (this.castShadow === true) object.castShadow = true;\n if (this.receiveShadow === true) object.receiveShadow = true;\n if (this.visible === false) object.visible = false;\n if (this.frustumCulled === false) object.frustumCulled = false;\n if (this.renderOrder !== 0) object.renderOrder = this.renderOrder;\n if (JSON.stringify(this.userData) !== '{}') object.userData = this.userData;\n object.layers = this.layers.mask;\n object.matrix = this.matrix.toArray();\n if (this.matrixAutoUpdate === false) object.matrixAutoUpdate = false; // object specific properties\n\n if (this.isMesh && this.drawMode !== TrianglesDrawMode) object.drawMode = this.drawMode;\n\n if (this.isInstancedMesh) {\n object.type = 'InstancedMesh';\n object.count = this.count;\n object.instanceMatrix = this.instanceMatrix.toJSON();\n } //\n\n\n function serialize(library, element) {\n if (library[element.uuid] === undefined) {\n library[element.uuid] = element.toJSON(meta);\n }\n\n return element.uuid;\n }\n\n if (this.isMesh || this.isLine || this.isPoints) {\n object.geometry = serialize(meta.geometries, this.geometry);\n var parameters = this.geometry.parameters;\n\n if (parameters !== undefined && parameters.shapes !== undefined) {\n var shapes = parameters.shapes;\n\n if (Array.isArray(shapes)) {\n for (var i = 0, l = shapes.length; i < l; i++) {\n var shape = shapes[i];\n serialize(meta.shapes, shape);\n }\n } else {\n serialize(meta.shapes, shapes);\n }\n }\n }\n\n if (this.material !== undefined) {\n if (Array.isArray(this.material)) {\n var uuids = [];\n\n for (var i = 0, l = this.material.length; i < l; i++) {\n uuids.push(serialize(meta.materials, this.material[i]));\n }\n\n object.material = uuids;\n } else {\n object.material = serialize(meta.materials, this.material);\n }\n } //\n\n\n if (this.children.length > 0) {\n object.children = [];\n\n for (var i = 0; i < this.children.length; i++) {\n object.children.push(this.children[i].toJSON(meta).object);\n }\n }\n\n if (isRootObject) {\n var geometries = extractFromCache(meta.geometries);\n var materials = extractFromCache(meta.materials);\n var textures = extractFromCache(meta.textures);\n var images = extractFromCache(meta.images);\n var shapes = extractFromCache(meta.shapes);\n if (geometries.length > 0) output.geometries = geometries;\n if (materials.length > 0) output.materials = materials;\n if (textures.length > 0) output.textures = textures;\n if (images.length > 0) output.images = images;\n if (shapes.length > 0) output.shapes = shapes;\n }\n\n output.object = object;\n return output; // extract data from the cache hash\n // remove metadata on each item\n // and return as array\n\n function extractFromCache(cache) {\n var values = [];\n\n for (var key in cache) {\n var data = cache[key];\n delete data.metadata;\n values.push(data);\n }\n\n return values;\n }\n },\n clone: function clone(recursive) {\n return new this.constructor().copy(this, recursive);\n },\n copy: function copy(source, recursive) {\n if (recursive === undefined) recursive = true;\n this.name = source.name;\n this.up.copy(source.up);\n this.position.copy(source.position);\n this.quaternion.copy(source.quaternion);\n this.scale.copy(source.scale);\n this.matrix.copy(source.matrix);\n this.matrixWorld.copy(source.matrixWorld);\n this.matrixAutoUpdate = source.matrixAutoUpdate;\n this.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate;\n this.layers.mask = source.layers.mask;\n this.visible = source.visible;\n this.castShadow = source.castShadow;\n this.receiveShadow = source.receiveShadow;\n this.frustumCulled = source.frustumCulled;\n this.renderOrder = source.renderOrder;\n this.userData = JSON.parse(JSON.stringify(source.userData));\n\n if (recursive === true) {\n for (var i = 0; i < source.children.length; i++) {\n var child = source.children[i];\n this.add(child.clone());\n }\n }\n\n return this;\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction Scene() {\n Object3D.call(this);\n this.type = 'Scene';\n this.background = null;\n this.fog = null;\n this.overrideMaterial = null;\n this.autoUpdate = true; // checked by the renderer\n\n if (typeof __THREE_DEVTOOLS__ !== 'undefined') {\n __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent('observe', {\n detail: this\n })); // eslint-disable-line no-undef\n\n }\n}\n\nScene.prototype = Object.assign(Object.create(Object3D.prototype), {\n constructor: Scene,\n isScene: true,\n copy: function copy(source, recursive) {\n Object3D.prototype.copy.call(this, source, recursive);\n if (source.background !== null) this.background = source.background.clone();\n if (source.fog !== null) this.fog = source.fog.clone();\n if (source.overrideMaterial !== null) this.overrideMaterial = source.overrideMaterial.clone();\n this.autoUpdate = source.autoUpdate;\n this.matrixAutoUpdate = source.matrixAutoUpdate;\n return this;\n },\n toJSON: function toJSON(meta) {\n var data = Object3D.prototype.toJSON.call(this, meta);\n if (this.background !== null) data.object.background = this.background.toJSON(meta);\n if (this.fog !== null) data.object.fog = this.fog.toJSON();\n return data;\n },\n dispose: function dispose() {\n this.dispatchEvent({\n type: 'dispose'\n });\n }\n});\nvar _points = [new Vector3(), new Vector3(), new Vector3(), new Vector3(), new Vector3(), new Vector3(), new Vector3(), new Vector3()];\n\nvar _vector$2 = new Vector3(); // triangle centered vertices\n\n\nvar _v0 = new Vector3();\n\nvar _v1$2 = new Vector3();\n\nvar _v2 = new Vector3(); // triangle edge vectors\n\n\nvar _f0 = new Vector3();\n\nvar _f1 = new Vector3();\n\nvar _f2 = new Vector3();\n\nvar _center = new Vector3();\n\nvar _extents = new Vector3();\n\nvar _triangleNormal = new Vector3();\n\nvar _testAxis = new Vector3();\n/**\n * @author bhouston / http://clara.io\n * @author WestLangley / http://github.com/WestLangley\n */\n\n\nfunction Box3(min, max) {\n this.min = min !== undefined ? min : new Vector3(+Infinity, +Infinity, +Infinity);\n this.max = max !== undefined ? max : new Vector3(-Infinity, -Infinity, -Infinity);\n}\n\nObject.assign(Box3.prototype, {\n isBox3: true,\n set: function set(min, max) {\n this.min.copy(min);\n this.max.copy(max);\n return this;\n },\n setFromArray: function setFromArray(array) {\n var minX = +Infinity;\n var minY = +Infinity;\n var minZ = +Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n var maxZ = -Infinity;\n\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) minX = x;\n if (y < minY) minY = y;\n if (z < minZ) minZ = z;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n if (z > maxZ) maxZ = z;\n }\n\n this.min.set(minX, minY, minZ);\n this.max.set(maxX, maxY, maxZ);\n return this;\n },\n setFromBufferAttribute: function setFromBufferAttribute(attribute) {\n var minX = +Infinity;\n var minY = +Infinity;\n var minZ = +Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n var maxZ = -Infinity;\n\n for (var i = 0, l = attribute.count; i < l; i++) {\n var x = attribute.getX(i);\n var y = attribute.getY(i);\n var z = attribute.getZ(i);\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (z < minZ) minZ = z;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n if (z > maxZ) maxZ = z;\n }\n\n this.min.set(minX, minY, minZ);\n this.max.set(maxX, maxY, maxZ);\n return this;\n },\n setFromPoints: function setFromPoints(points) {\n this.makeEmpty();\n\n for (var i = 0, il = points.length; i < il; i++) {\n this.expandByPoint(points[i]);\n }\n\n return this;\n },\n setFromCenterAndSize: function setFromCenterAndSize(center, size) {\n var halfSize = _vector$2.copy(size).multiplyScalar(0.5);\n\n this.min.copy(center).sub(halfSize);\n this.max.copy(center).add(halfSize);\n return this;\n },\n setFromObject: function setFromObject(object) {\n this.makeEmpty();\n return this.expandByObject(object);\n },\n clone: function clone() {\n return new this.constructor().copy(this);\n },\n copy: function copy(box) {\n this.min.copy(box.min);\n this.max.copy(box.max);\n return this;\n },\n makeEmpty: function makeEmpty() {\n this.min.x = this.min.y = this.min.z = +Infinity;\n this.max.x = this.max.y = this.max.z = -Infinity;\n return this;\n },\n isEmpty: function isEmpty() {\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 || this.max.y < this.min.y || this.max.z < this.min.z;\n },\n getCenter: function getCenter(target) {\n if (target === undefined) {\n console.warn('THREE.Box3: .getCenter() target is now required');\n target = new Vector3();\n }\n\n return this.isEmpty() ? target.set(0, 0, 0) : target.addVectors(this.min, this.max).multiplyScalar(0.5);\n },\n getSize: function getSize(target) {\n if (target === undefined) {\n console.warn('THREE.Box3: .getSize() target is now required');\n target = new Vector3();\n }\n\n return this.isEmpty() ? target.set(0, 0, 0) : target.subVectors(this.max, this.min);\n },\n expandByPoint: function expandByPoint(point) {\n this.min.min(point);\n this.max.max(point);\n return this;\n },\n expandByVector: function expandByVector(vector) {\n this.min.sub(vector);\n this.max.add(vector);\n return this;\n },\n expandByScalar: function expandByScalar(scalar) {\n this.min.addScalar(-scalar);\n this.max.addScalar(scalar);\n return this;\n },\n expandByObject: function expandByObject(object) {\n var i, l; // 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\n object.updateWorldMatrix(false, false);\n var geometry = object.geometry;\n\n if (geometry !== undefined) {\n if (geometry.isGeometry) {\n var vertices = geometry.vertices;\n\n for (i = 0, l = vertices.length; i < l; i++) {\n _vector$2.copy(vertices[i]);\n\n _vector$2.applyMatrix4(object.matrixWorld);\n\n this.expandByPoint(_vector$2);\n }\n } else if (geometry.isBufferGeometry) {\n var attribute = geometry.attributes.position;\n\n if (attribute !== undefined) {\n for (i = 0, l = attribute.count; i < l; i++) {\n _vector$2.fromBufferAttribute(attribute, i).applyMatrix4(object.matrixWorld);\n\n this.expandByPoint(_vector$2);\n }\n }\n }\n } //\n\n\n var children = object.children;\n\n for (i = 0, l = children.length; i < l; i++) {\n this.expandByObject(children[i]);\n }\n\n return this;\n },\n containsPoint: function containsPoint(point) {\n return point.x < this.min.x || point.x > this.max.x || point.y < this.min.y || point.y > this.max.y || point.z < this.min.z || point.z > this.max.z ? false : true;\n },\n containsBox: function containsBox(box) {\n return this.min.x <= box.min.x && box.max.x <= this.max.x && this.min.y <= box.min.y && box.max.y <= this.max.y && this.min.z <= box.min.z && box.max.z <= this.max.z;\n },\n getParameter: function getParameter(point, target) {\n // This can potentially have a divide by zero if the box\n // has a size dimension of 0.\n if (target === undefined) {\n console.warn('THREE.Box3: .getParameter() target is now required');\n target = new Vector3();\n }\n\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 intersectsBox: function intersectsBox(box) {\n // using 6 splitting planes to rule out intersections.\n return box.max.x < this.min.x || box.min.x > this.max.x || box.max.y < this.min.y || box.min.y > this.max.y || box.max.z < this.min.z || box.min.z > this.max.z ? false : true;\n },\n intersectsSphere: function intersectsSphere(sphere) {\n // Find the point on the AABB closest to the sphere center.\n this.clampPoint(sphere.center, _vector$2); // If that point is inside the sphere, the AABB and sphere intersect.\n\n return _vector$2.distanceToSquared(sphere.center) <= sphere.radius * sphere.radius;\n },\n intersectsPlane: function intersectsPlane(plane) {\n // We compute the minimum and maximum dot product values. If those values\n // are on the same side (back or front) of the plane, then there is no intersection.\n var min, max;\n\n if (plane.normal.x > 0) {\n min = plane.normal.x * this.min.x;\n max = plane.normal.x * this.max.x;\n } else {\n min = plane.normal.x * this.max.x;\n max = plane.normal.x * this.min.x;\n }\n\n if (plane.normal.y > 0) {\n min += plane.normal.y * this.min.y;\n max += plane.normal.y * this.max.y;\n } else {\n min += plane.normal.y * this.max.y;\n max += plane.normal.y * this.min.y;\n }\n\n if (plane.normal.z > 0) {\n min += plane.normal.z * this.min.z;\n max += plane.normal.z * this.max.z;\n } else {\n min += plane.normal.z * this.max.z;\n max += plane.normal.z * this.min.z;\n }\n\n return min <= -plane.constant && max >= -plane.constant;\n },\n intersectsTriangle: function intersectsTriangle(triangle) {\n if (this.isEmpty()) {\n return false;\n } // compute box center and extents\n\n\n this.getCenter(_center);\n\n _extents.subVectors(this.max, _center); // translate triangle to aabb origin\n\n\n _v0.subVectors(triangle.a, _center);\n\n _v1$2.subVectors(triangle.b, _center);\n\n _v2.subVectors(triangle.c, _center); // compute edge vectors for triangle\n\n\n _f0.subVectors(_v1$2, _v0);\n\n _f1.subVectors(_v2, _v1$2);\n\n _f2.subVectors(_v0, _v2); // test against axes that are given by cross product combinations of the edges of the triangle and the edges of the aabb\n // make an axis testing of each of the 3 sides of the aabb against each of the 3 sides of the triangle = 9 axis of separation\n // axis_ij = u_i x f_j (u0, u1, u2 = face normals of aabb = x,y,z axes vectors since aabb is axis aligned)\n\n\n var axes = [0, -_f0.z, _f0.y, 0, -_f1.z, _f1.y, 0, -_f2.z, _f2.y, _f0.z, 0, -_f0.x, _f1.z, 0, -_f1.x, _f2.z, 0, -_f2.x, -_f0.y, _f0.x, 0, -_f1.y, _f1.x, 0, -_f2.y, _f2.x, 0];\n\n if (!satForAxes(axes, _v0, _v1$2, _v2, _extents)) {\n return false;\n } // test 3 face normals from the aabb\n\n\n axes = [1, 0, 0, 0, 1, 0, 0, 0, 1];\n\n if (!satForAxes(axes, _v0, _v1$2, _v2, _extents)) {\n return false;\n } // finally testing the face normal of the triangle\n // use already existing triangle edge vectors here\n\n\n _triangleNormal.crossVectors(_f0, _f1);\n\n axes = [_triangleNormal.x, _triangleNormal.y, _triangleNormal.z];\n return satForAxes(axes, _v0, _v1$2, _v2, _extents);\n },\n clampPoint: function clampPoint(point, target) {\n if (target === undefined) {\n console.warn('THREE.Box3: .clampPoint() target is now required');\n target = new Vector3();\n }\n\n return target.copy(point).clamp(this.min, this.max);\n },\n distanceToPoint: function distanceToPoint(point) {\n var clampedPoint = _vector$2.copy(point).clamp(this.min, this.max);\n\n return clampedPoint.sub(point).length();\n },\n getBoundingSphere: function getBoundingSphere(target) {\n if (target === undefined) {\n console.error('THREE.Box3: .getBoundingSphere() target is now required'); //target = new Sphere(); // removed to avoid cyclic dependency\n }\n\n this.getCenter(target.center);\n target.radius = this.getSize(_vector$2).length() * 0.5;\n return target;\n },\n intersect: function intersect(box) {\n this.min.max(box.min);\n this.max.min(box.max); // 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\n if (this.isEmpty()) this.makeEmpty();\n return this;\n },\n union: function union(box) {\n this.min.min(box.min);\n this.max.max(box.max);\n return this;\n },\n applyMatrix4: function applyMatrix4(matrix) {\n // transform of empty box is an empty box.\n if (this.isEmpty()) return this; // NOTE: I am using a binary pattern to specify all 2^3 combinations below\n\n _points[0].set(this.min.x, this.min.y, this.min.z).applyMatrix4(matrix); // 000\n\n\n _points[1].set(this.min.x, this.min.y, this.max.z).applyMatrix4(matrix); // 001\n\n\n _points[2].set(this.min.x, this.max.y, this.min.z).applyMatrix4(matrix); // 010\n\n\n _points[3].set(this.min.x, this.max.y, this.max.z).applyMatrix4(matrix); // 011\n\n\n _points[4].set(this.max.x, this.min.y, this.min.z).applyMatrix4(matrix); // 100\n\n\n _points[5].set(this.max.x, this.min.y, this.max.z).applyMatrix4(matrix); // 101\n\n\n _points[6].set(this.max.x, this.max.y, this.min.z).applyMatrix4(matrix); // 110\n\n\n _points[7].set(this.max.x, this.max.y, this.max.z).applyMatrix4(matrix); // 111\n\n\n this.setFromPoints(_points);\n return this;\n },\n translate: function translate(offset) {\n this.min.add(offset);\n this.max.add(offset);\n return this;\n },\n equals: function equals(box) {\n return box.min.equals(this.min) && box.max.equals(this.max);\n }\n});\n\nfunction satForAxes(axes, v0, v1, v2, extents) {\n var i, j;\n\n for (i = 0, j = axes.length - 3; i <= j; i += 3) {\n _testAxis.fromArray(axes, i); // project the aabb onto the seperating axis\n\n\n var r = extents.x * Math.abs(_testAxis.x) + extents.y * Math.abs(_testAxis.y) + extents.z * Math.abs(_testAxis.z); // project all 3 vertices of the triangle onto the seperating axis\n\n var p0 = v0.dot(_testAxis);\n var p1 = v1.dot(_testAxis);\n var p2 = v2.dot(_testAxis); // actual test, basically see if either of the most extreme of the triangle points intersects r\n\n if (Math.max(-Math.max(p0, p1, p2), Math.min(p0, p1, p2)) > r) {\n // points of the projected triangle are outside the projected half-length of the aabb\n // the axis is seperating and we can exit\n return false;\n }\n }\n\n return true;\n}\n\nvar _box = new Box3();\n/**\n * @author bhouston / http://clara.io\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction Sphere(center, radius) {\n this.center = center !== undefined ? center : new Vector3();\n this.radius = radius !== undefined ? radius : 0;\n}\n\nObject.assign(Sphere.prototype, {\n set: function set(center, radius) {\n this.center.copy(center);\n this.radius = radius;\n return this;\n },\n setFromPoints: function setFromPoints(points, optionalCenter) {\n var center = this.center;\n\n if (optionalCenter !== undefined) {\n center.copy(optionalCenter);\n } else {\n _box.setFromPoints(points).getCenter(center);\n }\n\n var maxRadiusSq = 0;\n\n for (var i = 0, il = points.length; i < il; i++) {\n maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(points[i]));\n }\n\n this.radius = Math.sqrt(maxRadiusSq);\n return this;\n },\n clone: function clone() {\n return new this.constructor().copy(this);\n },\n copy: function copy(sphere) {\n this.center.copy(sphere.center);\n this.radius = sphere.radius;\n return this;\n },\n empty: function empty() {\n return this.radius <= 0;\n },\n containsPoint: function containsPoint(point) {\n return point.distanceToSquared(this.center) <= this.radius * this.radius;\n },\n distanceToPoint: function distanceToPoint(point) {\n return point.distanceTo(this.center) - this.radius;\n },\n intersectsSphere: function intersectsSphere(sphere) {\n var radiusSum = this.radius + sphere.radius;\n return sphere.center.distanceToSquared(this.center) <= radiusSum * radiusSum;\n },\n intersectsBox: function intersectsBox(box) {\n return box.intersectsSphere(this);\n },\n intersectsPlane: function intersectsPlane(plane) {\n return Math.abs(plane.distanceToPoint(this.center)) <= this.radius;\n },\n clampPoint: function clampPoint(point, target) {\n var deltaLengthSq = this.center.distanceToSquared(point);\n\n if (target === undefined) {\n console.warn('THREE.Sphere: .clampPoint() target is now required');\n target = new Vector3();\n }\n\n target.copy(point);\n\n if (deltaLengthSq > this.radius * this.radius) {\n target.sub(this.center).normalize();\n target.multiplyScalar(this.radius).add(this.center);\n }\n\n return target;\n },\n getBoundingBox: function getBoundingBox(target) {\n if (target === undefined) {\n console.warn('THREE.Sphere: .getBoundingBox() target is now required');\n target = new Box3();\n }\n\n target.set(this.center, this.center);\n target.expandByScalar(this.radius);\n return target;\n },\n applyMatrix4: function applyMatrix4(matrix) {\n this.center.applyMatrix4(matrix);\n this.radius = this.radius * matrix.getMaxScaleOnAxis();\n return this;\n },\n translate: function translate(offset) {\n this.center.add(offset);\n return this;\n },\n equals: function equals(sphere) {\n return sphere.center.equals(this.center) && sphere.radius === this.radius;\n }\n});\n\nvar _vector$3 = new Vector3();\n\nvar _segCenter = new Vector3();\n\nvar _segDir = new Vector3();\n\nvar _diff = new Vector3();\n\nvar _edge1 = new Vector3();\n\nvar _edge2 = new Vector3();\n\nvar _normal = new Vector3();\n/**\n * @author bhouston / http://clara.io\n */\n\n\nfunction Ray(origin, direction) {\n this.origin = origin !== undefined ? origin : new Vector3();\n this.direction = direction !== undefined ? direction : new Vector3();\n}\n\nObject.assign(Ray.prototype, {\n set: function set(origin, direction) {\n this.origin.copy(origin);\n this.direction.copy(direction);\n return this;\n },\n clone: function clone() {\n return new this.constructor().copy(this);\n },\n copy: function copy(ray) {\n this.origin.copy(ray.origin);\n this.direction.copy(ray.direction);\n return this;\n },\n at: function at(t, target) {\n if (target === undefined) {\n console.warn('THREE.Ray: .at() target is now required');\n target = new Vector3();\n }\n\n return target.copy(this.direction).multiplyScalar(t).add(this.origin);\n },\n lookAt: function lookAt(v) {\n this.direction.copy(v).sub(this.origin).normalize();\n return this;\n },\n recast: function recast(t) {\n this.origin.copy(this.at(t, _vector$3));\n return this;\n },\n closestPointToPoint: function closestPointToPoint(point, target) {\n if (target === undefined) {\n console.warn('THREE.Ray: .closestPointToPoint() target is now required');\n target = new Vector3();\n }\n\n target.subVectors(point, this.origin);\n var directionDistance = target.dot(this.direction);\n\n if (directionDistance < 0) {\n return target.copy(this.origin);\n }\n\n return target.copy(this.direction).multiplyScalar(directionDistance).add(this.origin);\n },\n distanceToPoint: function distanceToPoint(point) {\n return Math.sqrt(this.distanceSqToPoint(point));\n },\n distanceSqToPoint: function distanceSqToPoint(point) {\n var directionDistance = _vector$3.subVectors(point, this.origin).dot(this.direction); // point behind the ray\n\n\n if (directionDistance < 0) {\n return this.origin.distanceToSquared(point);\n }\n\n _vector$3.copy(this.direction).multiplyScalar(directionDistance).add(this.origin);\n\n return _vector$3.distanceToSquared(point);\n },\n distanceSqToSegment: function distanceSqToSegment(v0, v1, optionalPointOnRay, optionalPointOnSegment) {\n // from http://www.geometrictools.com/GTEngine/Include/Mathematics/GteDistRaySegment.h\n // It returns the min distance between the ray and the segment\n // defined by v0 and v1\n // It can also set two optional targets :\n // - The closest point on the ray\n // - The closest point on the segment\n _segCenter.copy(v0).add(v1).multiplyScalar(0.5);\n\n _segDir.copy(v1).sub(v0).normalize();\n\n _diff.copy(this.origin).sub(_segCenter);\n\n var segExtent = v0.distanceTo(v1) * 0.5;\n var a01 = -this.direction.dot(_segDir);\n\n var b0 = _diff.dot(this.direction);\n\n var b1 = -_diff.dot(_segDir);\n\n var c = _diff.lengthSq();\n\n var det = Math.abs(1 - a01 * a01);\n var s0, s1, sqrDist, extDet;\n\n if (det > 0) {\n // The ray and segment are not parallel.\n s0 = a01 * b1 - b0;\n s1 = a01 * b0 - b1;\n extDet = segExtent * det;\n\n if (s0 >= 0) {\n if (s1 >= -extDet) {\n if (s1 <= extDet) {\n // region 0\n // Minimum at interior points of ray and segment.\n var invDet = 1 / det;\n s0 *= invDet;\n s1 *= invDet;\n sqrDist = s0 * (s0 + a01 * s1 + 2 * b0) + s1 * (a01 * s0 + s1 + 2 * b1) + c;\n } else {\n // region 1\n s1 = segExtent;\n s0 = Math.max(0, -(a01 * s1 + b0));\n sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n }\n } else {\n // region 5\n s1 = -segExtent;\n s0 = Math.max(0, -(a01 * s1 + b0));\n sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n }\n } else {\n if (s1 <= -extDet) {\n // region 4\n s0 = Math.max(0, -(-a01 * segExtent + b0));\n s1 = s0 > 0 ? -segExtent : Math.min(Math.max(-segExtent, -b1), segExtent);\n sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n } else if (s1 <= extDet) {\n // region 3\n s0 = 0;\n s1 = Math.min(Math.max(-segExtent, -b1), segExtent);\n sqrDist = s1 * (s1 + 2 * b1) + c;\n } else {\n // region 2\n s0 = Math.max(0, -(a01 * segExtent + b0));\n s1 = s0 > 0 ? segExtent : Math.min(Math.max(-segExtent, -b1), segExtent);\n sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n }\n }\n } else {\n // Ray and segment are parallel.\n s1 = a01 > 0 ? -segExtent : segExtent;\n s0 = Math.max(0, -(a01 * s1 + b0));\n sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n }\n\n if (optionalPointOnRay) {\n optionalPointOnRay.copy(this.direction).multiplyScalar(s0).add(this.origin);\n }\n\n if (optionalPointOnSegment) {\n optionalPointOnSegment.copy(_segDir).multiplyScalar(s1).add(_segCenter);\n }\n\n return sqrDist;\n },\n intersectSphere: function intersectSphere(sphere, target) {\n _vector$3.subVectors(sphere.center, this.origin);\n\n var tca = _vector$3.dot(this.direction);\n\n var d2 = _vector$3.dot(_vector$3) - tca * tca;\n var radius2 = sphere.radius * sphere.radius;\n if (d2 > radius2) return null;\n var thc = Math.sqrt(radius2 - d2); // t0 = first intersect point - entrance on front of sphere\n\n var t0 = tca - thc; // t1 = second intersect point - exit point on back of sphere\n\n var t1 = tca + thc; // test to see if both t0 and t1 are behind the ray - if so, return null\n\n if (t0 < 0 && t1 < 0) return null; // 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\n if (t0 < 0) return this.at(t1, target); // else t0 is in front of the ray, so return the first collision point scaled by t0\n\n return this.at(t0, target);\n },\n intersectsSphere: function intersectsSphere(sphere) {\n return this.distanceSqToPoint(sphere.center) <= sphere.radius * sphere.radius;\n },\n distanceToPlane: function distanceToPlane(plane) {\n var denominator = plane.normal.dot(this.direction);\n\n if (denominator === 0) {\n // line is coplanar, return origin\n if (plane.distanceToPoint(this.origin) === 0) {\n return 0;\n } // Null is preferable to undefined since undefined means.... it is undefined\n\n\n return null;\n }\n\n var t = -(this.origin.dot(plane.normal) + plane.constant) / denominator; // Return if the ray never intersects the plane\n\n return t >= 0 ? t : null;\n },\n intersectPlane: function intersectPlane(plane, target) {\n var t = this.distanceToPlane(plane);\n\n if (t === null) {\n return null;\n }\n\n return this.at(t, target);\n },\n intersectsPlane: function intersectsPlane(plane) {\n // check if the ray lies on the plane first\n var distToPoint = plane.distanceToPoint(this.origin);\n\n if (distToPoint === 0) {\n return true;\n }\n\n var denominator = plane.normal.dot(this.direction);\n\n if (denominator * distToPoint < 0) {\n return true;\n } // ray origin is behind the plane (and is pointing behind it)\n\n\n return false;\n },\n intersectBox: function intersectBox(box, target) {\n var tmin, tmax, tymin, tymax, tzmin, tzmax;\n var invdirx = 1 / this.direction.x,\n invdiry = 1 / this.direction.y,\n invdirz = 1 / this.direction.z;\n var origin = this.origin;\n\n if (invdirx >= 0) {\n tmin = (box.min.x - origin.x) * invdirx;\n tmax = (box.max.x - origin.x) * invdirx;\n } else {\n tmin = (box.max.x - origin.x) * invdirx;\n tmax = (box.min.x - origin.x) * invdirx;\n }\n\n if (invdiry >= 0) {\n tymin = (box.min.y - origin.y) * invdiry;\n tymax = (box.max.y - origin.y) * invdiry;\n } else {\n tymin = (box.max.y - origin.y) * invdiry;\n tymax = (box.min.y - origin.y) * invdiry;\n }\n\n if (tmin > tymax || tymin > tmax) return null; // These lines also handle the case where tmin or tmax is NaN\n // (result of 0 * Infinity). x !== x returns true if x is NaN\n\n if (tymin > tmin || tmin !== tmin) tmin = tymin;\n if (tymax < tmax || tmax !== tmax) tmax = tymax;\n\n if (invdirz >= 0) {\n tzmin = (box.min.z - origin.z) * invdirz;\n tzmax = (box.max.z - origin.z) * invdirz;\n } else {\n tzmin = (box.max.z - origin.z) * invdirz;\n tzmax = (box.min.z - origin.z) * invdirz;\n }\n\n if (tmin > tzmax || tzmin > tmax) return null;\n if (tzmin > tmin || tmin !== tmin) tmin = tzmin;\n if (tzmax < tmax || tmax !== tmax) tmax = tzmax; //return point closest to the ray (positive side)\n\n if (tmax < 0) return null;\n return this.at(tmin >= 0 ? tmin : tmax, target);\n },\n intersectsBox: function intersectsBox(box) {\n return this.intersectBox(box, _vector$3) !== null;\n },\n intersectTriangle: function intersectTriangle(a, b, c, backfaceCulling, target) {\n // Compute the offset origin, edges, and normal.\n // from http://www.geometrictools.com/GTEngine/Include/Mathematics/GteIntrRay3Triangle3.h\n _edge1.subVectors(b, a);\n\n _edge2.subVectors(c, a);\n\n _normal.crossVectors(_edge1, _edge2); // 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\n\n var DdN = this.direction.dot(_normal);\n var sign;\n\n if (DdN > 0) {\n if (backfaceCulling) return null;\n sign = 1;\n } else if (DdN < 0) {\n sign = -1;\n DdN = -DdN;\n } else {\n return null;\n }\n\n _diff.subVectors(this.origin, a);\n\n var DdQxE2 = sign * this.direction.dot(_edge2.crossVectors(_diff, _edge2)); // b1 < 0, no intersection\n\n if (DdQxE2 < 0) {\n return null;\n }\n\n var DdE1xQ = sign * this.direction.dot(_edge1.cross(_diff)); // b2 < 0, no intersection\n\n if (DdE1xQ < 0) {\n return null;\n } // b1+b2 > 1, no intersection\n\n\n if (DdQxE2 + DdE1xQ > DdN) {\n return null;\n } // Line intersects triangle, check if ray does.\n\n\n var QdN = -sign * _diff.dot(_normal); // t < 0, no intersection\n\n\n if (QdN < 0) {\n return null;\n } // Ray intersects triangle.\n\n\n return this.at(QdN / DdN, target);\n },\n applyMatrix4: function applyMatrix4(matrix4) {\n this.origin.applyMatrix4(matrix4);\n this.direction.transformDirection(matrix4);\n return this;\n },\n equals: function equals(ray) {\n return ray.origin.equals(this.origin) && ray.direction.equals(this.direction);\n }\n});\n/**\n * @author bhouston / http://clara.io\n */\n\nvar _vector1 = new Vector3();\n\nvar _vector2 = new Vector3();\n\nvar _normalMatrix = new Matrix3();\n\nfunction Plane(normal, constant) {\n // normal is assumed to be normalized\n this.normal = normal !== undefined ? normal : new Vector3(1, 0, 0);\n this.constant = constant !== undefined ? constant : 0;\n}\n\nObject.assign(Plane.prototype, {\n isPlane: true,\n set: function set(normal, constant) {\n this.normal.copy(normal);\n this.constant = constant;\n return this;\n },\n setComponents: function setComponents(x, y, z, w) {\n this.normal.set(x, y, z);\n this.constant = w;\n return this;\n },\n setFromNormalAndCoplanarPoint: function setFromNormalAndCoplanarPoint(normal, point) {\n this.normal.copy(normal);\n this.constant = -point.dot(this.normal);\n return this;\n },\n setFromCoplanarPoints: function setFromCoplanarPoints(a, b, c) {\n var normal = _vector1.subVectors(c, b).cross(_vector2.subVectors(a, b)).normalize(); // Q: should an error be thrown if normal is zero (e.g. degenerate plane)?\n\n\n this.setFromNormalAndCoplanarPoint(normal, a);\n return this;\n },\n clone: function clone() {\n return new this.constructor().copy(this);\n },\n copy: function copy(plane) {\n this.normal.copy(plane.normal);\n this.constant = plane.constant;\n return this;\n },\n normalize: function normalize() {\n // Note: will lead to a divide by zero if the plane is invalid.\n var inverseNormalLength = 1.0 / this.normal.length();\n this.normal.multiplyScalar(inverseNormalLength);\n this.constant *= inverseNormalLength;\n return this;\n },\n negate: function negate() {\n this.constant *= -1;\n this.normal.negate();\n return this;\n },\n distanceToPoint: function distanceToPoint(point) {\n return this.normal.dot(point) + this.constant;\n },\n distanceToSphere: function distanceToSphere(sphere) {\n return this.distanceToPoint(sphere.center) - sphere.radius;\n },\n projectPoint: function projectPoint(point, target) {\n if (target === undefined) {\n console.warn('THREE.Plane: .projectPoint() target is now required');\n target = new Vector3();\n }\n\n return target.copy(this.normal).multiplyScalar(-this.distanceToPoint(point)).add(point);\n },\n intersectLine: function intersectLine(line, target) {\n if (target === undefined) {\n console.warn('THREE.Plane: .intersectLine() target is now required');\n target = new Vector3();\n }\n\n var direction = line.delta(_vector1);\n var denominator = this.normal.dot(direction);\n\n if (denominator === 0) {\n // line is coplanar, return origin\n if (this.distanceToPoint(line.start) === 0) {\n return target.copy(line.start);\n } // Unsure if this is the correct method to handle this case.\n\n\n return undefined;\n }\n\n var t = -(line.start.dot(this.normal) + this.constant) / denominator;\n\n if (t < 0 || t > 1) {\n return undefined;\n }\n\n return target.copy(direction).multiplyScalar(t).add(line.start);\n },\n intersectsLine: function intersectsLine(line) {\n // Note: this tests if a line intersects the plane, not whether it (or its end-points) are coplanar with it.\n var startSign = this.distanceToPoint(line.start);\n var endSign = this.distanceToPoint(line.end);\n return startSign < 0 && endSign > 0 || endSign < 0 && startSign > 0;\n },\n intersectsBox: function intersectsBox(box) {\n return box.intersectsPlane(this);\n },\n intersectsSphere: function intersectsSphere(sphere) {\n return sphere.intersectsPlane(this);\n },\n coplanarPoint: function coplanarPoint(target) {\n if (target === undefined) {\n console.warn('THREE.Plane: .coplanarPoint() target is now required');\n target = new Vector3();\n }\n\n return target.copy(this.normal).multiplyScalar(-this.constant);\n },\n applyMatrix4: function applyMatrix4(matrix, optionalNormalMatrix) {\n var normalMatrix = optionalNormalMatrix || _normalMatrix.getNormalMatrix(matrix);\n\n var referencePoint = this.coplanarPoint(_vector1).applyMatrix4(matrix);\n var normal = this.normal.applyMatrix3(normalMatrix).normalize();\n this.constant = -referencePoint.dot(normal);\n return this;\n },\n translate: function translate(offset) {\n this.constant -= offset.dot(this.normal);\n return this;\n },\n equals: function equals(plane) {\n return plane.normal.equals(this.normal) && plane.constant === this.constant;\n }\n});\n/**\n * @author bhouston / http://clara.io\n * @author mrdoob / http://mrdoob.com/\n */\n\nvar _v0$1 = new Vector3();\n\nvar _v1$3 = new Vector3();\n\nvar _v2$1 = new Vector3();\n\nvar _v3 = new Vector3();\n\nvar _vab = new Vector3();\n\nvar _vac = new Vector3();\n\nvar _vbc = new Vector3();\n\nvar _vap = new Vector3();\n\nvar _vbp = new Vector3();\n\nvar _vcp = new Vector3();\n\nfunction Triangle(a, b, c) {\n this.a = a !== undefined ? a : new Vector3();\n this.b = b !== undefined ? b : new Vector3();\n this.c = c !== undefined ? c : new Vector3();\n}\n\nObject.assign(Triangle, {\n getNormal: function getNormal(a, b, c, target) {\n if (target === undefined) {\n console.warn('THREE.Triangle: .getNormal() target is now required');\n target = new Vector3();\n }\n\n target.subVectors(c, b);\n\n _v0$1.subVectors(a, b);\n\n target.cross(_v0$1);\n var targetLengthSq = target.lengthSq();\n\n if (targetLengthSq > 0) {\n return target.multiplyScalar(1 / Math.sqrt(targetLengthSq));\n }\n\n return target.set(0, 0, 0);\n },\n // static/instance method to calculate barycentric coordinates\n // based on: http://www.blackpawn.com/texts/pointinpoly/default.html\n getBarycoord: function getBarycoord(point, a, b, c, target) {\n _v0$1.subVectors(c, a);\n\n _v1$3.subVectors(b, a);\n\n _v2$1.subVectors(point, a);\n\n var dot00 = _v0$1.dot(_v0$1);\n\n var dot01 = _v0$1.dot(_v1$3);\n\n var dot02 = _v0$1.dot(_v2$1);\n\n var dot11 = _v1$3.dot(_v1$3);\n\n var dot12 = _v1$3.dot(_v2$1);\n\n var denom = dot00 * dot11 - dot01 * dot01;\n\n if (target === undefined) {\n console.warn('THREE.Triangle: .getBarycoord() target is now required');\n target = new Vector3();\n } // collinear or singular triangle\n\n\n if (denom === 0) {\n // arbitrary location outside of triangle?\n // not sure if this is the best idea, maybe should be returning undefined\n return target.set(-2, -1, -1);\n }\n\n var invDenom = 1 / denom;\n var u = (dot11 * dot02 - dot01 * dot12) * invDenom;\n var v = (dot00 * dot12 - dot01 * dot02) * invDenom; // barycentric coordinates must always sum to 1\n\n return target.set(1 - u - v, v, u);\n },\n containsPoint: function containsPoint(point, a, b, c) {\n Triangle.getBarycoord(point, a, b, c, _v3);\n return _v3.x >= 0 && _v3.y >= 0 && _v3.x + _v3.y <= 1;\n },\n getUV: function getUV(point, p1, p2, p3, uv1, uv2, uv3, target) {\n this.getBarycoord(point, p1, p2, p3, _v3);\n target.set(0, 0);\n target.addScaledVector(uv1, _v3.x);\n target.addScaledVector(uv2, _v3.y);\n target.addScaledVector(uv3, _v3.z);\n return target;\n },\n isFrontFacing: function isFrontFacing(a, b, c, direction) {\n _v0$1.subVectors(c, b);\n\n _v1$3.subVectors(a, b); // strictly front facing\n\n\n return _v0$1.cross(_v1$3).dot(direction) < 0 ? true : false;\n }\n});\nObject.assign(Triangle.prototype, {\n set: function set(a, b, c) {\n this.a.copy(a);\n this.b.copy(b);\n this.c.copy(c);\n return this;\n },\n setFromPointsAndIndices: function setFromPointsAndIndices(points, i0, i1, i2) {\n this.a.copy(points[i0]);\n this.b.copy(points[i1]);\n this.c.copy(points[i2]);\n return this;\n },\n clone: function clone() {\n return new this.constructor().copy(this);\n },\n copy: function copy(triangle) {\n this.a.copy(triangle.a);\n this.b.copy(triangle.b);\n this.c.copy(triangle.c);\n return this;\n },\n getArea: function getArea() {\n _v0$1.subVectors(this.c, this.b);\n\n _v1$3.subVectors(this.a, this.b);\n\n return _v0$1.cross(_v1$3).length() * 0.5;\n },\n getMidpoint: function getMidpoint(target) {\n if (target === undefined) {\n console.warn('THREE.Triangle: .getMidpoint() target is now required');\n target = new Vector3();\n }\n\n return target.addVectors(this.a, this.b).add(this.c).multiplyScalar(1 / 3);\n },\n getNormal: function getNormal(target) {\n return Triangle.getNormal(this.a, this.b, this.c, target);\n },\n getPlane: function getPlane(target) {\n if (target === undefined) {\n console.warn('THREE.Triangle: .getPlane() target is now required');\n target = new Plane();\n }\n\n return target.setFromCoplanarPoints(this.a, this.b, this.c);\n },\n getBarycoord: function getBarycoord(point, target) {\n return Triangle.getBarycoord(point, this.a, this.b, this.c, target);\n },\n getUV: function getUV(point, uv1, uv2, uv3, target) {\n return Triangle.getUV(point, this.a, this.b, this.c, uv1, uv2, uv3, target);\n },\n containsPoint: function containsPoint(point) {\n return Triangle.containsPoint(point, this.a, this.b, this.c);\n },\n isFrontFacing: function isFrontFacing(direction) {\n return Triangle.isFrontFacing(this.a, this.b, this.c, direction);\n },\n intersectsBox: function intersectsBox(box) {\n return box.intersectsTriangle(this);\n },\n closestPointToPoint: function closestPointToPoint(p, target) {\n if (target === undefined) {\n console.warn('THREE.Triangle: .closestPointToPoint() target is now required');\n target = new Vector3();\n }\n\n var a = this.a,\n b = this.b,\n c = this.c;\n var v, w; // algorithm thanks to Real-Time Collision Detection by Christer Ericson,\n // published by Morgan Kaufmann Publishers, (c) 2005 Elsevier Inc.,\n // under the accompanying license; see chapter 5.1.5 for detailed explanation.\n // basically, we're distinguishing which of the voronoi regions of the triangle\n // the point lies in with the minimum amount of redundant computation.\n\n _vab.subVectors(b, a);\n\n _vac.subVectors(c, a);\n\n _vap.subVectors(p, a);\n\n var d1 = _vab.dot(_vap);\n\n var d2 = _vac.dot(_vap);\n\n if (d1 <= 0 && d2 <= 0) {\n // vertex region of A; barycentric coords (1, 0, 0)\n return target.copy(a);\n }\n\n _vbp.subVectors(p, b);\n\n var d3 = _vab.dot(_vbp);\n\n var d4 = _vac.dot(_vbp);\n\n if (d3 >= 0 && d4 <= d3) {\n // vertex region of B; barycentric coords (0, 1, 0)\n return target.copy(b);\n }\n\n var vc = d1 * d4 - d3 * d2;\n\n if (vc <= 0 && d1 >= 0 && d3 <= 0) {\n v = d1 / (d1 - d3); // edge region of AB; barycentric coords (1-v, v, 0)\n\n return target.copy(a).addScaledVector(_vab, v);\n }\n\n _vcp.subVectors(p, c);\n\n var d5 = _vab.dot(_vcp);\n\n var d6 = _vac.dot(_vcp);\n\n if (d6 >= 0 && d5 <= d6) {\n // vertex region of C; barycentric coords (0, 0, 1)\n return target.copy(c);\n }\n\n var vb = d5 * d2 - d1 * d6;\n\n if (vb <= 0 && d2 >= 0 && d6 <= 0) {\n w = d2 / (d2 - d6); // edge region of AC; barycentric coords (1-w, 0, w)\n\n return target.copy(a).addScaledVector(_vac, w);\n }\n\n var va = d3 * d6 - d5 * d4;\n\n if (va <= 0 && d4 - d3 >= 0 && d5 - d6 >= 0) {\n _vbc.subVectors(c, b);\n\n w = (d4 - d3) / (d4 - d3 + (d5 - d6)); // edge region of BC; barycentric coords (0, 1-w, w)\n\n return target.copy(b).addScaledVector(_vbc, w); // edge region of BC\n } // face region\n\n\n var denom = 1 / (va + vb + vc); // u = va * denom\n\n v = vb * denom;\n w = vc * denom;\n return target.copy(a).addScaledVector(_vab, v).addScaledVector(_vac, w);\n },\n equals: function equals(triangle) {\n return triangle.a.equals(this.a) && triangle.b.equals(this.b) && triangle.c.equals(this.c);\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nvar _colorKeywords = {\n 'aliceblue': 0xF0F8FF,\n 'antiquewhite': 0xFAEBD7,\n 'aqua': 0x00FFFF,\n 'aquamarine': 0x7FFFD4,\n 'azure': 0xF0FFFF,\n 'beige': 0xF5F5DC,\n 'bisque': 0xFFE4C4,\n 'black': 0x000000,\n 'blanchedalmond': 0xFFEBCD,\n 'blue': 0x0000FF,\n 'blueviolet': 0x8A2BE2,\n 'brown': 0xA52A2A,\n 'burlywood': 0xDEB887,\n 'cadetblue': 0x5F9EA0,\n 'chartreuse': 0x7FFF00,\n 'chocolate': 0xD2691E,\n 'coral': 0xFF7F50,\n 'cornflowerblue': 0x6495ED,\n 'cornsilk': 0xFFF8DC,\n 'crimson': 0xDC143C,\n 'cyan': 0x00FFFF,\n 'darkblue': 0x00008B,\n 'darkcyan': 0x008B8B,\n 'darkgoldenrod': 0xB8860B,\n 'darkgray': 0xA9A9A9,\n 'darkgreen': 0x006400,\n 'darkgrey': 0xA9A9A9,\n 'darkkhaki': 0xBDB76B,\n 'darkmagenta': 0x8B008B,\n 'darkolivegreen': 0x556B2F,\n 'darkorange': 0xFF8C00,\n 'darkorchid': 0x9932CC,\n 'darkred': 0x8B0000,\n 'darksalmon': 0xE9967A,\n 'darkseagreen': 0x8FBC8F,\n 'darkslateblue': 0x483D8B,\n 'darkslategray': 0x2F4F4F,\n 'darkslategrey': 0x2F4F4F,\n 'darkturquoise': 0x00CED1,\n 'darkviolet': 0x9400D3,\n 'deeppink': 0xFF1493,\n 'deepskyblue': 0x00BFFF,\n 'dimgray': 0x696969,\n 'dimgrey': 0x696969,\n 'dodgerblue': 0x1E90FF,\n 'firebrick': 0xB22222,\n 'floralwhite': 0xFFFAF0,\n 'forestgreen': 0x228B22,\n 'fuchsia': 0xFF00FF,\n 'gainsboro': 0xDCDCDC,\n 'ghostwhite': 0xF8F8FF,\n 'gold': 0xFFD700,\n 'goldenrod': 0xDAA520,\n 'gray': 0x808080,\n 'green': 0x008000,\n 'greenyellow': 0xADFF2F,\n 'grey': 0x808080,\n 'honeydew': 0xF0FFF0,\n 'hotpink': 0xFF69B4,\n 'indianred': 0xCD5C5C,\n 'indigo': 0x4B0082,\n 'ivory': 0xFFFFF0,\n 'khaki': 0xF0E68C,\n 'lavender': 0xE6E6FA,\n 'lavenderblush': 0xFFF0F5,\n 'lawngreen': 0x7CFC00,\n 'lemonchiffon': 0xFFFACD,\n 'lightblue': 0xADD8E6,\n 'lightcoral': 0xF08080,\n 'lightcyan': 0xE0FFFF,\n 'lightgoldenrodyellow': 0xFAFAD2,\n 'lightgray': 0xD3D3D3,\n 'lightgreen': 0x90EE90,\n 'lightgrey': 0xD3D3D3,\n 'lightpink': 0xFFB6C1,\n 'lightsalmon': 0xFFA07A,\n 'lightseagreen': 0x20B2AA,\n 'lightskyblue': 0x87CEFA,\n 'lightslategray': 0x778899,\n 'lightslategrey': 0x778899,\n 'lightsteelblue': 0xB0C4DE,\n 'lightyellow': 0xFFFFE0,\n 'lime': 0x00FF00,\n 'limegreen': 0x32CD32,\n 'linen': 0xFAF0E6,\n 'magenta': 0xFF00FF,\n 'maroon': 0x800000,\n 'mediumaquamarine': 0x66CDAA,\n 'mediumblue': 0x0000CD,\n 'mediumorchid': 0xBA55D3,\n 'mediumpurple': 0x9370DB,\n 'mediumseagreen': 0x3CB371,\n 'mediumslateblue': 0x7B68EE,\n 'mediumspringgreen': 0x00FA9A,\n 'mediumturquoise': 0x48D1CC,\n 'mediumvioletred': 0xC71585,\n 'midnightblue': 0x191970,\n 'mintcream': 0xF5FFFA,\n 'mistyrose': 0xFFE4E1,\n 'moccasin': 0xFFE4B5,\n 'navajowhite': 0xFFDEAD,\n 'navy': 0x000080,\n 'oldlace': 0xFDF5E6,\n 'olive': 0x808000,\n 'olivedrab': 0x6B8E23,\n 'orange': 0xFFA500,\n 'orangered': 0xFF4500,\n 'orchid': 0xDA70D6,\n 'palegoldenrod': 0xEEE8AA,\n 'palegreen': 0x98FB98,\n 'paleturquoise': 0xAFEEEE,\n 'palevioletred': 0xDB7093,\n 'papayawhip': 0xFFEFD5,\n 'peachpuff': 0xFFDAB9,\n 'peru': 0xCD853F,\n 'pink': 0xFFC0CB,\n 'plum': 0xDDA0DD,\n 'powderblue': 0xB0E0E6,\n 'purple': 0x800080,\n 'rebeccapurple': 0x663399,\n 'red': 0xFF0000,\n 'rosybrown': 0xBC8F8F,\n 'royalblue': 0x4169E1,\n 'saddlebrown': 0x8B4513,\n 'salmon': 0xFA8072,\n 'sandybrown': 0xF4A460,\n 'seagreen': 0x2E8B57,\n 'seashell': 0xFFF5EE,\n 'sienna': 0xA0522D,\n 'silver': 0xC0C0C0,\n 'skyblue': 0x87CEEB,\n 'slateblue': 0x6A5ACD,\n 'slategray': 0x708090,\n 'slategrey': 0x708090,\n 'snow': 0xFFFAFA,\n 'springgreen': 0x00FF7F,\n 'steelblue': 0x4682B4,\n 'tan': 0xD2B48C,\n 'teal': 0x008080,\n 'thistle': 0xD8BFD8,\n 'tomato': 0xFF6347,\n 'turquoise': 0x40E0D0,\n 'violet': 0xEE82EE,\n 'wheat': 0xF5DEB3,\n 'white': 0xFFFFFF,\n 'whitesmoke': 0xF5F5F5,\n 'yellow': 0xFFFF00,\n 'yellowgreen': 0x9ACD32\n};\nvar _hslA = {\n h: 0,\n s: 0,\n l: 0\n};\nvar _hslB = {\n h: 0,\n s: 0,\n l: 0\n};\n\nfunction Color(r, g, b) {\n if (g === undefined && b === undefined) {\n // r is THREE.Color, hex or string\n return this.set(r);\n }\n\n return this.setRGB(r, g, b);\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * 6 * (2 / 3 - t);\n return p;\n}\n\nfunction SRGBToLinear(c) {\n return c < 0.04045 ? c * 0.0773993808 : Math.pow(c * 0.9478672986 + 0.0521327014, 2.4);\n}\n\nfunction LinearToSRGB(c) {\n return c < 0.0031308 ? c * 12.92 : 1.055 * Math.pow(c, 0.41666) - 0.055;\n}\n\nObject.assign(Color.prototype, {\n isColor: true,\n r: 1,\n g: 1,\n b: 1,\n set: function set(value) {\n if (value && value.isColor) {\n this.copy(value);\n } else if (typeof value === 'number') {\n this.setHex(value);\n } else if (typeof value === 'string') {\n this.setStyle(value);\n }\n\n return this;\n },\n setScalar: function setScalar(scalar) {\n this.r = scalar;\n this.g = scalar;\n this.b = scalar;\n return this;\n },\n setHex: function setHex(hex) {\n hex = Math.floor(hex);\n this.r = (hex >> 16 & 255) / 255;\n this.g = (hex >> 8 & 255) / 255;\n this.b = (hex & 255) / 255;\n return this;\n },\n setRGB: function setRGB(r, g, b) {\n this.r = r;\n this.g = g;\n this.b = b;\n return this;\n },\n setHSL: function setHSL(h, s, l) {\n // h,s,l ranges are in 0.0 - 1.0\n h = _Math.euclideanModulo(h, 1);\n s = _Math.clamp(s, 0, 1);\n l = _Math.clamp(l, 0, 1);\n\n if (s === 0) {\n this.r = this.g = this.b = l;\n } else {\n var p = l <= 0.5 ? l * (1 + s) : l + s - l * s;\n var q = 2 * l - p;\n this.r = hue2rgb(q, p, h + 1 / 3);\n this.g = hue2rgb(q, p, h);\n this.b = hue2rgb(q, p, h - 1 / 3);\n }\n\n return this;\n },\n setStyle: function setStyle(style) {\n function handleAlpha(string) {\n if (string === undefined) return;\n\n if (parseFloat(string) < 1) {\n console.warn('THREE.Color: Alpha component of ' + style + ' will be ignored.');\n }\n }\n\n var m;\n\n if (m = /^((?:rgb|hsl)a?)\\(\\s*([^\\)]*)\\)/.exec(style)) {\n // rgb / hsl\n var color;\n var name = m[1];\n var components = m[2];\n\n switch (name) {\n case 'rgb':\n case 'rgba':\n if (color = /^(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(components)) {\n // rgb(255,0,0) rgba(255,0,0,0.5)\n this.r = Math.min(255, parseInt(color[1], 10)) / 255;\n this.g = Math.min(255, parseInt(color[2], 10)) / 255;\n this.b = Math.min(255, parseInt(color[3], 10)) / 255;\n handleAlpha(color[5]);\n return this;\n }\n\n if (color = /^(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(components)) {\n // rgb(100%,0%,0%) rgba(100%,0%,0%,0.5)\n this.r = Math.min(100, parseInt(color[1], 10)) / 100;\n this.g = Math.min(100, parseInt(color[2], 10)) / 100;\n this.b = Math.min(100, parseInt(color[3], 10)) / 100;\n handleAlpha(color[5]);\n return this;\n }\n\n break;\n\n case 'hsl':\n case 'hsla':\n if (color = /^([0-9]*\\.?[0-9]+)\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(components)) {\n // hsl(120,50%,50%) hsla(120,50%,50%,0.5)\n var h = parseFloat(color[1]) / 360;\n var s = parseInt(color[2], 10) / 100;\n var l = parseInt(color[3], 10) / 100;\n handleAlpha(color[5]);\n return this.setHSL(h, s, l);\n }\n\n break;\n }\n } else if (m = /^\\#([A-Fa-f0-9]+)$/.exec(style)) {\n // hex color\n var hex = m[1];\n var size = hex.length;\n\n if (size === 3) {\n // #ff0\n this.r = parseInt(hex.charAt(0) + hex.charAt(0), 16) / 255;\n this.g = parseInt(hex.charAt(1) + hex.charAt(1), 16) / 255;\n this.b = parseInt(hex.charAt(2) + hex.charAt(2), 16) / 255;\n return this;\n } else if (size === 6) {\n // #ff0000\n this.r = parseInt(hex.charAt(0) + hex.charAt(1), 16) / 255;\n this.g = parseInt(hex.charAt(2) + hex.charAt(3), 16) / 255;\n this.b = parseInt(hex.charAt(4) + hex.charAt(5), 16) / 255;\n return this;\n }\n }\n\n if (style && style.length > 0) {\n return this.setColorName(style);\n }\n\n return this;\n },\n setColorName: function setColorName(style) {\n // color keywords\n var hex = _colorKeywords[style];\n\n if (hex !== undefined) {\n // red\n this.setHex(hex);\n } else {\n // unknown color\n console.warn('THREE.Color: Unknown color ' + style);\n }\n\n return this;\n },\n clone: function clone() {\n return new this.constructor(this.r, this.g, this.b);\n },\n copy: function copy(color) {\n this.r = color.r;\n this.g = color.g;\n this.b = color.b;\n return this;\n },\n copyGammaToLinear: function copyGammaToLinear(color, gammaFactor) {\n if (gammaFactor === undefined) gammaFactor = 2.0;\n this.r = Math.pow(color.r, gammaFactor);\n this.g = Math.pow(color.g, gammaFactor);\n this.b = Math.pow(color.b, gammaFactor);\n return this;\n },\n copyLinearToGamma: function copyLinearToGamma(color, gammaFactor) {\n if (gammaFactor === undefined) gammaFactor = 2.0;\n var safeInverse = gammaFactor > 0 ? 1.0 / gammaFactor : 1.0;\n this.r = Math.pow(color.r, safeInverse);\n this.g = Math.pow(color.g, safeInverse);\n this.b = Math.pow(color.b, safeInverse);\n return this;\n },\n convertGammaToLinear: function convertGammaToLinear(gammaFactor) {\n this.copyGammaToLinear(this, gammaFactor);\n return this;\n },\n convertLinearToGamma: function convertLinearToGamma(gammaFactor) {\n this.copyLinearToGamma(this, gammaFactor);\n return this;\n },\n copySRGBToLinear: function copySRGBToLinear(color) {\n this.r = SRGBToLinear(color.r);\n this.g = SRGBToLinear(color.g);\n this.b = SRGBToLinear(color.b);\n return this;\n },\n copyLinearToSRGB: function copyLinearToSRGB(color) {\n this.r = LinearToSRGB(color.r);\n this.g = LinearToSRGB(color.g);\n this.b = LinearToSRGB(color.b);\n return this;\n },\n convertSRGBToLinear: function convertSRGBToLinear() {\n this.copySRGBToLinear(this);\n return this;\n },\n convertLinearToSRGB: function convertLinearToSRGB() {\n this.copyLinearToSRGB(this);\n return this;\n },\n getHex: function getHex() {\n return this.r * 255 << 16 ^ this.g * 255 << 8 ^ this.b * 255 << 0;\n },\n getHexString: function getHexString() {\n return ('000000' + this.getHex().toString(16)).slice(-6);\n },\n getHSL: function getHSL(target) {\n // h,s,l ranges are in 0.0 - 1.0\n if (target === undefined) {\n console.warn('THREE.Color: .getHSL() target is now required');\n target = {\n h: 0,\n s: 0,\n l: 0\n };\n }\n\n var r = this.r,\n g = this.g,\n b = this.b;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var hue, saturation;\n var lightness = (min + max) / 2.0;\n\n if (min === max) {\n hue = 0;\n saturation = 0;\n } else {\n var delta = max - min;\n saturation = lightness <= 0.5 ? delta / (max + min) : delta / (2 - max - min);\n\n switch (max) {\n case r:\n hue = (g - b) / delta + (g < b ? 6 : 0);\n break;\n\n case g:\n hue = (b - r) / delta + 2;\n break;\n\n case b:\n hue = (r - g) / delta + 4;\n break;\n }\n\n hue /= 6;\n }\n\n target.h = hue;\n target.s = saturation;\n target.l = lightness;\n return target;\n },\n getStyle: function getStyle() {\n return 'rgb(' + (this.r * 255 | 0) + ',' + (this.g * 255 | 0) + ',' + (this.b * 255 | 0) + ')';\n },\n offsetHSL: function offsetHSL(h, s, l) {\n this.getHSL(_hslA);\n _hslA.h += h;\n _hslA.s += s;\n _hslA.l += l;\n this.setHSL(_hslA.h, _hslA.s, _hslA.l);\n return this;\n },\n add: function add(color) {\n this.r += color.r;\n this.g += color.g;\n this.b += color.b;\n return this;\n },\n addColors: function addColors(color1, color2) {\n this.r = color1.r + color2.r;\n this.g = color1.g + color2.g;\n this.b = color1.b + color2.b;\n return this;\n },\n addScalar: function addScalar(s) {\n this.r += s;\n this.g += s;\n this.b += s;\n return this;\n },\n sub: function sub(color) {\n this.r = Math.max(0, this.r - color.r);\n this.g = Math.max(0, this.g - color.g);\n this.b = Math.max(0, this.b - color.b);\n return this;\n },\n multiply: function multiply(color) {\n this.r *= color.r;\n this.g *= color.g;\n this.b *= color.b;\n return this;\n },\n multiplyScalar: function multiplyScalar(s) {\n this.r *= s;\n this.g *= s;\n this.b *= s;\n return this;\n },\n lerp: function lerp(color, alpha) {\n this.r += (color.r - this.r) * alpha;\n this.g += (color.g - this.g) * alpha;\n this.b += (color.b - this.b) * alpha;\n return this;\n },\n lerpHSL: function lerpHSL(color, alpha) {\n this.getHSL(_hslA);\n color.getHSL(_hslB);\n\n var h = _Math.lerp(_hslA.h, _hslB.h, alpha);\n\n var s = _Math.lerp(_hslA.s, _hslB.s, alpha);\n\n var l = _Math.lerp(_hslA.l, _hslB.l, alpha);\n\n this.setHSL(h, s, l);\n return this;\n },\n equals: function equals(c) {\n return c.r === this.r && c.g === this.g && c.b === this.b;\n },\n fromArray: function fromArray(array, offset) {\n if (offset === undefined) offset = 0;\n this.r = array[offset];\n this.g = array[offset + 1];\n this.b = array[offset + 2];\n return this;\n },\n toArray: function toArray(array, offset) {\n if (array === undefined) array = [];\n if (offset === undefined) offset = 0;\n array[offset] = this.r;\n array[offset + 1] = this.g;\n array[offset + 2] = this.b;\n return array;\n },\n toJSON: function toJSON() {\n return this.getHex();\n }\n});\nColor.NAMES = _colorKeywords;\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author alteredq / http://alteredqualia.com/\n */\n\nfunction Face3(a, b, c, normal, color, materialIndex) {\n this.a = a;\n this.b = b;\n this.c = c;\n this.normal = normal && normal.isVector3 ? normal : new Vector3();\n this.vertexNormals = Array.isArray(normal) ? normal : [];\n this.color = color && color.isColor ? color : new Color();\n this.vertexColors = Array.isArray(color) ? color : [];\n this.materialIndex = materialIndex !== undefined ? materialIndex : 0;\n}\n\nObject.assign(Face3.prototype, {\n clone: function clone() {\n return new this.constructor().copy(this);\n },\n copy: function copy(source) {\n this.a = source.a;\n this.b = source.b;\n this.c = source.c;\n this.normal.copy(source.normal);\n this.color.copy(source.color);\n this.materialIndex = source.materialIndex;\n\n for (var i = 0, il = source.vertexNormals.length; i < il; i++) {\n this.vertexNormals[i] = source.vertexNormals[i].clone();\n }\n\n for (var i = 0, il = source.vertexColors.length; i < il; i++) {\n this.vertexColors[i] = source.vertexColors[i].clone();\n }\n\n return this;\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author alteredq / http://alteredqualia.com/\n */\n\nvar materialId = 0;\n\nfunction Material() {\n Object.defineProperty(this, 'id', {\n value: materialId++\n });\n this.uuid = _Math.generateUUID();\n this.name = '';\n this.type = 'Material';\n this.fog = true;\n this.blending = NormalBlending;\n this.side = FrontSide;\n this.flatShading = false;\n this.vertexTangents = false;\n this.vertexColors = NoColors; // THREE.NoColors, THREE.VertexColors, THREE.FaceColors\n\n this.opacity = 1;\n this.transparent = false;\n this.blendSrc = SrcAlphaFactor;\n this.blendDst = OneMinusSrcAlphaFactor;\n this.blendEquation = AddEquation;\n this.blendSrcAlpha = null;\n this.blendDstAlpha = null;\n this.blendEquationAlpha = null;\n this.depthFunc = LessEqualDepth;\n this.depthTest = true;\n this.depthWrite = true;\n this.stencilWriteMask = 0xff;\n this.stencilFunc = AlwaysStencilFunc;\n this.stencilRef = 0;\n this.stencilFuncMask = 0xff;\n this.stencilFail = KeepStencilOp;\n this.stencilZFail = KeepStencilOp;\n this.stencilZPass = KeepStencilOp;\n this.stencilWrite = false;\n this.clippingPlanes = null;\n this.clipIntersection = false;\n this.clipShadows = false;\n this.shadowSide = null;\n this.colorWrite = true;\n this.precision = null; // override the renderer's default precision for this material\n\n this.polygonOffset = false;\n this.polygonOffsetFactor = 0;\n this.polygonOffsetUnits = 0;\n this.dithering = false;\n this.alphaTest = 0;\n this.premultipliedAlpha = false;\n this.visible = true;\n this.toneMapped = true;\n this.userData = {};\n this.needsUpdate = true;\n}\n\nMaterial.prototype = Object.assign(Object.create(EventDispatcher.prototype), {\n constructor: Material,\n isMaterial: true,\n onBeforeCompile: function onBeforeCompile() {},\n setValues: function setValues(values) {\n if (values === undefined) return;\n\n for (var key in values) {\n var newValue = values[key];\n\n if (newValue === undefined) {\n console.warn(\"THREE.Material: '\" + key + \"' parameter is undefined.\");\n continue;\n } // for backward compatability if shading is set in the constructor\n\n\n if (key === 'shading') {\n console.warn('THREE.' + this.type + ': .shading has been removed. Use the boolean .flatShading instead.');\n this.flatShading = newValue === FlatShading ? true : false;\n continue;\n }\n\n var currentValue = this[key];\n\n if (currentValue === undefined) {\n console.warn(\"THREE.\" + this.type + \": '\" + key + \"' is not a property of this material.\");\n continue;\n }\n\n if (currentValue && currentValue.isColor) {\n currentValue.set(newValue);\n } else if (currentValue && currentValue.isVector3 && newValue && newValue.isVector3) {\n currentValue.copy(newValue);\n } else {\n this[key] = newValue;\n }\n }\n },\n toJSON: function toJSON(meta) {\n var isRoot = meta === undefined || typeof meta === 'string';\n\n if (isRoot) {\n meta = {\n textures: {},\n images: {}\n };\n }\n\n var data = {\n metadata: {\n version: 4.5,\n type: 'Material',\n generator: 'Material.toJSON'\n }\n }; // standard Material serialization\n\n data.uuid = this.uuid;\n data.type = this.type;\n if (this.name !== '') data.name = this.name;\n if (this.color && this.color.isColor) data.color = this.color.getHex();\n if (this.roughness !== undefined) data.roughness = this.roughness;\n if (this.metalness !== undefined) data.metalness = this.metalness;\n if (this.sheen && this.sheen.isColor) data.sheen = this.sheen.getHex();\n if (this.emissive && this.emissive.isColor) data.emissive = this.emissive.getHex();\n if (this.emissiveIntensity && this.emissiveIntensity !== 1) data.emissiveIntensity = this.emissiveIntensity;\n if (this.specular && this.specular.isColor) data.specular = this.specular.getHex();\n if (this.shininess !== undefined) data.shininess = this.shininess;\n if (this.clearcoat !== undefined) data.clearcoat = this.clearcoat;\n if (this.clearcoatRoughness !== undefined) data.clearcoatRoughness = this.clearcoatRoughness;\n\n if (this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture) {\n data.clearcoatNormalMap = this.clearcoatNormalMap.toJSON(meta).uuid;\n data.clearcoatNormalScale = this.clearcoatNormalScale.toArray();\n }\n\n if (this.map && this.map.isTexture) data.map = this.map.toJSON(meta).uuid;\n if (this.matcap && this.matcap.isTexture) data.matcap = this.matcap.toJSON(meta).uuid;\n if (this.alphaMap && this.alphaMap.isTexture) data.alphaMap = this.alphaMap.toJSON(meta).uuid;\n if (this.lightMap && this.lightMap.isTexture) data.lightMap = this.lightMap.toJSON(meta).uuid;\n\n if (this.aoMap && this.aoMap.isTexture) {\n data.aoMap = this.aoMap.toJSON(meta).uuid;\n data.aoMapIntensity = this.aoMapIntensity;\n }\n\n if (this.bumpMap && this.bumpMap.isTexture) {\n data.bumpMap = this.bumpMap.toJSON(meta).uuid;\n data.bumpScale = this.bumpScale;\n }\n\n if (this.normalMap && this.normalMap.isTexture) {\n data.normalMap = this.normalMap.toJSON(meta).uuid;\n data.normalMapType = this.normalMapType;\n data.normalScale = this.normalScale.toArray();\n }\n\n if (this.displacementMap && this.displacementMap.isTexture) {\n data.displacementMap = this.displacementMap.toJSON(meta).uuid;\n data.displacementScale = this.displacementScale;\n data.displacementBias = this.displacementBias;\n }\n\n if (this.roughnessMap && this.roughnessMap.isTexture) data.roughnessMap = this.roughnessMap.toJSON(meta).uuid;\n if (this.metalnessMap && this.metalnessMap.isTexture) data.metalnessMap = this.metalnessMap.toJSON(meta).uuid;\n if (this.emissiveMap && this.emissiveMap.isTexture) data.emissiveMap = this.emissiveMap.toJSON(meta).uuid;\n if (this.specularMap && this.specularMap.isTexture) data.specularMap = this.specularMap.toJSON(meta).uuid;\n\n if (this.envMap && this.envMap.isTexture) {\n data.envMap = this.envMap.toJSON(meta).uuid;\n data.reflectivity = this.reflectivity; // Scale behind envMap\n\n data.refractionRatio = this.refractionRatio;\n if (this.combine !== undefined) data.combine = this.combine;\n if (this.envMapIntensity !== undefined) data.envMapIntensity = this.envMapIntensity;\n }\n\n if (this.gradientMap && this.gradientMap.isTexture) {\n data.gradientMap = this.gradientMap.toJSON(meta).uuid;\n }\n\n if (this.size !== undefined) data.size = this.size;\n if (this.sizeAttenuation !== undefined) data.sizeAttenuation = this.sizeAttenuation;\n if (this.blending !== NormalBlending) data.blending = this.blending;\n if (this.flatShading === true) data.flatShading = this.flatShading;\n if (this.side !== FrontSide) data.side = this.side;\n if (this.vertexColors !== NoColors) data.vertexColors = this.vertexColors;\n if (this.opacity < 1) data.opacity = this.opacity;\n if (this.transparent === true) data.transparent = this.transparent;\n data.depthFunc = this.depthFunc;\n data.depthTest = this.depthTest;\n data.depthWrite = this.depthWrite;\n data.stencilWrite = this.stencilWrite;\n data.stencilWriteMask = this.stencilWriteMask;\n data.stencilFunc = this.stencilFunc;\n data.stencilRef = this.stencilRef;\n data.stencilFuncMask = this.stencilFuncMask;\n data.stencilFail = this.stencilFail;\n data.stencilZFail = this.stencilZFail;\n data.stencilZPass = this.stencilZPass; // rotation (SpriteMaterial)\n\n if (this.rotation && this.rotation !== 0) data.rotation = this.rotation;\n if (this.polygonOffset === true) data.polygonOffset = true;\n if (this.polygonOffsetFactor !== 0) data.polygonOffsetFactor = this.polygonOffsetFactor;\n if (this.polygonOffsetUnits !== 0) data.polygonOffsetUnits = this.polygonOffsetUnits;\n if (this.linewidth && this.linewidth !== 1) data.linewidth = this.linewidth;\n if (this.dashSize !== undefined) data.dashSize = this.dashSize;\n if (this.gapSize !== undefined) data.gapSize = this.gapSize;\n if (this.scale !== undefined) data.scale = this.scale;\n if (this.dithering === true) data.dithering = true;\n if (this.alphaTest > 0) data.alphaTest = this.alphaTest;\n if (this.premultipliedAlpha === true) data.premultipliedAlpha = this.premultipliedAlpha;\n if (this.wireframe === true) data.wireframe = this.wireframe;\n if (this.wireframeLinewidth > 1) data.wireframeLinewidth = this.wireframeLinewidth;\n if (this.wireframeLinecap !== 'round') data.wireframeLinecap = this.wireframeLinecap;\n if (this.wireframeLinejoin !== 'round') data.wireframeLinejoin = this.wireframeLinejoin;\n if (this.morphTargets === true) data.morphTargets = true;\n if (this.morphNormals === true) data.morphNormals = true;\n if (this.skinning === true) data.skinning = true;\n if (this.visible === false) data.visible = false;\n if (this.toneMapped === false) data.toneMapped = false;\n if (JSON.stringify(this.userData) !== '{}') data.userData = this.userData; // TODO: Copied from Object3D.toJSON\n\n function extractFromCache(cache) {\n var values = [];\n\n for (var key in cache) {\n var data = cache[key];\n delete data.metadata;\n values.push(data);\n }\n\n return values;\n }\n\n if (isRoot) {\n var textures = extractFromCache(meta.textures);\n var images = extractFromCache(meta.images);\n if (textures.length > 0) data.textures = textures;\n if (images.length > 0) data.images = images;\n }\n\n return data;\n },\n clone: function clone() {\n return new this.constructor().copy(this);\n },\n copy: function copy(source) {\n this.name = source.name;\n this.fog = source.fog;\n this.blending = source.blending;\n this.side = source.side;\n this.flatShading = source.flatShading;\n this.vertexTangents = source.vertexTangents;\n this.vertexColors = source.vertexColors;\n this.opacity = source.opacity;\n this.transparent = source.transparent;\n this.blendSrc = source.blendSrc;\n this.blendDst = source.blendDst;\n this.blendEquation = source.blendEquation;\n this.blendSrcAlpha = source.blendSrcAlpha;\n this.blendDstAlpha = source.blendDstAlpha;\n this.blendEquationAlpha = source.blendEquationAlpha;\n this.depthFunc = source.depthFunc;\n this.depthTest = source.depthTest;\n this.depthWrite = source.depthWrite;\n this.stencilWriteMask = source.stencilWriteMask;\n this.stencilFunc = source.stencilFunc;\n this.stencilRef = source.stencilRef;\n this.stencilFuncMask = source.stencilFuncMask;\n this.stencilFail = source.stencilFail;\n this.stencilZFail = source.stencilZFail;\n this.stencilZPass = source.stencilZPass;\n this.stencilWrite = source.stencilWrite;\n var srcPlanes = source.clippingPlanes,\n dstPlanes = null;\n\n if (srcPlanes !== null) {\n var n = srcPlanes.length;\n dstPlanes = new Array(n);\n\n for (var i = 0; i !== n; ++i) {\n dstPlanes[i] = srcPlanes[i].clone();\n }\n }\n\n this.clippingPlanes = dstPlanes;\n this.clipIntersection = source.clipIntersection;\n this.clipShadows = source.clipShadows;\n this.shadowSide = source.shadowSide;\n this.colorWrite = source.colorWrite;\n this.precision = source.precision;\n this.polygonOffset = source.polygonOffset;\n this.polygonOffsetFactor = source.polygonOffsetFactor;\n this.polygonOffsetUnits = source.polygonOffsetUnits;\n this.dithering = source.dithering;\n this.alphaTest = source.alphaTest;\n this.premultipliedAlpha = source.premultipliedAlpha;\n this.visible = source.visible;\n this.toneMapped = source.toneMapped;\n this.userData = JSON.parse(JSON.stringify(source.userData));\n return this;\n },\n dispose: function dispose() {\n this.dispatchEvent({\n type: 'dispose'\n });\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author alteredq / http://alteredqualia.com/\n *\n * parameters = {\n * color: ,\n * opacity: ,\n * map: new THREE.Texture( ),\n *\n * lightMap: new THREE.Texture( ),\n * lightMapIntensity: \n *\n * aoMap: new THREE.Texture( ),\n * aoMapIntensity: \n *\n * specularMap: new THREE.Texture( ),\n *\n * alphaMap: new THREE.Texture( ),\n *\n * envMap: new THREE.CubeTexture( [posx, negx, posy, negy, posz, negz] ),\n * combine: THREE.Multiply,\n * reflectivity: ,\n * refractionRatio: ,\n *\n * depthTest: ,\n * depthWrite: ,\n *\n * wireframe: ,\n * wireframeLinewidth: ,\n *\n * skinning: ,\n * morphTargets: \n * }\n */\n\nfunction MeshBasicMaterial(parameters) {\n Material.call(this);\n this.type = 'MeshBasicMaterial';\n this.color = new Color(0xffffff); // emissive\n\n this.map = null;\n this.lightMap = null;\n this.lightMapIntensity = 1.0;\n this.aoMap = null;\n this.aoMapIntensity = 1.0;\n this.specularMap = null;\n this.alphaMap = null;\n this.envMap = null;\n this.combine = MultiplyOperation;\n this.reflectivity = 1;\n this.refractionRatio = 0.98;\n this.wireframe = false;\n this.wireframeLinewidth = 1;\n this.wireframeLinecap = 'round';\n this.wireframeLinejoin = 'round';\n this.skinning = false;\n this.morphTargets = false;\n this.setValues(parameters);\n}\n\nMeshBasicMaterial.prototype = Object.create(Material.prototype);\nMeshBasicMaterial.prototype.constructor = MeshBasicMaterial;\nMeshBasicMaterial.prototype.isMeshBasicMaterial = true;\n\nMeshBasicMaterial.prototype.copy = function (source) {\n Material.prototype.copy.call(this, source);\n this.color.copy(source.color);\n this.map = source.map;\n this.lightMap = source.lightMap;\n this.lightMapIntensity = source.lightMapIntensity;\n this.aoMap = source.aoMap;\n this.aoMapIntensity = source.aoMapIntensity;\n this.specularMap = source.specularMap;\n this.alphaMap = source.alphaMap;\n this.envMap = source.envMap;\n this.combine = source.combine;\n this.reflectivity = source.reflectivity;\n this.refractionRatio = source.refractionRatio;\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n this.wireframeLinecap = source.wireframeLinecap;\n this.wireframeLinejoin = source.wireframeLinejoin;\n this.skinning = source.skinning;\n this.morphTargets = source.morphTargets;\n return this;\n};\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction BufferAttribute(array, itemSize, normalized) {\n if (Array.isArray(array)) {\n throw new TypeError('THREE.BufferAttribute: array should be a Typed Array.');\n }\n\n this.name = '';\n this.array = array;\n this.itemSize = itemSize;\n this.count = array !== undefined ? array.length / itemSize : 0;\n this.normalized = normalized === true;\n this.usage = StaticDrawUsage;\n this.updateRange = {\n offset: 0,\n count: -1\n };\n this.version = 0;\n}\n\nObject.defineProperty(BufferAttribute.prototype, 'needsUpdate', {\n set: function set(value) {\n if (value === true) this.version++;\n }\n});\nObject.assign(BufferAttribute.prototype, {\n isBufferAttribute: true,\n onUploadCallback: function onUploadCallback() {},\n setUsage: function setUsage(value) {\n this.usage = value;\n return this;\n },\n copy: function copy(source) {\n this.name = source.name;\n this.array = new source.array.constructor(source.array);\n this.itemSize = source.itemSize;\n this.count = source.count;\n this.normalized = source.normalized;\n this.usage = source.usage;\n return this;\n },\n copyAt: function copyAt(index1, attribute, index2) {\n index1 *= this.itemSize;\n index2 *= attribute.itemSize;\n\n for (var i = 0, l = this.itemSize; i < l; i++) {\n this.array[index1 + i] = attribute.array[index2 + i];\n }\n\n return this;\n },\n copyArray: function copyArray(array) {\n this.array.set(array);\n return this;\n },\n copyColorsArray: function copyColorsArray(colors) {\n var array = this.array,\n offset = 0;\n\n for (var i = 0, l = colors.length; i < l; i++) {\n var color = colors[i];\n\n if (color === undefined) {\n console.warn('THREE.BufferAttribute.copyColorsArray(): color is undefined', i);\n color = new Color();\n }\n\n array[offset++] = color.r;\n array[offset++] = color.g;\n array[offset++] = color.b;\n }\n\n return this;\n },\n copyVector2sArray: function copyVector2sArray(vectors) {\n var array = this.array,\n offset = 0;\n\n for (var i = 0, l = vectors.length; i < l; i++) {\n var vector = vectors[i];\n\n if (vector === undefined) {\n console.warn('THREE.BufferAttribute.copyVector2sArray(): vector is undefined', i);\n vector = new Vector2();\n }\n\n array[offset++] = vector.x;\n array[offset++] = vector.y;\n }\n\n return this;\n },\n copyVector3sArray: function copyVector3sArray(vectors) {\n var array = this.array,\n offset = 0;\n\n for (var i = 0, l = vectors.length; i < l; i++) {\n var vector = vectors[i];\n\n if (vector === undefined) {\n console.warn('THREE.BufferAttribute.copyVector3sArray(): vector is undefined', i);\n vector = new Vector3();\n }\n\n array[offset++] = vector.x;\n array[offset++] = vector.y;\n array[offset++] = vector.z;\n }\n\n return this;\n },\n copyVector4sArray: function copyVector4sArray(vectors) {\n var array = this.array,\n offset = 0;\n\n for (var i = 0, l = vectors.length; i < l; i++) {\n var vector = vectors[i];\n\n if (vector === undefined) {\n console.warn('THREE.BufferAttribute.copyVector4sArray(): vector is undefined', i);\n vector = new Vector4();\n }\n\n array[offset++] = vector.x;\n array[offset++] = vector.y;\n array[offset++] = vector.z;\n array[offset++] = vector.w;\n }\n\n return this;\n },\n set: function set(value, offset) {\n if (offset === undefined) offset = 0;\n this.array.set(value, offset);\n return this;\n },\n getX: function getX(index) {\n return this.array[index * this.itemSize];\n },\n setX: function setX(index, x) {\n this.array[index * this.itemSize] = x;\n return this;\n },\n getY: function getY(index) {\n return this.array[index * this.itemSize + 1];\n },\n setY: function setY(index, y) {\n this.array[index * this.itemSize + 1] = y;\n return this;\n },\n getZ: function getZ(index) {\n return this.array[index * this.itemSize + 2];\n },\n setZ: function setZ(index, z) {\n this.array[index * this.itemSize + 2] = z;\n return this;\n },\n getW: function getW(index) {\n return this.array[index * this.itemSize + 3];\n },\n setW: function setW(index, w) {\n this.array[index * this.itemSize + 3] = w;\n return this;\n },\n setXY: function setXY(index, x, y) {\n index *= this.itemSize;\n this.array[index + 0] = x;\n this.array[index + 1] = y;\n return this;\n },\n setXYZ: function setXYZ(index, x, y, z) {\n index *= this.itemSize;\n this.array[index + 0] = x;\n this.array[index + 1] = y;\n this.array[index + 2] = z;\n return this;\n },\n setXYZW: function setXYZW(index, x, y, z, w) {\n index *= this.itemSize;\n this.array[index + 0] = x;\n this.array[index + 1] = y;\n this.array[index + 2] = z;\n this.array[index + 3] = w;\n return this;\n },\n onUpload: function onUpload(callback) {\n this.onUploadCallback = callback;\n return this;\n },\n clone: function clone() {\n return new this.constructor(this.array, this.itemSize).copy(this);\n },\n toJSON: function toJSON() {\n return {\n itemSize: this.itemSize,\n type: this.array.constructor.name,\n array: Array.prototype.slice.call(this.array),\n normalized: this.normalized\n };\n }\n}); //\n\nfunction Int8BufferAttribute(array, itemSize, normalized) {\n BufferAttribute.call(this, new Int8Array(array), itemSize, normalized);\n}\n\nInt8BufferAttribute.prototype = Object.create(BufferAttribute.prototype);\nInt8BufferAttribute.prototype.constructor = Int8BufferAttribute;\n\nfunction Uint8BufferAttribute(array, itemSize, normalized) {\n BufferAttribute.call(this, new Uint8Array(array), itemSize, normalized);\n}\n\nUint8BufferAttribute.prototype = Object.create(BufferAttribute.prototype);\nUint8BufferAttribute.prototype.constructor = Uint8BufferAttribute;\n\nfunction Uint8ClampedBufferAttribute(array, itemSize, normalized) {\n BufferAttribute.call(this, new Uint8ClampedArray(array), itemSize, normalized);\n}\n\nUint8ClampedBufferAttribute.prototype = Object.create(BufferAttribute.prototype);\nUint8ClampedBufferAttribute.prototype.constructor = Uint8ClampedBufferAttribute;\n\nfunction Int16BufferAttribute(array, itemSize, normalized) {\n BufferAttribute.call(this, new Int16Array(array), itemSize, normalized);\n}\n\nInt16BufferAttribute.prototype = Object.create(BufferAttribute.prototype);\nInt16BufferAttribute.prototype.constructor = Int16BufferAttribute;\n\nfunction Uint16BufferAttribute(array, itemSize, normalized) {\n BufferAttribute.call(this, new Uint16Array(array), itemSize, normalized);\n}\n\nUint16BufferAttribute.prototype = Object.create(BufferAttribute.prototype);\nUint16BufferAttribute.prototype.constructor = Uint16BufferAttribute;\n\nfunction Int32BufferAttribute(array, itemSize, normalized) {\n BufferAttribute.call(this, new Int32Array(array), itemSize, normalized);\n}\n\nInt32BufferAttribute.prototype = Object.create(BufferAttribute.prototype);\nInt32BufferAttribute.prototype.constructor = Int32BufferAttribute;\n\nfunction Uint32BufferAttribute(array, itemSize, normalized) {\n BufferAttribute.call(this, new Uint32Array(array), itemSize, normalized);\n}\n\nUint32BufferAttribute.prototype = Object.create(BufferAttribute.prototype);\nUint32BufferAttribute.prototype.constructor = Uint32BufferAttribute;\n\nfunction Float32BufferAttribute(array, itemSize, normalized) {\n BufferAttribute.call(this, new Float32Array(array), itemSize, normalized);\n}\n\nFloat32BufferAttribute.prototype = Object.create(BufferAttribute.prototype);\nFloat32BufferAttribute.prototype.constructor = Float32BufferAttribute;\n\nfunction Float64BufferAttribute(array, itemSize, normalized) {\n BufferAttribute.call(this, new Float64Array(array), itemSize, normalized);\n}\n\nFloat64BufferAttribute.prototype = Object.create(BufferAttribute.prototype);\nFloat64BufferAttribute.prototype.constructor = Float64BufferAttribute;\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction DirectGeometry() {\n this.vertices = [];\n this.normals = [];\n this.colors = [];\n this.uvs = [];\n this.uvs2 = [];\n this.groups = [];\n this.morphTargets = {};\n this.skinWeights = [];\n this.skinIndices = []; // this.lineDistances = [];\n\n this.boundingBox = null;\n this.boundingSphere = null; // update flags\n\n this.verticesNeedUpdate = false;\n this.normalsNeedUpdate = false;\n this.colorsNeedUpdate = false;\n this.uvsNeedUpdate = false;\n this.groupsNeedUpdate = false;\n}\n\nObject.assign(DirectGeometry.prototype, {\n computeGroups: function computeGroups(geometry) {\n var group;\n var groups = [];\n var materialIndex = undefined;\n var faces = geometry.faces;\n\n for (var i = 0; i < faces.length; i++) {\n var face = faces[i]; // materials\n\n if (face.materialIndex !== materialIndex) {\n materialIndex = face.materialIndex;\n\n if (group !== undefined) {\n group.count = i * 3 - group.start;\n groups.push(group);\n }\n\n group = {\n start: i * 3,\n materialIndex: materialIndex\n };\n }\n }\n\n if (group !== undefined) {\n group.count = i * 3 - group.start;\n groups.push(group);\n }\n\n this.groups = groups;\n },\n fromGeometry: function fromGeometry(geometry) {\n var faces = geometry.faces;\n var vertices = geometry.vertices;\n var faceVertexUvs = geometry.faceVertexUvs;\n var hasFaceVertexUv = faceVertexUvs[0] && faceVertexUvs[0].length > 0;\n var hasFaceVertexUv2 = faceVertexUvs[1] && faceVertexUvs[1].length > 0; // morphs\n\n var morphTargets = geometry.morphTargets;\n var morphTargetsLength = morphTargets.length;\n var morphTargetsPosition;\n\n if (morphTargetsLength > 0) {\n morphTargetsPosition = [];\n\n for (var i = 0; i < morphTargetsLength; i++) {\n morphTargetsPosition[i] = {\n name: morphTargets[i].name,\n data: []\n };\n }\n\n this.morphTargets.position = morphTargetsPosition;\n }\n\n var morphNormals = geometry.morphNormals;\n var morphNormalsLength = morphNormals.length;\n var morphTargetsNormal;\n\n if (morphNormalsLength > 0) {\n morphTargetsNormal = [];\n\n for (var i = 0; i < morphNormalsLength; i++) {\n morphTargetsNormal[i] = {\n name: morphNormals[i].name,\n data: []\n };\n }\n\n this.morphTargets.normal = morphTargetsNormal;\n } // skins\n\n\n var skinIndices = geometry.skinIndices;\n var skinWeights = geometry.skinWeights;\n var hasSkinIndices = skinIndices.length === vertices.length;\n var hasSkinWeights = skinWeights.length === vertices.length; //\n\n if (vertices.length > 0 && faces.length === 0) {\n console.error('THREE.DirectGeometry: Faceless geometries are not supported.');\n }\n\n for (var i = 0; i < faces.length; i++) {\n var face = faces[i];\n this.vertices.push(vertices[face.a], vertices[face.b], vertices[face.c]);\n var vertexNormals = face.vertexNormals;\n\n if (vertexNormals.length === 3) {\n this.normals.push(vertexNormals[0], vertexNormals[1], vertexNormals[2]);\n } else {\n var normal = face.normal;\n this.normals.push(normal, normal, normal);\n }\n\n var vertexColors = face.vertexColors;\n\n if (vertexColors.length === 3) {\n this.colors.push(vertexColors[0], vertexColors[1], vertexColors[2]);\n } else {\n var color = face.color;\n this.colors.push(color, color, color);\n }\n\n if (hasFaceVertexUv === true) {\n var vertexUvs = faceVertexUvs[0][i];\n\n if (vertexUvs !== undefined) {\n this.uvs.push(vertexUvs[0], vertexUvs[1], vertexUvs[2]);\n } else {\n console.warn('THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ', i);\n this.uvs.push(new Vector2(), new Vector2(), new Vector2());\n }\n }\n\n if (hasFaceVertexUv2 === true) {\n var vertexUvs = faceVertexUvs[1][i];\n\n if (vertexUvs !== undefined) {\n this.uvs2.push(vertexUvs[0], vertexUvs[1], vertexUvs[2]);\n } else {\n console.warn('THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ', i);\n this.uvs2.push(new Vector2(), new Vector2(), new Vector2());\n }\n } // morphs\n\n\n for (var j = 0; j < morphTargetsLength; j++) {\n var morphTarget = morphTargets[j].vertices;\n morphTargetsPosition[j].data.push(morphTarget[face.a], morphTarget[face.b], morphTarget[face.c]);\n }\n\n for (var j = 0; j < morphNormalsLength; j++) {\n var morphNormal = morphNormals[j].vertexNormals[i];\n morphTargetsNormal[j].data.push(morphNormal.a, morphNormal.b, morphNormal.c);\n } // skins\n\n\n if (hasSkinIndices) {\n this.skinIndices.push(skinIndices[face.a], skinIndices[face.b], skinIndices[face.c]);\n }\n\n if (hasSkinWeights) {\n this.skinWeights.push(skinWeights[face.a], skinWeights[face.b], skinWeights[face.c]);\n }\n }\n\n this.computeGroups(geometry);\n this.verticesNeedUpdate = geometry.verticesNeedUpdate;\n this.normalsNeedUpdate = geometry.normalsNeedUpdate;\n this.colorsNeedUpdate = geometry.colorsNeedUpdate;\n this.uvsNeedUpdate = geometry.uvsNeedUpdate;\n this.groupsNeedUpdate = geometry.groupsNeedUpdate;\n\n if (geometry.boundingSphere !== null) {\n this.boundingSphere = geometry.boundingSphere.clone();\n }\n\n if (geometry.boundingBox !== null) {\n this.boundingBox = geometry.boundingBox.clone();\n }\n\n return this;\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction arrayMax(array) {\n if (array.length === 0) return -Infinity;\n var max = array[0];\n\n for (var i = 1, l = array.length; i < l; ++i) {\n if (array[i] > max) max = array[i];\n }\n\n return max;\n}\n/**\n * @author alteredq / http://alteredqualia.com/\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nvar _bufferGeometryId = 1; // BufferGeometry uses odd numbers as Id\n\nvar _m1$2 = new Matrix4();\n\nvar _obj = new Object3D();\n\nvar _offset = new Vector3();\n\nvar _box$1 = new Box3();\n\nvar _boxMorphTargets = new Box3();\n\nvar _vector$4 = new Vector3();\n\nfunction BufferGeometry() {\n Object.defineProperty(this, 'id', {\n value: _bufferGeometryId += 2\n });\n this.uuid = _Math.generateUUID();\n this.name = '';\n this.type = 'BufferGeometry';\n this.index = null;\n this.attributes = {};\n this.morphAttributes = {};\n this.groups = [];\n this.boundingBox = null;\n this.boundingSphere = null;\n this.drawRange = {\n start: 0,\n count: Infinity\n };\n this.userData = {};\n}\n\nBufferGeometry.prototype = Object.assign(Object.create(EventDispatcher.prototype), {\n constructor: BufferGeometry,\n isBufferGeometry: true,\n getIndex: function getIndex() {\n return this.index;\n },\n setIndex: function setIndex(index) {\n if (Array.isArray(index)) {\n this.index = new (arrayMax(index) > 65535 ? Uint32BufferAttribute : Uint16BufferAttribute)(index, 1);\n } else {\n this.index = index;\n }\n },\n getAttribute: function getAttribute(name) {\n return this.attributes[name];\n },\n setAttribute: function setAttribute(name, attribute) {\n this.attributes[name] = attribute;\n return this;\n },\n deleteAttribute: function deleteAttribute(name) {\n delete this.attributes[name];\n return this;\n },\n addGroup: function addGroup(start, count, materialIndex) {\n this.groups.push({\n start: start,\n count: count,\n materialIndex: materialIndex !== undefined ? materialIndex : 0\n });\n },\n clearGroups: function clearGroups() {\n this.groups = [];\n },\n setDrawRange: function setDrawRange(start, count) {\n this.drawRange.start = start;\n this.drawRange.count = count;\n },\n applyMatrix: function applyMatrix(matrix) {\n var position = this.attributes.position;\n\n if (position !== undefined) {\n matrix.applyToBufferAttribute(position);\n position.needsUpdate = true;\n }\n\n var normal = this.attributes.normal;\n\n if (normal !== undefined) {\n var normalMatrix = new Matrix3().getNormalMatrix(matrix);\n normalMatrix.applyToBufferAttribute(normal);\n normal.needsUpdate = true;\n }\n\n var tangent = this.attributes.tangent;\n\n if (tangent !== undefined) {\n var normalMatrix = new Matrix3().getNormalMatrix(matrix); // Tangent is vec4, but the '.w' component is a sign value (+1/-1).\n\n normalMatrix.applyToBufferAttribute(tangent);\n tangent.needsUpdate = true;\n }\n\n if (this.boundingBox !== null) {\n this.computeBoundingBox();\n }\n\n if (this.boundingSphere !== null) {\n this.computeBoundingSphere();\n }\n\n return this;\n },\n rotateX: function rotateX(angle) {\n // rotate geometry around world x-axis\n _m1$2.makeRotationX(angle);\n\n this.applyMatrix(_m1$2);\n return this;\n },\n rotateY: function rotateY(angle) {\n // rotate geometry around world y-axis\n _m1$2.makeRotationY(angle);\n\n this.applyMatrix(_m1$2);\n return this;\n },\n rotateZ: function rotateZ(angle) {\n // rotate geometry around world z-axis\n _m1$2.makeRotationZ(angle);\n\n this.applyMatrix(_m1$2);\n return this;\n },\n translate: function translate(x, y, z) {\n // translate geometry\n _m1$2.makeTranslation(x, y, z);\n\n this.applyMatrix(_m1$2);\n return this;\n },\n scale: function scale(x, y, z) {\n // scale geometry\n _m1$2.makeScale(x, y, z);\n\n this.applyMatrix(_m1$2);\n return this;\n },\n lookAt: function lookAt(vector) {\n _obj.lookAt(vector);\n\n _obj.updateMatrix();\n\n this.applyMatrix(_obj.matrix);\n return this;\n },\n center: function center() {\n this.computeBoundingBox();\n this.boundingBox.getCenter(_offset).negate();\n this.translate(_offset.x, _offset.y, _offset.z);\n return this;\n },\n setFromObject: function setFromObject(object) {\n // console.log( 'THREE.BufferGeometry.setFromObject(). Converting', object, this );\n var geometry = object.geometry;\n\n if (object.isPoints || object.isLine) {\n var positions = new Float32BufferAttribute(geometry.vertices.length * 3, 3);\n var colors = new Float32BufferAttribute(geometry.colors.length * 3, 3);\n this.setAttribute('position', positions.copyVector3sArray(geometry.vertices));\n this.setAttribute('color', colors.copyColorsArray(geometry.colors));\n\n if (geometry.lineDistances && geometry.lineDistances.length === geometry.vertices.length) {\n var lineDistances = new Float32BufferAttribute(geometry.lineDistances.length, 1);\n this.setAttribute('lineDistance', lineDistances.copyArray(geometry.lineDistances));\n }\n\n if (geometry.boundingSphere !== null) {\n this.boundingSphere = geometry.boundingSphere.clone();\n }\n\n if (geometry.boundingBox !== null) {\n this.boundingBox = geometry.boundingBox.clone();\n }\n } else if (object.isMesh) {\n if (geometry && geometry.isGeometry) {\n this.fromGeometry(geometry);\n }\n }\n\n return this;\n },\n setFromPoints: function setFromPoints(points) {\n var position = [];\n\n for (var i = 0, l = points.length; i < l; i++) {\n var point = points[i];\n position.push(point.x, point.y, point.z || 0);\n }\n\n this.setAttribute('position', new Float32BufferAttribute(position, 3));\n return this;\n },\n updateFromObject: function updateFromObject(object) {\n var geometry = object.geometry;\n\n if (object.isMesh) {\n var direct = geometry.__directGeometry;\n\n if (geometry.elementsNeedUpdate === true) {\n direct = undefined;\n geometry.elementsNeedUpdate = false;\n }\n\n if (direct === undefined) {\n return this.fromGeometry(geometry);\n }\n\n direct.verticesNeedUpdate = geometry.verticesNeedUpdate;\n direct.normalsNeedUpdate = geometry.normalsNeedUpdate;\n direct.colorsNeedUpdate = geometry.colorsNeedUpdate;\n direct.uvsNeedUpdate = geometry.uvsNeedUpdate;\n direct.groupsNeedUpdate = geometry.groupsNeedUpdate;\n geometry.verticesNeedUpdate = false;\n geometry.normalsNeedUpdate = false;\n geometry.colorsNeedUpdate = false;\n geometry.uvsNeedUpdate = false;\n geometry.groupsNeedUpdate = false;\n geometry = direct;\n }\n\n var attribute;\n\n if (geometry.verticesNeedUpdate === true) {\n attribute = this.attributes.position;\n\n if (attribute !== undefined) {\n attribute.copyVector3sArray(geometry.vertices);\n attribute.needsUpdate = true;\n }\n\n geometry.verticesNeedUpdate = false;\n }\n\n if (geometry.normalsNeedUpdate === true) {\n attribute = this.attributes.normal;\n\n if (attribute !== undefined) {\n attribute.copyVector3sArray(geometry.normals);\n attribute.needsUpdate = true;\n }\n\n geometry.normalsNeedUpdate = false;\n }\n\n if (geometry.colorsNeedUpdate === true) {\n attribute = this.attributes.color;\n\n if (attribute !== undefined) {\n attribute.copyColorsArray(geometry.colors);\n attribute.needsUpdate = true;\n }\n\n geometry.colorsNeedUpdate = false;\n }\n\n if (geometry.uvsNeedUpdate) {\n attribute = this.attributes.uv;\n\n if (attribute !== undefined) {\n attribute.copyVector2sArray(geometry.uvs);\n attribute.needsUpdate = true;\n }\n\n geometry.uvsNeedUpdate = false;\n }\n\n if (geometry.lineDistancesNeedUpdate) {\n attribute = this.attributes.lineDistance;\n\n if (attribute !== undefined) {\n attribute.copyArray(geometry.lineDistances);\n attribute.needsUpdate = true;\n }\n\n geometry.lineDistancesNeedUpdate = false;\n }\n\n if (geometry.groupsNeedUpdate) {\n geometry.computeGroups(object.geometry);\n this.groups = geometry.groups;\n geometry.groupsNeedUpdate = false;\n }\n\n return this;\n },\n fromGeometry: function fromGeometry(geometry) {\n geometry.__directGeometry = new DirectGeometry().fromGeometry(geometry);\n return this.fromDirectGeometry(geometry.__directGeometry);\n },\n fromDirectGeometry: function fromDirectGeometry(geometry) {\n var positions = new Float32Array(geometry.vertices.length * 3);\n this.setAttribute('position', new BufferAttribute(positions, 3).copyVector3sArray(geometry.vertices));\n\n if (geometry.normals.length > 0) {\n var normals = new Float32Array(geometry.normals.length * 3);\n this.setAttribute('normal', new BufferAttribute(normals, 3).copyVector3sArray(geometry.normals));\n }\n\n if (geometry.colors.length > 0) {\n var colors = new Float32Array(geometry.colors.length * 3);\n this.setAttribute('color', new BufferAttribute(colors, 3).copyColorsArray(geometry.colors));\n }\n\n if (geometry.uvs.length > 0) {\n var uvs = new Float32Array(geometry.uvs.length * 2);\n this.setAttribute('uv', new BufferAttribute(uvs, 2).copyVector2sArray(geometry.uvs));\n }\n\n if (geometry.uvs2.length > 0) {\n var uvs2 = new Float32Array(geometry.uvs2.length * 2);\n this.setAttribute('uv2', new BufferAttribute(uvs2, 2).copyVector2sArray(geometry.uvs2));\n } // groups\n\n\n this.groups = geometry.groups; // morphs\n\n for (var name in geometry.morphTargets) {\n var array = [];\n var morphTargets = geometry.morphTargets[name];\n\n for (var i = 0, l = morphTargets.length; i < l; i++) {\n var morphTarget = morphTargets[i];\n var attribute = new Float32BufferAttribute(morphTarget.data.length * 3, 3);\n attribute.name = morphTarget.name;\n array.push(attribute.copyVector3sArray(morphTarget.data));\n }\n\n this.morphAttributes[name] = array;\n } // skinning\n\n\n if (geometry.skinIndices.length > 0) {\n var skinIndices = new Float32BufferAttribute(geometry.skinIndices.length * 4, 4);\n this.setAttribute('skinIndex', skinIndices.copyVector4sArray(geometry.skinIndices));\n }\n\n if (geometry.skinWeights.length > 0) {\n var skinWeights = new Float32BufferAttribute(geometry.skinWeights.length * 4, 4);\n this.setAttribute('skinWeight', skinWeights.copyVector4sArray(geometry.skinWeights));\n } //\n\n\n if (geometry.boundingSphere !== null) {\n this.boundingSphere = geometry.boundingSphere.clone();\n }\n\n if (geometry.boundingBox !== null) {\n this.boundingBox = geometry.boundingBox.clone();\n }\n\n return this;\n },\n computeBoundingBox: function computeBoundingBox() {\n if (this.boundingBox === null) {\n this.boundingBox = new Box3();\n }\n\n var position = this.attributes.position;\n var morphAttributesPosition = this.morphAttributes.position;\n\n if (position !== undefined) {\n this.boundingBox.setFromBufferAttribute(position); // process morph attributes if present\n\n if (morphAttributesPosition) {\n for (var i = 0, il = morphAttributesPosition.length; i < il; i++) {\n var morphAttribute = morphAttributesPosition[i];\n\n _box$1.setFromBufferAttribute(morphAttribute);\n\n this.boundingBox.expandByPoint(_box$1.min);\n this.boundingBox.expandByPoint(_box$1.max);\n }\n }\n } else {\n this.boundingBox.makeEmpty();\n }\n\n if (isNaN(this.boundingBox.min.x) || isNaN(this.boundingBox.min.y) || isNaN(this.boundingBox.min.z)) {\n console.error('THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.', this);\n }\n },\n computeBoundingSphere: function computeBoundingSphere() {\n if (this.boundingSphere === null) {\n this.boundingSphere = new Sphere();\n }\n\n var position = this.attributes.position;\n var morphAttributesPosition = this.morphAttributes.position;\n\n if (position) {\n // first, find the center of the bounding sphere\n var center = this.boundingSphere.center;\n\n _box$1.setFromBufferAttribute(position); // process morph attributes if present\n\n\n if (morphAttributesPosition) {\n for (var i = 0, il = morphAttributesPosition.length; i < il; i++) {\n var morphAttribute = morphAttributesPosition[i];\n\n _boxMorphTargets.setFromBufferAttribute(morphAttribute);\n\n _box$1.expandByPoint(_boxMorphTargets.min);\n\n _box$1.expandByPoint(_boxMorphTargets.max);\n }\n }\n\n _box$1.getCenter(center); // second, try to find a boundingSphere with a radius smaller than the\n // boundingSphere of the boundingBox: sqrt(3) smaller in the best case\n\n\n var maxRadiusSq = 0;\n\n for (var i = 0, il = position.count; i < il; i++) {\n _vector$4.fromBufferAttribute(position, i);\n\n maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_vector$4));\n } // process morph attributes if present\n\n\n if (morphAttributesPosition) {\n for (var i = 0, il = morphAttributesPosition.length; i < il; i++) {\n var morphAttribute = morphAttributesPosition[i];\n\n for (var j = 0, jl = morphAttribute.count; j < jl; j++) {\n _vector$4.fromBufferAttribute(morphAttribute, j);\n\n maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_vector$4));\n }\n }\n }\n\n this.boundingSphere.radius = Math.sqrt(maxRadiusSq);\n\n if (isNaN(this.boundingSphere.radius)) {\n console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.', this);\n }\n }\n },\n computeFaceNormals: function computeFaceNormals() {// backwards compatibility\n },\n computeVertexNormals: function computeVertexNormals() {\n var index = this.index;\n var attributes = this.attributes;\n\n if (attributes.position) {\n var positions = attributes.position.array;\n\n if (attributes.normal === undefined) {\n this.setAttribute('normal', new BufferAttribute(new Float32Array(positions.length), 3));\n } else {\n // reset existing normals to zero\n var array = attributes.normal.array;\n\n for (var i = 0, il = array.length; i < il; i++) {\n array[i] = 0;\n }\n }\n\n var normals = attributes.normal.array;\n var vA, vB, vC;\n var pA = new Vector3(),\n pB = new Vector3(),\n pC = new Vector3();\n var cb = new Vector3(),\n ab = new Vector3(); // indexed elements\n\n if (index) {\n var indices = index.array;\n\n for (var i = 0, il = index.count; i < il; i += 3) {\n vA = indices[i + 0] * 3;\n vB = indices[i + 1] * 3;\n vC = indices[i + 2] * 3;\n pA.fromArray(positions, vA);\n pB.fromArray(positions, vB);\n pC.fromArray(positions, vC);\n cb.subVectors(pC, pB);\n ab.subVectors(pA, pB);\n cb.cross(ab);\n normals[vA] += cb.x;\n normals[vA + 1] += cb.y;\n normals[vA + 2] += cb.z;\n normals[vB] += cb.x;\n normals[vB + 1] += cb.y;\n normals[vB + 2] += cb.z;\n normals[vC] += cb.x;\n normals[vC + 1] += cb.y;\n normals[vC + 2] += cb.z;\n }\n } else {\n // non-indexed elements (unconnected triangle soup)\n for (var i = 0, il = positions.length; i < il; i += 9) {\n pA.fromArray(positions, i);\n pB.fromArray(positions, i + 3);\n pC.fromArray(positions, i + 6);\n cb.subVectors(pC, pB);\n ab.subVectors(pA, pB);\n cb.cross(ab);\n normals[i] = cb.x;\n normals[i + 1] = cb.y;\n normals[i + 2] = cb.z;\n normals[i + 3] = cb.x;\n normals[i + 4] = cb.y;\n normals[i + 5] = cb.z;\n normals[i + 6] = cb.x;\n normals[i + 7] = cb.y;\n normals[i + 8] = cb.z;\n }\n }\n\n this.normalizeNormals();\n attributes.normal.needsUpdate = true;\n }\n },\n merge: function merge(geometry, offset) {\n if (!(geometry && geometry.isBufferGeometry)) {\n console.error('THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.', geometry);\n return;\n }\n\n if (offset === undefined) {\n offset = 0;\n console.warn('THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. ' + 'Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge.');\n }\n\n var attributes = this.attributes;\n\n for (var key in attributes) {\n if (geometry.attributes[key] === undefined) continue;\n var attribute1 = attributes[key];\n var attributeArray1 = attribute1.array;\n var attribute2 = geometry.attributes[key];\n var attributeArray2 = attribute2.array;\n var attributeOffset = attribute2.itemSize * offset;\n var length = Math.min(attributeArray2.length, attributeArray1.length - attributeOffset);\n\n for (var i = 0, j = attributeOffset; i < length; i++, j++) {\n attributeArray1[j] = attributeArray2[i];\n }\n }\n\n return this;\n },\n normalizeNormals: function normalizeNormals() {\n var normals = this.attributes.normal;\n\n for (var i = 0, il = normals.count; i < il; i++) {\n _vector$4.x = normals.getX(i);\n _vector$4.y = normals.getY(i);\n _vector$4.z = normals.getZ(i);\n\n _vector$4.normalize();\n\n normals.setXYZ(i, _vector$4.x, _vector$4.y, _vector$4.z);\n }\n },\n toNonIndexed: function toNonIndexed() {\n function convertBufferAttribute(attribute, indices) {\n var array = attribute.array;\n var itemSize = attribute.itemSize;\n var array2 = new array.constructor(indices.length * itemSize);\n var index = 0,\n index2 = 0;\n\n for (var i = 0, l = indices.length; i < l; i++) {\n index = indices[i] * itemSize;\n\n for (var j = 0; j < itemSize; j++) {\n array2[index2++] = array[index++];\n }\n }\n\n return new BufferAttribute(array2, itemSize);\n } //\n\n\n if (this.index === null) {\n console.warn('THREE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed.');\n return this;\n }\n\n var geometry2 = new BufferGeometry();\n var indices = this.index.array;\n var attributes = this.attributes; // attributes\n\n for (var name in attributes) {\n var attribute = attributes[name];\n var newAttribute = convertBufferAttribute(attribute, indices);\n geometry2.setAttribute(name, newAttribute);\n } // morph attributes\n\n\n var morphAttributes = this.morphAttributes;\n\n for (name in morphAttributes) {\n var morphArray = [];\n var morphAttribute = morphAttributes[name]; // morphAttribute: array of Float32BufferAttributes\n\n for (var i = 0, il = morphAttribute.length; i < il; i++) {\n var attribute = morphAttribute[i];\n var newAttribute = convertBufferAttribute(attribute, indices);\n morphArray.push(newAttribute);\n }\n\n geometry2.morphAttributes[name] = morphArray;\n } // groups\n\n\n var groups = this.groups;\n\n for (var i = 0, l = groups.length; i < l; i++) {\n var group = groups[i];\n geometry2.addGroup(group.start, group.count, group.materialIndex);\n }\n\n return geometry2;\n },\n toJSON: function toJSON() {\n var data = {\n metadata: {\n version: 4.5,\n type: 'BufferGeometry',\n generator: 'BufferGeometry.toJSON'\n }\n }; // standard BufferGeometry serialization\n\n data.uuid = this.uuid;\n data.type = this.type;\n if (this.name !== '') data.name = this.name;\n if (Object.keys(this.userData).length > 0) data.userData = this.userData;\n\n if (this.parameters !== undefined) {\n var parameters = this.parameters;\n\n for (var key in parameters) {\n if (parameters[key] !== undefined) data[key] = parameters[key];\n }\n\n return data;\n }\n\n data.data = {\n attributes: {}\n };\n var index = this.index;\n\n if (index !== null) {\n data.data.index = {\n type: index.array.constructor.name,\n array: Array.prototype.slice.call(index.array)\n };\n }\n\n var attributes = this.attributes;\n\n for (var key in attributes) {\n var attribute = attributes[key];\n var attributeData = attribute.toJSON();\n if (attribute.name !== '') attributeData.name = attribute.name;\n data.data.attributes[key] = attributeData;\n }\n\n var morphAttributes = {};\n var hasMorphAttributes = false;\n\n for (var key in this.morphAttributes) {\n var attributeArray = this.morphAttributes[key];\n var array = [];\n\n for (var i = 0, il = attributeArray.length; i < il; i++) {\n var attribute = attributeArray[i];\n var attributeData = attribute.toJSON();\n if (attribute.name !== '') attributeData.name = attribute.name;\n array.push(attributeData);\n }\n\n if (array.length > 0) {\n morphAttributes[key] = array;\n hasMorphAttributes = true;\n }\n }\n\n if (hasMorphAttributes) data.data.morphAttributes = morphAttributes;\n var groups = this.groups;\n\n if (groups.length > 0) {\n data.data.groups = JSON.parse(JSON.stringify(groups));\n }\n\n var boundingSphere = this.boundingSphere;\n\n if (boundingSphere !== null) {\n data.data.boundingSphere = {\n center: boundingSphere.center.toArray(),\n radius: boundingSphere.radius\n };\n }\n\n return data;\n },\n clone: function clone() {\n /*\n // Handle primitives\n \t var parameters = this.parameters;\n \t if ( parameters !== undefined ) {\n \t var values = [];\n \t for ( var key in parameters ) {\n \t values.push( parameters[ key ] );\n \t }\n \t var geometry = Object.create( this.constructor.prototype );\n this.constructor.apply( geometry, values );\n return geometry;\n \t }\n \t return new this.constructor().copy( this );\n */\n return new BufferGeometry().copy(this);\n },\n copy: function copy(source) {\n var name, i, l; // reset\n\n this.index = null;\n this.attributes = {};\n this.morphAttributes = {};\n this.groups = [];\n this.boundingBox = null;\n this.boundingSphere = null; // name\n\n this.name = source.name; // index\n\n var index = source.index;\n\n if (index !== null) {\n this.setIndex(index.clone());\n } // attributes\n\n\n var attributes = source.attributes;\n\n for (name in attributes) {\n var attribute = attributes[name];\n this.setAttribute(name, attribute.clone());\n } // morph attributes\n\n\n var morphAttributes = source.morphAttributes;\n\n for (name in morphAttributes) {\n var array = [];\n var morphAttribute = morphAttributes[name]; // morphAttribute: array of Float32BufferAttributes\n\n for (i = 0, l = morphAttribute.length; i < l; i++) {\n array.push(morphAttribute[i].clone());\n }\n\n this.morphAttributes[name] = array;\n } // groups\n\n\n var groups = source.groups;\n\n for (i = 0, l = groups.length; i < l; i++) {\n var group = groups[i];\n this.addGroup(group.start, group.count, group.materialIndex);\n } // bounding box\n\n\n var boundingBox = source.boundingBox;\n\n if (boundingBox !== null) {\n this.boundingBox = boundingBox.clone();\n } // bounding sphere\n\n\n var boundingSphere = source.boundingSphere;\n\n if (boundingSphere !== null) {\n this.boundingSphere = boundingSphere.clone();\n } // draw range\n\n\n this.drawRange.start = source.drawRange.start;\n this.drawRange.count = source.drawRange.count; // user data\n\n this.userData = source.userData;\n return this;\n },\n dispose: function dispose() {\n this.dispatchEvent({\n type: 'dispose'\n });\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author alteredq / http://alteredqualia.com/\n * @author mikael emtinger / http://gomo.se/\n * @author jonobr1 / http://jonobr1.com/\n */\n\nvar _inverseMatrix = new Matrix4();\n\nvar _ray = new Ray();\n\nvar _sphere = new Sphere();\n\nvar _vA = new Vector3();\n\nvar _vB = new Vector3();\n\nvar _vC = new Vector3();\n\nvar _tempA = new Vector3();\n\nvar _tempB = new Vector3();\n\nvar _tempC = new Vector3();\n\nvar _morphA = new Vector3();\n\nvar _morphB = new Vector3();\n\nvar _morphC = new Vector3();\n\nvar _uvA = new Vector2();\n\nvar _uvB = new Vector2();\n\nvar _uvC = new Vector2();\n\nvar _intersectionPoint = new Vector3();\n\nvar _intersectionPointWorld = new Vector3();\n\nfunction Mesh(geometry, material) {\n Object3D.call(this);\n this.type = 'Mesh';\n this.geometry = geometry !== undefined ? geometry : new BufferGeometry();\n this.material = material !== undefined ? material : new MeshBasicMaterial({\n color: Math.random() * 0xffffff\n });\n this.drawMode = TrianglesDrawMode;\n this.updateMorphTargets();\n}\n\nMesh.prototype = Object.assign(Object.create(Object3D.prototype), {\n constructor: Mesh,\n isMesh: true,\n setDrawMode: function setDrawMode(value) {\n this.drawMode = value;\n },\n copy: function copy(source) {\n Object3D.prototype.copy.call(this, source);\n this.drawMode = source.drawMode;\n\n if (source.morphTargetInfluences !== undefined) {\n this.morphTargetInfluences = source.morphTargetInfluences.slice();\n }\n\n if (source.morphTargetDictionary !== undefined) {\n this.morphTargetDictionary = Object.assign({}, source.morphTargetDictionary);\n }\n\n return this;\n },\n updateMorphTargets: function updateMorphTargets() {\n var geometry = this.geometry;\n var m, ml, name;\n\n if (geometry.isBufferGeometry) {\n var morphAttributes = geometry.morphAttributes;\n var keys = Object.keys(morphAttributes);\n\n if (keys.length > 0) {\n var morphAttribute = morphAttributes[keys[0]];\n\n if (morphAttribute !== undefined) {\n this.morphTargetInfluences = [];\n this.morphTargetDictionary = {};\n\n for (m = 0, ml = morphAttribute.length; m < ml; m++) {\n name = morphAttribute[m].name || String(m);\n this.morphTargetInfluences.push(0);\n this.morphTargetDictionary[name] = m;\n }\n }\n }\n } else {\n var morphTargets = geometry.morphTargets;\n\n if (morphTargets !== undefined && morphTargets.length > 0) {\n console.error('THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.');\n }\n }\n },\n raycast: function raycast(raycaster, intersects) {\n var geometry = this.geometry;\n var material = this.material;\n var matrixWorld = this.matrixWorld;\n if (material === undefined) return; // Checking boundingSphere distance to ray\n\n if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n\n _sphere.copy(geometry.boundingSphere);\n\n _sphere.applyMatrix4(matrixWorld);\n\n if (raycaster.ray.intersectsSphere(_sphere) === false) return; //\n\n _inverseMatrix.getInverse(matrixWorld);\n\n _ray.copy(raycaster.ray).applyMatrix4(_inverseMatrix); // Check boundingBox before continuing\n\n\n if (geometry.boundingBox !== null) {\n if (_ray.intersectsBox(geometry.boundingBox) === false) return;\n } // check unsupported draw modes\n\n\n if (this.drawMode !== TrianglesDrawMode) {\n console.warn('THREE.Mesh: TriangleStripDrawMode and TriangleFanDrawMode are not supported by .raycast().');\n return;\n }\n\n var intersection;\n\n if (geometry.isBufferGeometry) {\n var a, b, c;\n var index = geometry.index;\n var position = geometry.attributes.position;\n var morphPosition = geometry.morphAttributes.position;\n var uv = geometry.attributes.uv;\n var uv2 = geometry.attributes.uv2;\n var groups = geometry.groups;\n var drawRange = geometry.drawRange;\n var i, j, il, jl;\n var group, groupMaterial;\n var start, end;\n\n if (index !== null) {\n // indexed buffer geometry\n if (Array.isArray(material)) {\n for (i = 0, il = groups.length; i < il; i++) {\n group = groups[i];\n groupMaterial = material[group.materialIndex];\n start = Math.max(group.start, drawRange.start);\n end = Math.min(group.start + group.count, drawRange.start + drawRange.count);\n\n for (j = start, jl = end; j < jl; j += 3) {\n a = index.getX(j);\n b = index.getX(j + 1);\n c = index.getX(j + 2);\n intersection = checkBufferGeometryIntersection(this, groupMaterial, raycaster, _ray, position, morphPosition, uv, uv2, a, b, c);\n\n if (intersection) {\n intersection.faceIndex = Math.floor(j / 3); // triangle number in indexed buffer semantics\n\n intersection.face.materialIndex = group.materialIndex;\n intersects.push(intersection);\n }\n }\n }\n } else {\n start = Math.max(0, drawRange.start);\n end = Math.min(index.count, drawRange.start + drawRange.count);\n\n for (i = start, il = end; i < il; i += 3) {\n a = index.getX(i);\n b = index.getX(i + 1);\n c = index.getX(i + 2);\n intersection = checkBufferGeometryIntersection(this, material, raycaster, _ray, position, morphPosition, uv, uv2, a, b, c);\n\n if (intersection) {\n intersection.faceIndex = Math.floor(i / 3); // triangle number in indexed buffer semantics\n\n intersects.push(intersection);\n }\n }\n }\n } else if (position !== undefined) {\n // non-indexed buffer geometry\n if (Array.isArray(material)) {\n for (i = 0, il = groups.length; i < il; i++) {\n group = groups[i];\n groupMaterial = material[group.materialIndex];\n start = Math.max(group.start, drawRange.start);\n end = Math.min(group.start + group.count, drawRange.start + drawRange.count);\n\n for (j = start, jl = end; j < jl; j += 3) {\n a = j;\n b = j + 1;\n c = j + 2;\n intersection = checkBufferGeometryIntersection(this, groupMaterial, raycaster, _ray, position, morphPosition, uv, uv2, a, b, c);\n\n if (intersection) {\n intersection.faceIndex = Math.floor(j / 3); // triangle number in non-indexed buffer semantics\n\n intersection.face.materialIndex = group.materialIndex;\n intersects.push(intersection);\n }\n }\n }\n } else {\n start = Math.max(0, drawRange.start);\n end = Math.min(position.count, drawRange.start + drawRange.count);\n\n for (i = start, il = end; i < il; i += 3) {\n a = i;\n b = i + 1;\n c = i + 2;\n intersection = checkBufferGeometryIntersection(this, material, raycaster, _ray, position, morphPosition, uv, uv2, a, b, c);\n\n if (intersection) {\n intersection.faceIndex = Math.floor(i / 3); // triangle number in non-indexed buffer semantics\n\n intersects.push(intersection);\n }\n }\n }\n }\n } else if (geometry.isGeometry) {\n var fvA, fvB, fvC;\n var isMultiMaterial = Array.isArray(material);\n var vertices = geometry.vertices;\n var faces = geometry.faces;\n var uvs;\n var faceVertexUvs = geometry.faceVertexUvs[0];\n if (faceVertexUvs.length > 0) uvs = faceVertexUvs;\n\n for (var f = 0, fl = faces.length; f < fl; f++) {\n var face = faces[f];\n var faceMaterial = isMultiMaterial ? material[face.materialIndex] : material;\n if (faceMaterial === undefined) continue;\n fvA = vertices[face.a];\n fvB = vertices[face.b];\n fvC = vertices[face.c];\n intersection = checkIntersection(this, faceMaterial, raycaster, _ray, fvA, fvB, fvC, _intersectionPoint);\n\n if (intersection) {\n if (uvs && uvs[f]) {\n var uvs_f = uvs[f];\n\n _uvA.copy(uvs_f[0]);\n\n _uvB.copy(uvs_f[1]);\n\n _uvC.copy(uvs_f[2]);\n\n intersection.uv = Triangle.getUV(_intersectionPoint, fvA, fvB, fvC, _uvA, _uvB, _uvC, new Vector2());\n }\n\n intersection.face = face;\n intersection.faceIndex = f;\n intersects.push(intersection);\n }\n }\n }\n },\n clone: function clone() {\n return new this.constructor(this.geometry, this.material).copy(this);\n }\n});\n\nfunction checkIntersection(object, material, raycaster, ray, pA, pB, pC, point) {\n var intersect;\n\n if (material.side === BackSide) {\n intersect = ray.intersectTriangle(pC, pB, pA, true, point);\n } else {\n intersect = ray.intersectTriangle(pA, pB, pC, material.side !== DoubleSide, point);\n }\n\n if (intersect === null) return null;\n\n _intersectionPointWorld.copy(point);\n\n _intersectionPointWorld.applyMatrix4(object.matrixWorld);\n\n var distance = raycaster.ray.origin.distanceTo(_intersectionPointWorld);\n if (distance < raycaster.near || distance > raycaster.far) return null;\n return {\n distance: distance,\n point: _intersectionPointWorld.clone(),\n object: object\n };\n}\n\nfunction checkBufferGeometryIntersection(object, material, raycaster, ray, position, morphPosition, uv, uv2, a, b, c) {\n _vA.fromBufferAttribute(position, a);\n\n _vB.fromBufferAttribute(position, b);\n\n _vC.fromBufferAttribute(position, c);\n\n var morphInfluences = object.morphTargetInfluences;\n\n if (material.morphTargets && morphPosition && morphInfluences) {\n _morphA.set(0, 0, 0);\n\n _morphB.set(0, 0, 0);\n\n _morphC.set(0, 0, 0);\n\n for (var i = 0, il = morphPosition.length; i < il; i++) {\n var influence = morphInfluences[i];\n var morphAttribute = morphPosition[i];\n if (influence === 0) continue;\n\n _tempA.fromBufferAttribute(morphAttribute, a);\n\n _tempB.fromBufferAttribute(morphAttribute, b);\n\n _tempC.fromBufferAttribute(morphAttribute, c);\n\n _morphA.addScaledVector(_tempA.sub(_vA), influence);\n\n _morphB.addScaledVector(_tempB.sub(_vB), influence);\n\n _morphC.addScaledVector(_tempC.sub(_vC), influence);\n }\n\n _vA.add(_morphA);\n\n _vB.add(_morphB);\n\n _vC.add(_morphC);\n }\n\n var intersection = checkIntersection(object, material, raycaster, ray, _vA, _vB, _vC, _intersectionPoint);\n\n if (intersection) {\n if (uv) {\n _uvA.fromBufferAttribute(uv, a);\n\n _uvB.fromBufferAttribute(uv, b);\n\n _uvC.fromBufferAttribute(uv, c);\n\n intersection.uv = Triangle.getUV(_intersectionPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2());\n }\n\n if (uv2) {\n _uvA.fromBufferAttribute(uv2, a);\n\n _uvB.fromBufferAttribute(uv2, b);\n\n _uvC.fromBufferAttribute(uv2, c);\n\n intersection.uv2 = Triangle.getUV(_intersectionPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2());\n }\n\n var face = new Face3(a, b, c);\n Triangle.getNormal(_vA, _vB, _vC, face.normal);\n intersection.face = face;\n }\n\n return intersection;\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author kile / http://kile.stravaganza.org/\n * @author alteredq / http://alteredqualia.com/\n * @author mikael emtinger / http://gomo.se/\n * @author zz85 / http://www.lab4games.net/zz85/blog\n * @author bhouston / http://clara.io\n */\n\n\nvar _geometryId = 0; // Geometry uses even numbers as Id\n\nvar _m1$3 = new Matrix4();\n\nvar _obj$1 = new Object3D();\n\nvar _offset$1 = new Vector3();\n\nfunction Geometry() {\n Object.defineProperty(this, 'id', {\n value: _geometryId += 2\n });\n this.uuid = _Math.generateUUID();\n this.name = '';\n this.type = 'Geometry';\n this.vertices = [];\n this.colors = [];\n this.faces = [];\n this.faceVertexUvs = [[]];\n this.morphTargets = [];\n this.morphNormals = [];\n this.skinWeights = [];\n this.skinIndices = [];\n this.lineDistances = [];\n this.boundingBox = null;\n this.boundingSphere = null; // update flags\n\n this.elementsNeedUpdate = false;\n this.verticesNeedUpdate = false;\n this.uvsNeedUpdate = false;\n this.normalsNeedUpdate = false;\n this.colorsNeedUpdate = false;\n this.lineDistancesNeedUpdate = false;\n this.groupsNeedUpdate = false;\n}\n\nGeometry.prototype = Object.assign(Object.create(EventDispatcher.prototype), {\n constructor: Geometry,\n isGeometry: true,\n applyMatrix: function applyMatrix(matrix) {\n var normalMatrix = new Matrix3().getNormalMatrix(matrix);\n\n for (var i = 0, il = this.vertices.length; i < il; i++) {\n var vertex = this.vertices[i];\n vertex.applyMatrix4(matrix);\n }\n\n for (var i = 0, il = this.faces.length; i < il; i++) {\n var face = this.faces[i];\n face.normal.applyMatrix3(normalMatrix).normalize();\n\n for (var j = 0, jl = face.vertexNormals.length; j < jl; j++) {\n face.vertexNormals[j].applyMatrix3(normalMatrix).normalize();\n }\n }\n\n if (this.boundingBox !== null) {\n this.computeBoundingBox();\n }\n\n if (this.boundingSphere !== null) {\n this.computeBoundingSphere();\n }\n\n this.verticesNeedUpdate = true;\n this.normalsNeedUpdate = true;\n return this;\n },\n rotateX: function rotateX(angle) {\n // rotate geometry around world x-axis\n _m1$3.makeRotationX(angle);\n\n this.applyMatrix(_m1$3);\n return this;\n },\n rotateY: function rotateY(angle) {\n // rotate geometry around world y-axis\n _m1$3.makeRotationY(angle);\n\n this.applyMatrix(_m1$3);\n return this;\n },\n rotateZ: function rotateZ(angle) {\n // rotate geometry around world z-axis\n _m1$3.makeRotationZ(angle);\n\n this.applyMatrix(_m1$3);\n return this;\n },\n translate: function translate(x, y, z) {\n // translate geometry\n _m1$3.makeTranslation(x, y, z);\n\n this.applyMatrix(_m1$3);\n return this;\n },\n scale: function scale(x, y, z) {\n // scale geometry\n _m1$3.makeScale(x, y, z);\n\n this.applyMatrix(_m1$3);\n return this;\n },\n lookAt: function lookAt(vector) {\n _obj$1.lookAt(vector);\n\n _obj$1.updateMatrix();\n\n this.applyMatrix(_obj$1.matrix);\n return this;\n },\n fromBufferGeometry: function fromBufferGeometry(geometry) {\n var scope = this;\n var indices = geometry.index !== null ? geometry.index.array : undefined;\n var attributes = geometry.attributes;\n\n if (attributes.position === undefined) {\n console.error('THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion.');\n return this;\n }\n\n var positions = attributes.position.array;\n var normals = attributes.normal !== undefined ? attributes.normal.array : undefined;\n var colors = attributes.color !== undefined ? attributes.color.array : undefined;\n var uvs = attributes.uv !== undefined ? attributes.uv.array : undefined;\n var uvs2 = attributes.uv2 !== undefined ? attributes.uv2.array : undefined;\n if (uvs2 !== undefined) this.faceVertexUvs[1] = [];\n\n for (var i = 0; i < positions.length; i += 3) {\n scope.vertices.push(new Vector3().fromArray(positions, i));\n\n if (colors !== undefined) {\n scope.colors.push(new Color().fromArray(colors, i));\n }\n }\n\n function addFace(a, b, c, materialIndex) {\n var vertexColors = colors === undefined ? [] : [scope.colors[a].clone(), scope.colors[b].clone(), scope.colors[c].clone()];\n var vertexNormals = normals === undefined ? [] : [new Vector3().fromArray(normals, a * 3), new Vector3().fromArray(normals, b * 3), new Vector3().fromArray(normals, c * 3)];\n var face = new Face3(a, b, c, vertexNormals, vertexColors, materialIndex);\n scope.faces.push(face);\n\n if (uvs !== undefined) {\n scope.faceVertexUvs[0].push([new Vector2().fromArray(uvs, a * 2), new Vector2().fromArray(uvs, b * 2), new Vector2().fromArray(uvs, c * 2)]);\n }\n\n if (uvs2 !== undefined) {\n scope.faceVertexUvs[1].push([new Vector2().fromArray(uvs2, a * 2), new Vector2().fromArray(uvs2, b * 2), new Vector2().fromArray(uvs2, c * 2)]);\n }\n }\n\n var groups = geometry.groups;\n\n if (groups.length > 0) {\n for (var i = 0; i < groups.length; i++) {\n var group = groups[i];\n var start = group.start;\n var count = group.count;\n\n for (var j = start, jl = start + count; j < jl; j += 3) {\n if (indices !== undefined) {\n addFace(indices[j], indices[j + 1], indices[j + 2], group.materialIndex);\n } else {\n addFace(j, j + 1, j + 2, group.materialIndex);\n }\n }\n }\n } else {\n if (indices !== undefined) {\n for (var i = 0; i < indices.length; i += 3) {\n addFace(indices[i], indices[i + 1], indices[i + 2]);\n }\n } else {\n for (var i = 0; i < positions.length / 3; i += 3) {\n addFace(i, i + 1, i + 2);\n }\n }\n }\n\n this.computeFaceNormals();\n\n if (geometry.boundingBox !== null) {\n this.boundingBox = geometry.boundingBox.clone();\n }\n\n if (geometry.boundingSphere !== null) {\n this.boundingSphere = geometry.boundingSphere.clone();\n }\n\n return this;\n },\n center: function center() {\n this.computeBoundingBox();\n this.boundingBox.getCenter(_offset$1).negate();\n this.translate(_offset$1.x, _offset$1.y, _offset$1.z);\n return this;\n },\n normalize: function normalize() {\n this.computeBoundingSphere();\n var center = this.boundingSphere.center;\n var radius = this.boundingSphere.radius;\n var s = radius === 0 ? 1 : 1.0 / radius;\n var matrix = new Matrix4();\n matrix.set(s, 0, 0, -s * center.x, 0, s, 0, -s * center.y, 0, 0, s, -s * center.z, 0, 0, 0, 1);\n this.applyMatrix(matrix);\n return this;\n },\n computeFaceNormals: function computeFaceNormals() {\n var cb = new Vector3(),\n ab = new Vector3();\n\n for (var f = 0, fl = this.faces.length; f < fl; f++) {\n var face = this.faces[f];\n var vA = this.vertices[face.a];\n var vB = this.vertices[face.b];\n var vC = this.vertices[face.c];\n cb.subVectors(vC, vB);\n ab.subVectors(vA, vB);\n cb.cross(ab);\n cb.normalize();\n face.normal.copy(cb);\n }\n },\n computeVertexNormals: function computeVertexNormals(areaWeighted) {\n if (areaWeighted === undefined) areaWeighted = true;\n var v, vl, f, fl, face, vertices;\n vertices = new Array(this.vertices.length);\n\n for (v = 0, vl = this.vertices.length; v < vl; v++) {\n vertices[v] = new Vector3();\n }\n\n if (areaWeighted) {\n // vertex normals weighted by triangle areas\n // http://www.iquilezles.org/www/articles/normals/normals.htm\n var vA, vB, vC;\n var cb = new Vector3(),\n ab = new Vector3();\n\n for (f = 0, fl = this.faces.length; f < fl; f++) {\n face = this.faces[f];\n vA = this.vertices[face.a];\n vB = this.vertices[face.b];\n vC = this.vertices[face.c];\n cb.subVectors(vC, vB);\n ab.subVectors(vA, vB);\n cb.cross(ab);\n vertices[face.a].add(cb);\n vertices[face.b].add(cb);\n vertices[face.c].add(cb);\n }\n } else {\n this.computeFaceNormals();\n\n for (f = 0, fl = this.faces.length; f < fl; f++) {\n face = this.faces[f];\n vertices[face.a].add(face.normal);\n vertices[face.b].add(face.normal);\n vertices[face.c].add(face.normal);\n }\n }\n\n for (v = 0, vl = this.vertices.length; v < vl; v++) {\n vertices[v].normalize();\n }\n\n for (f = 0, fl = this.faces.length; f < fl; f++) {\n face = this.faces[f];\n var vertexNormals = face.vertexNormals;\n\n if (vertexNormals.length === 3) {\n vertexNormals[0].copy(vertices[face.a]);\n vertexNormals[1].copy(vertices[face.b]);\n vertexNormals[2].copy(vertices[face.c]);\n } else {\n vertexNormals[0] = vertices[face.a].clone();\n vertexNormals[1] = vertices[face.b].clone();\n vertexNormals[2] = vertices[face.c].clone();\n }\n }\n\n if (this.faces.length > 0) {\n this.normalsNeedUpdate = true;\n }\n },\n computeFlatVertexNormals: function computeFlatVertexNormals() {\n var f, fl, face;\n this.computeFaceNormals();\n\n for (f = 0, fl = this.faces.length; f < fl; f++) {\n face = this.faces[f];\n var vertexNormals = face.vertexNormals;\n\n if (vertexNormals.length === 3) {\n vertexNormals[0].copy(face.normal);\n vertexNormals[1].copy(face.normal);\n vertexNormals[2].copy(face.normal);\n } else {\n vertexNormals[0] = face.normal.clone();\n vertexNormals[1] = face.normal.clone();\n vertexNormals[2] = face.normal.clone();\n }\n }\n\n if (this.faces.length > 0) {\n this.normalsNeedUpdate = true;\n }\n },\n computeMorphNormals: function computeMorphNormals() {\n var i, il, f, fl, face; // save original normals\n // - create temp variables on first access\n // otherwise just copy (for faster repeated calls)\n\n for (f = 0, fl = this.faces.length; f < fl; f++) {\n face = this.faces[f];\n\n if (!face.__originalFaceNormal) {\n face.__originalFaceNormal = face.normal.clone();\n } else {\n face.__originalFaceNormal.copy(face.normal);\n }\n\n if (!face.__originalVertexNormals) face.__originalVertexNormals = [];\n\n for (i = 0, il = face.vertexNormals.length; i < il; i++) {\n if (!face.__originalVertexNormals[i]) {\n face.__originalVertexNormals[i] = face.vertexNormals[i].clone();\n } else {\n face.__originalVertexNormals[i].copy(face.vertexNormals[i]);\n }\n }\n } // use temp geometry to compute face and vertex normals for each morph\n\n\n var tmpGeo = new Geometry();\n tmpGeo.faces = this.faces;\n\n for (i = 0, il = this.morphTargets.length; i < il; i++) {\n // create on first access\n if (!this.morphNormals[i]) {\n this.morphNormals[i] = {};\n this.morphNormals[i].faceNormals = [];\n this.morphNormals[i].vertexNormals = [];\n var dstNormalsFace = this.morphNormals[i].faceNormals;\n var dstNormalsVertex = this.morphNormals[i].vertexNormals;\n var faceNormal, vertexNormals;\n\n for (f = 0, fl = this.faces.length; f < fl; f++) {\n faceNormal = new Vector3();\n vertexNormals = {\n a: new Vector3(),\n b: new Vector3(),\n c: new Vector3()\n };\n dstNormalsFace.push(faceNormal);\n dstNormalsVertex.push(vertexNormals);\n }\n }\n\n var morphNormals = this.morphNormals[i]; // set vertices to morph target\n\n tmpGeo.vertices = this.morphTargets[i].vertices; // compute morph normals\n\n tmpGeo.computeFaceNormals();\n tmpGeo.computeVertexNormals(); // store morph normals\n\n var faceNormal, vertexNormals;\n\n for (f = 0, fl = this.faces.length; f < fl; f++) {\n face = this.faces[f];\n faceNormal = morphNormals.faceNormals[f];\n vertexNormals = morphNormals.vertexNormals[f];\n faceNormal.copy(face.normal);\n vertexNormals.a.copy(face.vertexNormals[0]);\n vertexNormals.b.copy(face.vertexNormals[1]);\n vertexNormals.c.copy(face.vertexNormals[2]);\n }\n } // restore original normals\n\n\n for (f = 0, fl = this.faces.length; f < fl; f++) {\n face = this.faces[f];\n face.normal = face.__originalFaceNormal;\n face.vertexNormals = face.__originalVertexNormals;\n }\n },\n computeBoundingBox: function computeBoundingBox() {\n if (this.boundingBox === null) {\n this.boundingBox = new Box3();\n }\n\n this.boundingBox.setFromPoints(this.vertices);\n },\n computeBoundingSphere: function computeBoundingSphere() {\n if (this.boundingSphere === null) {\n this.boundingSphere = new Sphere();\n }\n\n this.boundingSphere.setFromPoints(this.vertices);\n },\n merge: function merge(geometry, matrix, materialIndexOffset) {\n if (!(geometry && geometry.isGeometry)) {\n console.error('THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.', geometry);\n return;\n }\n\n var normalMatrix,\n vertexOffset = this.vertices.length,\n vertices1 = this.vertices,\n vertices2 = geometry.vertices,\n faces1 = this.faces,\n faces2 = geometry.faces,\n colors1 = this.colors,\n colors2 = geometry.colors;\n if (materialIndexOffset === undefined) materialIndexOffset = 0;\n\n if (matrix !== undefined) {\n normalMatrix = new Matrix3().getNormalMatrix(matrix);\n } // vertices\n\n\n for (var i = 0, il = vertices2.length; i < il; i++) {\n var vertex = vertices2[i];\n var vertexCopy = vertex.clone();\n if (matrix !== undefined) vertexCopy.applyMatrix4(matrix);\n vertices1.push(vertexCopy);\n } // colors\n\n\n for (var i = 0, il = colors2.length; i < il; i++) {\n colors1.push(colors2[i].clone());\n } // faces\n\n\n for (i = 0, il = faces2.length; i < il; i++) {\n var face = faces2[i],\n faceCopy,\n normal,\n color,\n faceVertexNormals = face.vertexNormals,\n faceVertexColors = face.vertexColors;\n faceCopy = new Face3(face.a + vertexOffset, face.b + vertexOffset, face.c + vertexOffset);\n faceCopy.normal.copy(face.normal);\n\n if (normalMatrix !== undefined) {\n faceCopy.normal.applyMatrix3(normalMatrix).normalize();\n }\n\n for (var j = 0, jl = faceVertexNormals.length; j < jl; j++) {\n normal = faceVertexNormals[j].clone();\n\n if (normalMatrix !== undefined) {\n normal.applyMatrix3(normalMatrix).normalize();\n }\n\n faceCopy.vertexNormals.push(normal);\n }\n\n faceCopy.color.copy(face.color);\n\n for (var j = 0, jl = faceVertexColors.length; j < jl; j++) {\n color = faceVertexColors[j];\n faceCopy.vertexColors.push(color.clone());\n }\n\n faceCopy.materialIndex = face.materialIndex + materialIndexOffset;\n faces1.push(faceCopy);\n } // uvs\n\n\n for (var i = 0, il = geometry.faceVertexUvs.length; i < il; i++) {\n var faceVertexUvs2 = geometry.faceVertexUvs[i];\n if (this.faceVertexUvs[i] === undefined) this.faceVertexUvs[i] = [];\n\n for (var j = 0, jl = faceVertexUvs2.length; j < jl; j++) {\n var uvs2 = faceVertexUvs2[j],\n uvsCopy = [];\n\n for (var k = 0, kl = uvs2.length; k < kl; k++) {\n uvsCopy.push(uvs2[k].clone());\n }\n\n this.faceVertexUvs[i].push(uvsCopy);\n }\n }\n },\n mergeMesh: function mergeMesh(mesh) {\n if (!(mesh && mesh.isMesh)) {\n console.error('THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.', mesh);\n return;\n }\n\n if (mesh.matrixAutoUpdate) mesh.updateMatrix();\n this.merge(mesh.geometry, mesh.matrix);\n },\n\n /*\n * Checks for duplicate vertices with hashmap.\n * Duplicated vertices are removed\n * and faces' vertices are updated.\n */\n mergeVertices: function mergeVertices() {\n var verticesMap = {}; // Hashmap for looking up vertices by position coordinates (and making sure they are unique)\n\n var unique = [],\n changes = [];\n var v, key;\n var precisionPoints = 4; // number of decimal points, e.g. 4 for epsilon of 0.0001\n\n var precision = Math.pow(10, precisionPoints);\n var i, il, face;\n var indices, j, jl;\n\n for (i = 0, il = this.vertices.length; i < il; i++) {\n v = this.vertices[i];\n key = Math.round(v.x * precision) + '_' + Math.round(v.y * precision) + '_' + Math.round(v.z * precision);\n\n if (verticesMap[key] === undefined) {\n verticesMap[key] = i;\n unique.push(this.vertices[i]);\n changes[i] = unique.length - 1;\n } else {\n //console.log('Duplicate vertex found. ', i, ' could be using ', verticesMap[key]);\n changes[i] = changes[verticesMap[key]];\n }\n } // if faces are completely degenerate after merging vertices, we\n // have to remove them from the geometry.\n\n\n var faceIndicesToRemove = [];\n\n for (i = 0, il = this.faces.length; i < il; i++) {\n face = this.faces[i];\n face.a = changes[face.a];\n face.b = changes[face.b];\n face.c = changes[face.c];\n indices = [face.a, face.b, face.c]; // if any duplicate vertices are found in a Face3\n // we have to remove the face as nothing can be saved\n\n for (var n = 0; n < 3; n++) {\n if (indices[n] === indices[(n + 1) % 3]) {\n faceIndicesToRemove.push(i);\n break;\n }\n }\n }\n\n for (i = faceIndicesToRemove.length - 1; i >= 0; i--) {\n var idx = faceIndicesToRemove[i];\n this.faces.splice(idx, 1);\n\n for (j = 0, jl = this.faceVertexUvs.length; j < jl; j++) {\n this.faceVertexUvs[j].splice(idx, 1);\n }\n } // Use unique set of vertices\n\n\n var diff = this.vertices.length - unique.length;\n this.vertices = unique;\n return diff;\n },\n setFromPoints: function setFromPoints(points) {\n this.vertices = [];\n\n for (var i = 0, l = points.length; i < l; i++) {\n var point = points[i];\n this.vertices.push(new Vector3(point.x, point.y, point.z || 0));\n }\n\n return this;\n },\n sortFacesByMaterialIndex: function sortFacesByMaterialIndex() {\n var faces = this.faces;\n var length = faces.length; // tag faces\n\n for (var i = 0; i < length; i++) {\n faces[i]._id = i;\n } // sort faces\n\n\n function materialIndexSort(a, b) {\n return a.materialIndex - b.materialIndex;\n }\n\n faces.sort(materialIndexSort); // sort uvs\n\n var uvs1 = this.faceVertexUvs[0];\n var uvs2 = this.faceVertexUvs[1];\n var newUvs1, newUvs2;\n if (uvs1 && uvs1.length === length) newUvs1 = [];\n if (uvs2 && uvs2.length === length) newUvs2 = [];\n\n for (var i = 0; i < length; i++) {\n var id = faces[i]._id;\n if (newUvs1) newUvs1.push(uvs1[id]);\n if (newUvs2) newUvs2.push(uvs2[id]);\n }\n\n if (newUvs1) this.faceVertexUvs[0] = newUvs1;\n if (newUvs2) this.faceVertexUvs[1] = newUvs2;\n },\n toJSON: function toJSON() {\n var data = {\n metadata: {\n version: 4.5,\n type: 'Geometry',\n generator: 'Geometry.toJSON'\n }\n }; // standard Geometry serialization\n\n data.uuid = this.uuid;\n data.type = this.type;\n if (this.name !== '') data.name = this.name;\n\n if (this.parameters !== undefined) {\n var parameters = this.parameters;\n\n for (var key in parameters) {\n if (parameters[key] !== undefined) data[key] = parameters[key];\n }\n\n return data;\n }\n\n var vertices = [];\n\n for (var i = 0; i < this.vertices.length; i++) {\n var vertex = this.vertices[i];\n vertices.push(vertex.x, vertex.y, vertex.z);\n }\n\n var faces = [];\n var normals = [];\n var normalsHash = {};\n var colors = [];\n var colorsHash = {};\n var uvs = [];\n var uvsHash = {};\n\n for (var i = 0; i < this.faces.length; i++) {\n var face = this.faces[i];\n var hasMaterial = true;\n var hasFaceUv = false; // deprecated\n\n var hasFaceVertexUv = this.faceVertexUvs[0][i] !== undefined;\n var hasFaceNormal = face.normal.length() > 0;\n var hasFaceVertexNormal = face.vertexNormals.length > 0;\n var hasFaceColor = face.color.r !== 1 || face.color.g !== 1 || face.color.b !== 1;\n var hasFaceVertexColor = face.vertexColors.length > 0;\n var faceType = 0;\n faceType = setBit(faceType, 0, 0); // isQuad\n\n faceType = setBit(faceType, 1, hasMaterial);\n faceType = setBit(faceType, 2, hasFaceUv);\n faceType = setBit(faceType, 3, hasFaceVertexUv);\n faceType = setBit(faceType, 4, hasFaceNormal);\n faceType = setBit(faceType, 5, hasFaceVertexNormal);\n faceType = setBit(faceType, 6, hasFaceColor);\n faceType = setBit(faceType, 7, hasFaceVertexColor);\n faces.push(faceType);\n faces.push(face.a, face.b, face.c);\n faces.push(face.materialIndex);\n\n if (hasFaceVertexUv) {\n var faceVertexUvs = this.faceVertexUvs[0][i];\n faces.push(getUvIndex(faceVertexUvs[0]), getUvIndex(faceVertexUvs[1]), getUvIndex(faceVertexUvs[2]));\n }\n\n if (hasFaceNormal) {\n faces.push(getNormalIndex(face.normal));\n }\n\n if (hasFaceVertexNormal) {\n var vertexNormals = face.vertexNormals;\n faces.push(getNormalIndex(vertexNormals[0]), getNormalIndex(vertexNormals[1]), getNormalIndex(vertexNormals[2]));\n }\n\n if (hasFaceColor) {\n faces.push(getColorIndex(face.color));\n }\n\n if (hasFaceVertexColor) {\n var vertexColors = face.vertexColors;\n faces.push(getColorIndex(vertexColors[0]), getColorIndex(vertexColors[1]), getColorIndex(vertexColors[2]));\n }\n }\n\n function setBit(value, position, enabled) {\n return enabled ? value | 1 << position : value & ~(1 << position);\n }\n\n function getNormalIndex(normal) {\n var hash = normal.x.toString() + normal.y.toString() + normal.z.toString();\n\n if (normalsHash[hash] !== undefined) {\n return normalsHash[hash];\n }\n\n normalsHash[hash] = normals.length / 3;\n normals.push(normal.x, normal.y, normal.z);\n return normalsHash[hash];\n }\n\n function getColorIndex(color) {\n var hash = color.r.toString() + color.g.toString() + color.b.toString();\n\n if (colorsHash[hash] !== undefined) {\n return colorsHash[hash];\n }\n\n colorsHash[hash] = colors.length;\n colors.push(color.getHex());\n return colorsHash[hash];\n }\n\n function getUvIndex(uv) {\n var hash = uv.x.toString() + uv.y.toString();\n\n if (uvsHash[hash] !== undefined) {\n return uvsHash[hash];\n }\n\n uvsHash[hash] = uvs.length / 2;\n uvs.push(uv.x, uv.y);\n return uvsHash[hash];\n }\n\n data.data = {};\n data.data.vertices = vertices;\n data.data.normals = normals;\n if (colors.length > 0) data.data.colors = colors;\n if (uvs.length > 0) data.data.uvs = [uvs]; // temporal backward compatibility\n\n data.data.faces = faces;\n return data;\n },\n clone: function clone() {\n /*\n // Handle primitives\n \t var parameters = this.parameters;\n \t if ( parameters !== undefined ) {\n \t var values = [];\n \t for ( var key in parameters ) {\n \t values.push( parameters[ key ] );\n \t }\n \t var geometry = Object.create( this.constructor.prototype );\n this.constructor.apply( geometry, values );\n return geometry;\n \t }\n \t return new this.constructor().copy( this );\n */\n return new Geometry().copy(this);\n },\n copy: function copy(source) {\n var i, il, j, jl, k, kl; // reset\n\n this.vertices = [];\n this.colors = [];\n this.faces = [];\n this.faceVertexUvs = [[]];\n this.morphTargets = [];\n this.morphNormals = [];\n this.skinWeights = [];\n this.skinIndices = [];\n this.lineDistances = [];\n this.boundingBox = null;\n this.boundingSphere = null; // name\n\n this.name = source.name; // vertices\n\n var vertices = source.vertices;\n\n for (i = 0, il = vertices.length; i < il; i++) {\n this.vertices.push(vertices[i].clone());\n } // colors\n\n\n var colors = source.colors;\n\n for (i = 0, il = colors.length; i < il; i++) {\n this.colors.push(colors[i].clone());\n } // faces\n\n\n var faces = source.faces;\n\n for (i = 0, il = faces.length; i < il; i++) {\n this.faces.push(faces[i].clone());\n } // face vertex uvs\n\n\n for (i = 0, il = source.faceVertexUvs.length; i < il; i++) {\n var faceVertexUvs = source.faceVertexUvs[i];\n\n if (this.faceVertexUvs[i] === undefined) {\n this.faceVertexUvs[i] = [];\n }\n\n for (j = 0, jl = faceVertexUvs.length; j < jl; j++) {\n var uvs = faceVertexUvs[j],\n uvsCopy = [];\n\n for (k = 0, kl = uvs.length; k < kl; k++) {\n var uv = uvs[k];\n uvsCopy.push(uv.clone());\n }\n\n this.faceVertexUvs[i].push(uvsCopy);\n }\n } // morph targets\n\n\n var morphTargets = source.morphTargets;\n\n for (i = 0, il = morphTargets.length; i < il; i++) {\n var morphTarget = {};\n morphTarget.name = morphTargets[i].name; // vertices\n\n if (morphTargets[i].vertices !== undefined) {\n morphTarget.vertices = [];\n\n for (j = 0, jl = morphTargets[i].vertices.length; j < jl; j++) {\n morphTarget.vertices.push(morphTargets[i].vertices[j].clone());\n }\n } // normals\n\n\n if (morphTargets[i].normals !== undefined) {\n morphTarget.normals = [];\n\n for (j = 0, jl = morphTargets[i].normals.length; j < jl; j++) {\n morphTarget.normals.push(morphTargets[i].normals[j].clone());\n }\n }\n\n this.morphTargets.push(morphTarget);\n } // morph normals\n\n\n var morphNormals = source.morphNormals;\n\n for (i = 0, il = morphNormals.length; i < il; i++) {\n var morphNormal = {}; // vertex normals\n\n if (morphNormals[i].vertexNormals !== undefined) {\n morphNormal.vertexNormals = [];\n\n for (j = 0, jl = morphNormals[i].vertexNormals.length; j < jl; j++) {\n var srcVertexNormal = morphNormals[i].vertexNormals[j];\n var destVertexNormal = {};\n destVertexNormal.a = srcVertexNormal.a.clone();\n destVertexNormal.b = srcVertexNormal.b.clone();\n destVertexNormal.c = srcVertexNormal.c.clone();\n morphNormal.vertexNormals.push(destVertexNormal);\n }\n } // face normals\n\n\n if (morphNormals[i].faceNormals !== undefined) {\n morphNormal.faceNormals = [];\n\n for (j = 0, jl = morphNormals[i].faceNormals.length; j < jl; j++) {\n morphNormal.faceNormals.push(morphNormals[i].faceNormals[j].clone());\n }\n }\n\n this.morphNormals.push(morphNormal);\n } // skin weights\n\n\n var skinWeights = source.skinWeights;\n\n for (i = 0, il = skinWeights.length; i < il; i++) {\n this.skinWeights.push(skinWeights[i].clone());\n } // skin indices\n\n\n var skinIndices = source.skinIndices;\n\n for (i = 0, il = skinIndices.length; i < il; i++) {\n this.skinIndices.push(skinIndices[i].clone());\n } // line distances\n\n\n var lineDistances = source.lineDistances;\n\n for (i = 0, il = lineDistances.length; i < il; i++) {\n this.lineDistances.push(lineDistances[i]);\n } // bounding box\n\n\n var boundingBox = source.boundingBox;\n\n if (boundingBox !== null) {\n this.boundingBox = boundingBox.clone();\n } // bounding sphere\n\n\n var boundingSphere = source.boundingSphere;\n\n if (boundingSphere !== null) {\n this.boundingSphere = boundingSphere.clone();\n } // update flags\n\n\n this.elementsNeedUpdate = source.elementsNeedUpdate;\n this.verticesNeedUpdate = source.verticesNeedUpdate;\n this.uvsNeedUpdate = source.uvsNeedUpdate;\n this.normalsNeedUpdate = source.normalsNeedUpdate;\n this.colorsNeedUpdate = source.colorsNeedUpdate;\n this.lineDistancesNeedUpdate = source.lineDistancesNeedUpdate;\n this.groupsNeedUpdate = source.groupsNeedUpdate;\n return this;\n },\n dispose: function dispose() {\n this.dispatchEvent({\n type: 'dispose'\n });\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author Mugen87 / https://github.com/Mugen87\n */\n// BoxGeometry\n\nvar BoxGeometry = /*#__PURE__*/function (_Geometry) {\n _inherits(BoxGeometry, _Geometry);\n\n var _super = _createSuper(BoxGeometry);\n\n function BoxGeometry(width, height, depth, widthSegments, heightSegments, depthSegments) {\n var _this2;\n\n _classCallCheck(this, BoxGeometry);\n\n _this2 = _super.call(this);\n _this2.type = 'BoxGeometry';\n _this2.parameters = {\n width: width,\n height: height,\n depth: depth,\n widthSegments: widthSegments,\n heightSegments: heightSegments,\n depthSegments: depthSegments\n };\n\n _this2.fromBufferGeometry(new BoxBufferGeometry(width, height, depth, widthSegments, heightSegments, depthSegments));\n\n _this2.mergeVertices();\n\n return _this2;\n }\n\n return BoxGeometry;\n}(Geometry); // BoxBufferGeometry\n\n\nvar BoxBufferGeometry = /*#__PURE__*/function (_BufferGeometry) {\n _inherits(BoxBufferGeometry, _BufferGeometry);\n\n var _super2 = _createSuper(BoxBufferGeometry);\n\n function BoxBufferGeometry(width, height, depth, widthSegments, heightSegments, depthSegments) {\n var _this3;\n\n _classCallCheck(this, BoxBufferGeometry);\n\n _this3 = _super2.call(this);\n _this3.type = 'BoxBufferGeometry';\n _this3.parameters = {\n width: width,\n height: height,\n depth: depth,\n widthSegments: widthSegments,\n heightSegments: heightSegments,\n depthSegments: depthSegments\n };\n\n var scope = _assertThisInitialized(_this3);\n\n width = width || 1;\n height = height || 1;\n depth = depth || 1; // segments\n\n widthSegments = Math.floor(widthSegments) || 1;\n heightSegments = Math.floor(heightSegments) || 1;\n depthSegments = Math.floor(depthSegments) || 1; // buffers\n\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = []; // helper variables\n\n var numberOfVertices = 0;\n var groupStart = 0; // build each side of the box geometry\n\n buildPlane('z', 'y', 'x', -1, -1, depth, height, width, depthSegments, heightSegments, 0); // px\n\n buildPlane('z', 'y', 'x', 1, -1, depth, height, -width, depthSegments, heightSegments, 1); // nx\n\n buildPlane('x', 'z', 'y', 1, 1, width, depth, height, widthSegments, depthSegments, 2); // py\n\n buildPlane('x', 'z', 'y', 1, -1, width, depth, -height, widthSegments, depthSegments, 3); // ny\n\n buildPlane('x', 'y', 'z', 1, -1, width, height, depth, widthSegments, heightSegments, 4); // pz\n\n buildPlane('x', 'y', 'z', -1, -1, width, height, -depth, widthSegments, heightSegments, 5); // nz\n // build geometry\n\n _this3.setIndex(indices);\n\n _this3.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n\n _this3.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n\n _this3.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\n\n function buildPlane(u, v, w, udir, vdir, width, height, depth, gridX, gridY, materialIndex) {\n var segmentWidth = width / gridX;\n var segmentHeight = height / gridY;\n var widthHalf = width / 2;\n var heightHalf = height / 2;\n var depthHalf = depth / 2;\n var gridX1 = gridX + 1;\n var gridY1 = gridY + 1;\n var vertexCounter = 0;\n var groupCount = 0;\n var ix, iy;\n var vector = new Vector3(); // generate vertices, normals and uvs\n\n for (iy = 0; iy < gridY1; iy++) {\n var y = iy * segmentHeight - heightHalf;\n\n for (ix = 0; ix < gridX1; ix++) {\n var x = ix * segmentWidth - widthHalf; // set values to correct vector component\n\n vector[u] = x * udir;\n vector[v] = y * vdir;\n vector[w] = depthHalf; // now apply vector to vertex buffer\n\n vertices.push(vector.x, vector.y, vector.z); // set values to correct vector component\n\n vector[u] = 0;\n vector[v] = 0;\n vector[w] = depth > 0 ? 1 : -1; // now apply vector to normal buffer\n\n normals.push(vector.x, vector.y, vector.z); // uvs\n\n uvs.push(ix / gridX);\n uvs.push(1 - iy / gridY); // counters\n\n vertexCounter += 1;\n }\n } // indices\n // 1. you need three indices to draw a single face\n // 2. a single segment consists of two faces\n // 3. so we need to generate six (2*3) indices per segment\n\n\n for (iy = 0; iy < gridY; iy++) {\n for (ix = 0; ix < gridX; ix++) {\n var a = numberOfVertices + ix + gridX1 * iy;\n var b = numberOfVertices + ix + gridX1 * (iy + 1);\n var c = numberOfVertices + (ix + 1) + gridX1 * (iy + 1);\n var d = numberOfVertices + (ix + 1) + gridX1 * iy; // faces\n\n indices.push(a, b, d);\n indices.push(b, c, d); // increase counter\n\n groupCount += 6;\n }\n } // add a group to the geometry. this will ensure multi material support\n\n\n scope.addGroup(groupStart, groupCount, materialIndex); // calculate new start value for groups\n\n groupStart += groupCount; // update total number of vertices\n\n numberOfVertices += vertexCounter;\n }\n\n return _this3;\n }\n\n return BoxBufferGeometry;\n}(BufferGeometry);\n/**\n * Uniform Utilities\n */\n\n\nfunction cloneUniforms(src) {\n var dst = {};\n\n for (var u in src) {\n dst[u] = {};\n\n for (var p in src[u]) {\n var property = src[u][p];\n\n if (property && (property.isColor || property.isMatrix3 || property.isMatrix4 || property.isVector2 || property.isVector3 || property.isVector4 || property.isTexture)) {\n dst[u][p] = property.clone();\n } else if (Array.isArray(property)) {\n dst[u][p] = property.slice();\n } else {\n dst[u][p] = property;\n }\n }\n }\n\n return dst;\n}\n\nfunction mergeUniforms(uniforms) {\n var merged = {};\n\n for (var u = 0; u < uniforms.length; u++) {\n var tmp = cloneUniforms(uniforms[u]);\n\n for (var p in tmp) {\n merged[p] = tmp[p];\n }\n }\n\n return merged;\n} // Legacy\n\n\nvar UniformsUtils = {\n clone: cloneUniforms,\n merge: mergeUniforms\n};\nvar default_vertex = \"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\";\nvar default_fragment = \"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\";\n/**\n * @author alteredq / http://alteredqualia.com/\n *\n * parameters = {\n * defines: { \"label\" : \"value\" },\n * uniforms: { \"parameter1\": { value: 1.0 }, \"parameter2\": { value2: 2 } },\n *\n * fragmentShader: ,\n * vertexShader: ,\n *\n * wireframe: ,\n * wireframeLinewidth: ,\n *\n * lights: ,\n *\n * skinning: ,\n * morphTargets: ,\n * morphNormals: \n * }\n */\n\nfunction ShaderMaterial(parameters) {\n Material.call(this);\n this.type = 'ShaderMaterial';\n this.defines = {};\n this.uniforms = {};\n this.vertexShader = default_vertex;\n this.fragmentShader = default_fragment;\n this.linewidth = 1;\n this.wireframe = false;\n this.wireframeLinewidth = 1;\n this.fog = false; // set to use scene fog\n\n this.lights = false; // set to use scene lights\n\n this.clipping = false; // set to use user-defined clipping planes\n\n this.skinning = false; // set to use skinning attribute streams\n\n this.morphTargets = false; // set to use morph targets\n\n this.morphNormals = false; // set to use morph normals\n\n this.extensions = {\n derivatives: false,\n // set to use derivatives\n fragDepth: false,\n // set to use fragment depth values\n drawBuffers: false,\n // set to use draw buffers\n shaderTextureLOD: false // set to use shader texture LOD\n\n }; // When rendered geometry doesn't include these attributes but the material does,\n // use these default values in WebGL. This avoids errors when buffer data is missing.\n\n this.defaultAttributeValues = {\n 'color': [1, 1, 1],\n 'uv': [0, 0],\n 'uv2': [0, 0]\n };\n this.index0AttributeName = undefined;\n this.uniformsNeedUpdate = false;\n\n if (parameters !== undefined) {\n if (parameters.attributes !== undefined) {\n console.error('THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead.');\n }\n\n this.setValues(parameters);\n }\n}\n\nShaderMaterial.prototype = Object.create(Material.prototype);\nShaderMaterial.prototype.constructor = ShaderMaterial;\nShaderMaterial.prototype.isShaderMaterial = true;\n\nShaderMaterial.prototype.copy = function (source) {\n Material.prototype.copy.call(this, source);\n this.fragmentShader = source.fragmentShader;\n this.vertexShader = source.vertexShader;\n this.uniforms = cloneUniforms(source.uniforms);\n this.defines = Object.assign({}, source.defines);\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n this.lights = source.lights;\n this.clipping = source.clipping;\n this.skinning = source.skinning;\n this.morphTargets = source.morphTargets;\n this.morphNormals = source.morphNormals;\n this.extensions = source.extensions;\n return this;\n};\n\nShaderMaterial.prototype.toJSON = function (meta) {\n var data = Material.prototype.toJSON.call(this, meta);\n data.uniforms = {};\n\n for (var name in this.uniforms) {\n var uniform = this.uniforms[name];\n var value = uniform.value;\n\n if (value && value.isTexture) {\n data.uniforms[name] = {\n type: 't',\n value: value.toJSON(meta).uuid\n };\n } else if (value && value.isColor) {\n data.uniforms[name] = {\n type: 'c',\n value: value.getHex()\n };\n } else if (value && value.isVector2) {\n data.uniforms[name] = {\n type: 'v2',\n value: value.toArray()\n };\n } else if (value && value.isVector3) {\n data.uniforms[name] = {\n type: 'v3',\n value: value.toArray()\n };\n } else if (value && value.isVector4) {\n data.uniforms[name] = {\n type: 'v4',\n value: value.toArray()\n };\n } else if (value && value.isMatrix3) {\n data.uniforms[name] = {\n type: 'm3',\n value: value.toArray()\n };\n } else if (value && value.isMatrix4) {\n data.uniforms[name] = {\n type: 'm4',\n value: value.toArray()\n };\n } else {\n data.uniforms[name] = {\n value: value\n }; // note: the array variants v2v, v3v, v4v, m4v and tv are not supported so far\n }\n }\n\n if (Object.keys(this.defines).length > 0) data.defines = this.defines;\n data.vertexShader = this.vertexShader;\n data.fragmentShader = this.fragmentShader;\n var extensions = {};\n\n for (var key in this.extensions) {\n if (this.extensions[key] === true) extensions[key] = true;\n }\n\n if (Object.keys(extensions).length > 0) data.extensions = extensions;\n return data;\n};\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author mikael emtinger / http://gomo.se/\n * @author WestLangley / http://github.com/WestLangley\n*/\n\n\nfunction Camera() {\n Object3D.call(this);\n this.type = 'Camera';\n this.matrixWorldInverse = new Matrix4();\n this.projectionMatrix = new Matrix4();\n this.projectionMatrixInverse = new Matrix4();\n}\n\nCamera.prototype = Object.assign(Object.create(Object3D.prototype), {\n constructor: Camera,\n isCamera: true,\n copy: function copy(source, recursive) {\n Object3D.prototype.copy.call(this, source, recursive);\n this.matrixWorldInverse.copy(source.matrixWorldInverse);\n this.projectionMatrix.copy(source.projectionMatrix);\n this.projectionMatrixInverse.copy(source.projectionMatrixInverse);\n return this;\n },\n getWorldDirection: function getWorldDirection(target) {\n if (target === undefined) {\n console.warn('THREE.Camera: .getWorldDirection() target is now required');\n target = new Vector3();\n }\n\n this.updateMatrixWorld(true);\n var e = this.matrixWorld.elements;\n return target.set(-e[8], -e[9], -e[10]).normalize();\n },\n updateMatrixWorld: function updateMatrixWorld(force) {\n Object3D.prototype.updateMatrixWorld.call(this, force);\n this.matrixWorldInverse.getInverse(this.matrixWorld);\n },\n clone: function clone() {\n return new this.constructor().copy(this);\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author greggman / http://games.greggman.com/\n * @author zz85 / http://www.lab4games.net/zz85/blog\n * @author tschw\n */\n\nfunction PerspectiveCamera(fov, aspect, near, far) {\n Camera.call(this);\n this.type = 'PerspectiveCamera';\n this.fov = fov !== undefined ? fov : 50;\n this.zoom = 1;\n this.near = near !== undefined ? near : 0.1;\n this.far = far !== undefined ? far : 2000;\n this.focus = 10;\n this.aspect = aspect !== undefined ? aspect : 1;\n this.view = null;\n this.filmGauge = 35; // width of the film (default in millimeters)\n\n this.filmOffset = 0; // horizontal film offset (same unit as gauge)\n\n this.updateProjectionMatrix();\n}\n\nPerspectiveCamera.prototype = Object.assign(Object.create(Camera.prototype), {\n constructor: PerspectiveCamera,\n isPerspectiveCamera: true,\n copy: function copy(source, recursive) {\n Camera.prototype.copy.call(this, source, recursive);\n this.fov = source.fov;\n this.zoom = source.zoom;\n this.near = source.near;\n this.far = source.far;\n this.focus = source.focus;\n this.aspect = source.aspect;\n this.view = source.view === null ? null : Object.assign({}, source.view);\n this.filmGauge = source.filmGauge;\n this.filmOffset = source.filmOffset;\n return this;\n },\n\n /**\n * Sets the FOV by focal length in respect to the current .filmGauge.\n *\n * The default film gauge is 35, so that the focal length can be specified for\n * a 35mm (full frame) camera.\n *\n * Values for focal length and film gauge must have the same unit.\n */\n setFocalLength: function setFocalLength(focalLength) {\n // see http://www.bobatkins.com/photography/technical/field_of_view.html\n var vExtentSlope = 0.5 * this.getFilmHeight() / focalLength;\n this.fov = _Math.RAD2DEG * 2 * Math.atan(vExtentSlope);\n this.updateProjectionMatrix();\n },\n\n /**\n * Calculates the focal length from the current .fov and .filmGauge.\n */\n getFocalLength: function getFocalLength() {\n var vExtentSlope = Math.tan(_Math.DEG2RAD * 0.5 * this.fov);\n return 0.5 * this.getFilmHeight() / vExtentSlope;\n },\n getEffectiveFOV: function getEffectiveFOV() {\n return _Math.RAD2DEG * 2 * Math.atan(Math.tan(_Math.DEG2RAD * 0.5 * this.fov) / this.zoom);\n },\n getFilmWidth: function getFilmWidth() {\n // film not completely covered in portrait format (aspect < 1)\n return this.filmGauge * Math.min(this.aspect, 1);\n },\n getFilmHeight: function getFilmHeight() {\n // film not completely covered in landscape format (aspect > 1)\n return this.filmGauge / Math.max(this.aspect, 1);\n },\n\n /**\n * Sets an offset in a larger frustum. This is useful for multi-window or\n * multi-monitor/multi-machine setups.\n *\n * For example, if you have 3x2 monitors and each monitor is 1920x1080 and\n * the monitors are in grid like this\n *\n * +---+---+---+\n * | A | B | C |\n * +---+---+---+\n * | D | E | F |\n * +---+---+---+\n *\n * then for each monitor you would call it like this\n *\n * var w = 1920;\n * var h = 1080;\n * var fullWidth = w * 3;\n * var fullHeight = h * 2;\n *\n * --A--\n * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );\n * --B--\n * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );\n * --C--\n * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );\n * --D--\n * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );\n * --E--\n * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );\n * --F--\n * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );\n *\n * Note there is no reason monitors have to be the same size or in a grid.\n */\n setViewOffset: function setViewOffset(fullWidth, fullHeight, x, y, width, height) {\n this.aspect = fullWidth / fullHeight;\n\n if (this.view === null) {\n this.view = {\n enabled: true,\n fullWidth: 1,\n fullHeight: 1,\n offsetX: 0,\n offsetY: 0,\n width: 1,\n height: 1\n };\n }\n\n this.view.enabled = true;\n this.view.fullWidth = fullWidth;\n this.view.fullHeight = fullHeight;\n this.view.offsetX = x;\n this.view.offsetY = y;\n this.view.width = width;\n this.view.height = height;\n this.updateProjectionMatrix();\n },\n clearViewOffset: function clearViewOffset() {\n if (this.view !== null) {\n this.view.enabled = false;\n }\n\n this.updateProjectionMatrix();\n },\n updateProjectionMatrix: function updateProjectionMatrix() {\n var near = this.near,\n top = near * Math.tan(_Math.DEG2RAD * 0.5 * this.fov) / this.zoom,\n height = 2 * top,\n width = this.aspect * height,\n left = -0.5 * width,\n view = this.view;\n\n if (this.view !== null && this.view.enabled) {\n var fullWidth = view.fullWidth,\n fullHeight = view.fullHeight;\n left += view.offsetX * width / fullWidth;\n top -= view.offsetY * height / fullHeight;\n width *= view.width / fullWidth;\n height *= view.height / fullHeight;\n }\n\n var skew = this.filmOffset;\n if (skew !== 0) left += near * skew / this.getFilmWidth();\n this.projectionMatrix.makePerspective(left, left + width, top, top - height, near, this.far);\n this.projectionMatrixInverse.getInverse(this.projectionMatrix);\n },\n toJSON: function toJSON(meta) {\n var data = Object3D.prototype.toJSON.call(this, meta);\n data.object.fov = this.fov;\n data.object.zoom = this.zoom;\n data.object.near = this.near;\n data.object.far = this.far;\n data.object.focus = this.focus;\n data.object.aspect = this.aspect;\n if (this.view !== null) data.object.view = Object.assign({}, this.view);\n data.object.filmGauge = this.filmGauge;\n data.object.filmOffset = this.filmOffset;\n return data;\n }\n});\n/**\n * Camera for rendering cube maps\n *\t- renders scene into axis-aligned cube\n *\n * @author alteredq / http://alteredqualia.com/\n */\n\nvar fov = 90,\n aspect = 1;\n\nfunction CubeCamera(near, far, cubeResolution, options) {\n Object3D.call(this);\n this.type = 'CubeCamera';\n var cameraPX = new PerspectiveCamera(fov, aspect, near, far);\n cameraPX.up.set(0, -1, 0);\n cameraPX.lookAt(new Vector3(1, 0, 0));\n this.add(cameraPX);\n var cameraNX = new PerspectiveCamera(fov, aspect, near, far);\n cameraNX.up.set(0, -1, 0);\n cameraNX.lookAt(new Vector3(-1, 0, 0));\n this.add(cameraNX);\n var cameraPY = new PerspectiveCamera(fov, aspect, near, far);\n cameraPY.up.set(0, 0, 1);\n cameraPY.lookAt(new Vector3(0, 1, 0));\n this.add(cameraPY);\n var cameraNY = new PerspectiveCamera(fov, aspect, near, far);\n cameraNY.up.set(0, 0, -1);\n cameraNY.lookAt(new Vector3(0, -1, 0));\n this.add(cameraNY);\n var cameraPZ = new PerspectiveCamera(fov, aspect, near, far);\n cameraPZ.up.set(0, -1, 0);\n cameraPZ.lookAt(new Vector3(0, 0, 1));\n this.add(cameraPZ);\n var cameraNZ = new PerspectiveCamera(fov, aspect, near, far);\n cameraNZ.up.set(0, -1, 0);\n cameraNZ.lookAt(new Vector3(0, 0, -1));\n this.add(cameraNZ);\n options = options || {\n format: RGBFormat,\n magFilter: LinearFilter,\n minFilter: LinearFilter\n };\n this.renderTarget = new WebGLRenderTargetCube(cubeResolution, cubeResolution, options);\n this.renderTarget.texture.name = \"CubeCamera\";\n\n this.update = function (renderer, scene) {\n if (this.parent === null) this.updateMatrixWorld();\n var currentRenderTarget = renderer.getRenderTarget();\n var renderTarget = this.renderTarget;\n var generateMipmaps = renderTarget.texture.generateMipmaps;\n renderTarget.texture.generateMipmaps = false;\n renderer.setRenderTarget(renderTarget, 0);\n renderer.render(scene, cameraPX);\n renderer.setRenderTarget(renderTarget, 1);\n renderer.render(scene, cameraNX);\n renderer.setRenderTarget(renderTarget, 2);\n renderer.render(scene, cameraPY);\n renderer.setRenderTarget(renderTarget, 3);\n renderer.render(scene, cameraNY);\n renderer.setRenderTarget(renderTarget, 4);\n renderer.render(scene, cameraPZ);\n renderTarget.texture.generateMipmaps = generateMipmaps;\n renderer.setRenderTarget(renderTarget, 5);\n renderer.render(scene, cameraNZ);\n renderer.setRenderTarget(currentRenderTarget);\n };\n\n this.clear = function (renderer, color, depth, stencil) {\n var currentRenderTarget = renderer.getRenderTarget();\n var renderTarget = this.renderTarget;\n\n for (var i = 0; i < 6; i++) {\n renderer.setRenderTarget(renderTarget, i);\n renderer.clear(color, depth, stencil);\n }\n\n renderer.setRenderTarget(currentRenderTarget);\n };\n}\n\nCubeCamera.prototype = Object.create(Object3D.prototype);\nCubeCamera.prototype.constructor = CubeCamera;\n/**\n * @author alteredq / http://alteredqualia.com\n * @author WestLangley / http://github.com/WestLangley\n */\n\nfunction WebGLRenderTargetCube(width, height, options) {\n WebGLRenderTarget.call(this, width, height, options);\n}\n\nWebGLRenderTargetCube.prototype = Object.create(WebGLRenderTarget.prototype);\nWebGLRenderTargetCube.prototype.constructor = WebGLRenderTargetCube;\nWebGLRenderTargetCube.prototype.isWebGLRenderTargetCube = true;\n\nWebGLRenderTargetCube.prototype.fromEquirectangularTexture = function (renderer, texture) {\n this.texture.type = texture.type;\n this.texture.format = texture.format;\n this.texture.encoding = texture.encoding;\n var scene = new Scene();\n var shader = {\n uniforms: {\n tEquirect: {\n value: null\n }\n },\n vertexShader: [\"varying vec3 vWorldDirection;\", \"vec3 transformDirection( in vec3 dir, in mat4 matrix ) {\", \"\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\", \"}\", \"void main() {\", \"\tvWorldDirection = transformDirection( position, modelMatrix );\", \"\t#include \", \"\t#include \", \"}\"].join('\\n'),\n fragmentShader: [\"uniform sampler2D tEquirect;\", \"varying vec3 vWorldDirection;\", \"#define RECIPROCAL_PI 0.31830988618\", \"#define RECIPROCAL_PI2 0.15915494\", \"void main() {\", \"\tvec3 direction = normalize( vWorldDirection );\", \"\tvec2 sampleUV;\", \"\tsampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\", \"\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\", \"\tgl_FragColor = texture2D( tEquirect, sampleUV );\", \"}\"].join('\\n')\n };\n var material = new ShaderMaterial({\n type: 'CubemapFromEquirect',\n uniforms: cloneUniforms(shader.uniforms),\n vertexShader: shader.vertexShader,\n fragmentShader: shader.fragmentShader,\n side: BackSide,\n blending: NoBlending\n });\n material.uniforms.tEquirect.value = texture;\n var mesh = new Mesh(new BoxBufferGeometry(5, 5, 5), material);\n scene.add(mesh);\n var camera = new CubeCamera(1, 10, 1);\n camera.renderTarget = this;\n camera.renderTarget.texture.name = 'CubeCameraTexture';\n camera.update(renderer, scene);\n mesh.geometry.dispose();\n mesh.material.dispose();\n return this;\n};\n/**\n * @author alteredq / http://alteredqualia.com/\n */\n\n\nfunction DataTexture(data, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, encoding) {\n Texture.call(this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding);\n this.image = {\n data: data || null,\n width: width || 1,\n height: height || 1\n };\n this.magFilter = magFilter !== undefined ? magFilter : NearestFilter;\n this.minFilter = minFilter !== undefined ? minFilter : NearestFilter;\n this.generateMipmaps = false;\n this.flipY = false;\n this.unpackAlignment = 1;\n this.needsUpdate = true;\n}\n\nDataTexture.prototype = Object.create(Texture.prototype);\nDataTexture.prototype.constructor = DataTexture;\nDataTexture.prototype.isDataTexture = true;\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author alteredq / http://alteredqualia.com/\n * @author bhouston / http://clara.io\n */\n\nvar _sphere$1 = new Sphere();\n\nvar _vector$5 = new Vector3();\n\nfunction Frustum(p0, p1, p2, p3, p4, p5) {\n this.planes = [p0 !== undefined ? p0 : new Plane(), p1 !== undefined ? p1 : new Plane(), p2 !== undefined ? p2 : new Plane(), p3 !== undefined ? p3 : new Plane(), p4 !== undefined ? p4 : new Plane(), p5 !== undefined ? p5 : new Plane()];\n}\n\nObject.assign(Frustum.prototype, {\n set: function set(p0, p1, p2, p3, p4, p5) {\n var planes = this.planes;\n planes[0].copy(p0);\n planes[1].copy(p1);\n planes[2].copy(p2);\n planes[3].copy(p3);\n planes[4].copy(p4);\n planes[5].copy(p5);\n return this;\n },\n clone: function clone() {\n return new this.constructor().copy(this);\n },\n copy: function copy(frustum) {\n var planes = this.planes;\n\n for (var i = 0; i < 6; i++) {\n planes[i].copy(frustum.planes[i]);\n }\n\n return this;\n },\n setFromMatrix: function setFromMatrix(m) {\n var planes = this.planes;\n var me = m.elements;\n var me0 = me[0],\n me1 = me[1],\n me2 = me[2],\n me3 = me[3];\n var me4 = me[4],\n me5 = me[5],\n me6 = me[6],\n me7 = me[7];\n var me8 = me[8],\n me9 = me[9],\n me10 = me[10],\n me11 = me[11];\n var me12 = me[12],\n me13 = me[13],\n me14 = me[14],\n me15 = me[15];\n planes[0].setComponents(me3 - me0, me7 - me4, me11 - me8, me15 - me12).normalize();\n planes[1].setComponents(me3 + me0, me7 + me4, me11 + me8, me15 + me12).normalize();\n planes[2].setComponents(me3 + me1, me7 + me5, me11 + me9, me15 + me13).normalize();\n planes[3].setComponents(me3 - me1, me7 - me5, me11 - me9, me15 - me13).normalize();\n planes[4].setComponents(me3 - me2, me7 - me6, me11 - me10, me15 - me14).normalize();\n planes[5].setComponents(me3 + me2, me7 + me6, me11 + me10, me15 + me14).normalize();\n return this;\n },\n intersectsObject: function intersectsObject(object) {\n var geometry = object.geometry;\n if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n\n _sphere$1.copy(geometry.boundingSphere).applyMatrix4(object.matrixWorld);\n\n return this.intersectsSphere(_sphere$1);\n },\n intersectsSprite: function intersectsSprite(sprite) {\n _sphere$1.center.set(0, 0, 0);\n\n _sphere$1.radius = 0.7071067811865476;\n\n _sphere$1.applyMatrix4(sprite.matrixWorld);\n\n return this.intersectsSphere(_sphere$1);\n },\n intersectsSphere: function intersectsSphere(sphere) {\n var planes = this.planes;\n var center = sphere.center;\n var negRadius = -sphere.radius;\n\n for (var i = 0; i < 6; i++) {\n var distance = planes[i].distanceToPoint(center);\n\n if (distance < negRadius) {\n return false;\n }\n }\n\n return true;\n },\n intersectsBox: function intersectsBox(box) {\n var planes = this.planes;\n\n for (var i = 0; i < 6; i++) {\n var plane = planes[i]; // corner at max distance\n\n _vector$5.x = plane.normal.x > 0 ? box.max.x : box.min.x;\n _vector$5.y = plane.normal.y > 0 ? box.max.y : box.min.y;\n _vector$5.z = plane.normal.z > 0 ? box.max.z : box.min.z;\n\n if (plane.distanceToPoint(_vector$5) < 0) {\n return false;\n }\n }\n\n return true;\n },\n containsPoint: function containsPoint(point) {\n var planes = this.planes;\n\n for (var i = 0; i < 6; i++) {\n if (planes[i].distanceToPoint(point) < 0) {\n return false;\n }\n }\n\n return true;\n }\n});\nvar alphamap_fragment = \"#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\\n#endif\";\nvar alphamap_pars_fragment = \"#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\nvar alphatest_fragment = \"#ifdef ALPHATEST\\n\\tif ( diffuseColor.a < ALPHATEST ) discard;\\n#endif\";\nvar aomap_fragment = \"#ifdef USE_AOMAP\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\\t\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\\n\\t#endif\\n#endif\";\nvar aomap_pars_fragment = \"#ifdef USE_AOMAP\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n#endif\";\nvar begin_vertex = \"vec3 transformed = vec3( position );\";\nvar beginnormal_vertex = \"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\";\nvar bsdfs = \"vec2 integrateSpecularBRDF( const in float dotNV, const in float roughness ) {\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\treturn vec2( -1.04, 1.04 ) * a004 + r.zw;\\n}\\nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\\n\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\tif( cutoffDistance > 0.0 ) {\\n\\t\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t}\\n\\treturn distanceFalloff;\\n#else\\n\\tif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\\n\\t\\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\\n\\t}\\n\\treturn 1.0;\\n#endif\\n}\\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\\n\\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\\n\\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\\n}\\nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {\\n\\tfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );\\n\\tvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;\\n\\treturn Fr * fresnel + F0;\\n}\\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\treturn 1.0 / ( gl * gv );\\n}\\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( incidentLight.direction + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, incidentLight.direction ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\tfloat D = D_GGX( alpha, dotNH );\\n\\treturn F * ( G * D );\\n}\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\tfloat dotNV = saturate( dot( N, V ) );\\n\\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\treturn uv;\\n}\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\\tfloat l = length( f );\\n\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n}\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\\tfloat x = dot( v1, v2 );\\n\\tfloat y = abs( x );\\n\\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\n\\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\n\\tfloat v = a / b;\\n\\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\n\\treturn cross( v1, v2 ) * theta_sintheta;\\n}\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\\tvec3 lightNormal = cross( v1, v2 );\\n\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\\tvec3 T1, T2;\\n\\tT1 = normalize( V - N * dot( V, N ) );\\n\\tT2 = - cross( N, T1 );\\n\\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\n\\tvec3 coords[ 4 ];\\n\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\\tvec3 vectorFormFactor = vec3( 0.0 );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\n\\treturn vec3( result );\\n}\\nvec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\\n\\treturn specularColor * brdf.x + brdf.y;\\n}\\nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\tvec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );\\n\\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\\n\\tvec3 FssEss = F * brdf.x + brdf.y;\\n\\tfloat Ess = brdf.x + brdf.y;\\n\\tfloat Ems = 1.0 - Ess;\\n\\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\\tsingleScatter += FssEss;\\n\\tmultiScatter += Fms * Ems;\\n}\\nfloat G_BlinnPhong_Implicit( ) {\\n\\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\\n\\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n}\\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\\n\\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\\n}\\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\\n\\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\\n}\\n#if defined( USE_SHEEN )\\nfloat D_Charlie(float roughness, float NoH) {\\n\\tfloat invAlpha = 1.0 / roughness;\\n\\tfloat cos2h = NoH * NoH;\\n\\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\\treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\\n}\\nfloat V_Neubelt(float NoV, float NoL) {\\n\\treturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));\\n}\\nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {\\n\\tvec3 N = geometry.normal;\\n\\tvec3 V = geometry.viewDir;\\n\\tvec3 H = normalize( V + L );\\n\\tfloat dotNH = saturate( dot( N, H ) );\\n\\treturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );\\n}\\n#endif\";\nvar bumpmap_pars_fragment = \"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vUv );\\n\\t\\tvec2 dSTdy = dFdy( vUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\\n\\t\\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\\n\\t\\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 );\\n\\t\\tfDet *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\";\nvar clipping_planes_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvec4 plane;\\n\\t#pragma unroll_loop\\n\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\tplane = clippingPlanes[ i ];\\n\\t\\tif ( dot( vViewPosition, plane.xyz ) > plane.w ) discard;\\n\\t}\\n\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\tbool clipped = true;\\n\\t\\t#pragma unroll_loop\\n\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tclipped = ( dot( vViewPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t}\\n\\t\\tif ( clipped ) discard;\\n\\t#endif\\n#endif\";\nvar clipping_planes_pars_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\t#if ! defined( STANDARD ) && ! defined( PHONG ) && ! defined( MATCAP )\\n\\t\\tvarying vec3 vViewPosition;\\n\\t#endif\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\";\nvar clipping_planes_pars_vertex = \"#if NUM_CLIPPING_PLANES > 0 && ! defined( STANDARD ) && ! defined( PHONG ) && ! defined( MATCAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\";\nvar clipping_planes_vertex = \"#if NUM_CLIPPING_PLANES > 0 && ! defined( STANDARD ) && ! defined( PHONG ) && ! defined( MATCAP )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\";\nvar color_fragment = \"#ifdef USE_COLOR\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\";\nvar color_pars_fragment = \"#ifdef USE_COLOR\\n\\tvarying vec3 vColor;\\n#endif\";\nvar color_pars_vertex = \"#ifdef USE_COLOR\\n\\tvarying vec3 vColor;\\n#endif\";\nvar color_vertex = \"#ifdef USE_COLOR\\n\\tvColor.xyz = color.xyz;\\n#endif\";\nvar common = \"#define PI 3.14159265359\\n#define PI2 6.28318530718\\n#define PI_HALF 1.5707963267949\\n#define RECIPROCAL_PI 0.31830988618\\n#define RECIPROCAL_PI2 0.15915494\\n#define LOG2 1.442695\\n#define EPSILON 1e-6\\n#ifndef saturate\\n#define saturate(a) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement(a) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract(sin(sn) * c);\\n}\\n#ifdef HIGH_PRECISION\\n\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\\tfloat max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\n\\tfloat precisionSafeLength( vec3 v ) {\\n\\t\\tfloat maxComponent = max3( abs( v ) );\\n\\t\\treturn length( v / maxComponent ) * maxComponent;\\n\\t}\\n#endif\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\nstruct GeometricContext {\\n\\tvec3 position;\\n\\tvec3 normal;\\n\\tvec3 viewDir;\\n#ifdef CLEARCOAT\\n\\tvec3 clearcoatNormal;\\n#endif\\n};\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\tfloat distance = dot( planeNormal, point - pointOnPlane );\\n\\treturn - distance * planeNormal + point;\\n}\\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\treturn sign( dot( point - pointOnPlane, planeNormal ) );\\n}\\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\\n}\\nmat3 transposeMat3( const in mat3 m ) {\\n\\tmat3 tmp;\\n\\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\n\\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\n\\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\n\\treturn tmp;\\n}\\nfloat linearToRelativeLuminance( const in vec3 color ) {\\n\\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\\n\\treturn dot( weights, color.rgb );\\n}\\nbool isPerspectiveMatrix( mat4 m ) {\\n return m[ 2 ][ 3 ] == - 1.0;\\n}\";\nvar cube_uv_reflection_fragment = \"#ifdef ENVMAP_TYPE_CUBE_UV\\n#define cubeUV_textureSize (1024.0)\\nint getFaceFromDirection(vec3 direction) {\\n\\tvec3 absDirection = abs(direction);\\n\\tint face = -1;\\n\\tif( absDirection.x > absDirection.z ) {\\n\\t\\tif(absDirection.x > absDirection.y )\\n\\t\\t\\tface = direction.x > 0.0 ? 0 : 3;\\n\\t\\telse\\n\\t\\t\\tface = direction.y > 0.0 ? 1 : 4;\\n\\t}\\n\\telse {\\n\\t\\tif(absDirection.z > absDirection.y )\\n\\t\\t\\tface = direction.z > 0.0 ? 2 : 5;\\n\\t\\telse\\n\\t\\t\\tface = direction.y > 0.0 ? 1 : 4;\\n\\t}\\n\\treturn face;\\n}\\n#define cubeUV_maxLods1 (log2(cubeUV_textureSize*0.25) - 1.0)\\n#define cubeUV_rangeClamp (exp2((6.0 - 1.0) * 2.0))\\nvec2 MipLevelInfo( vec3 vec, float roughnessLevel, float roughness ) {\\n\\tfloat scale = exp2(cubeUV_maxLods1 - roughnessLevel);\\n\\tfloat dxRoughness = dFdx(roughness);\\n\\tfloat dyRoughness = dFdy(roughness);\\n\\tvec3 dx = dFdx( vec * scale * dxRoughness );\\n\\tvec3 dy = dFdy( vec * scale * dyRoughness );\\n\\tfloat d = max( dot( dx, dx ), dot( dy, dy ) );\\n\\td = clamp(d, 1.0, cubeUV_rangeClamp);\\n\\tfloat mipLevel = 0.5 * log2(d);\\n\\treturn vec2(floor(mipLevel), fract(mipLevel));\\n}\\n#define cubeUV_maxLods2 (log2(cubeUV_textureSize*0.25) - 2.0)\\n#define cubeUV_rcpTextureSize (1.0 / cubeUV_textureSize)\\nvec2 getCubeUV(vec3 direction, float roughnessLevel, float mipLevel) {\\n\\tmipLevel = roughnessLevel > cubeUV_maxLods2 - 3.0 ? 0.0 : mipLevel;\\n\\tfloat a = 16.0 * cubeUV_rcpTextureSize;\\n\\tvec2 exp2_packed = exp2( vec2( roughnessLevel, mipLevel ) );\\n\\tvec2 rcp_exp2_packed = vec2( 1.0 ) / exp2_packed;\\n\\tfloat powScale = exp2_packed.x * exp2_packed.y;\\n\\tfloat scale = rcp_exp2_packed.x * rcp_exp2_packed.y * 0.25;\\n\\tfloat mipOffset = 0.75*(1.0 - rcp_exp2_packed.y) * rcp_exp2_packed.x;\\n\\tbool bRes = mipLevel == 0.0;\\n\\tscale = bRes && (scale < a) ? a : scale;\\n\\tvec3 r;\\n\\tvec2 offset;\\n\\tint face = getFaceFromDirection(direction);\\n\\tfloat rcpPowScale = 1.0 / powScale;\\n\\tif( face == 0) {\\n\\t\\tr = vec3(direction.x, -direction.z, direction.y);\\n\\t\\toffset = vec2(0.0+mipOffset,0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 1) {\\n\\t\\tr = vec3(direction.y, direction.x, direction.z);\\n\\t\\toffset = vec2(scale+mipOffset, 0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 2) {\\n\\t\\tr = vec3(direction.z, direction.x, direction.y);\\n\\t\\toffset = vec2(2.0*scale+mipOffset, 0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 3) {\\n\\t\\tr = vec3(direction.x, direction.z, direction.y);\\n\\t\\toffset = vec2(0.0+mipOffset,0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\telse if( face == 4) {\\n\\t\\tr = vec3(direction.y, direction.x, -direction.z);\\n\\t\\toffset = vec2(scale+mipOffset, 0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\telse {\\n\\t\\tr = vec3(direction.z, -direction.x, direction.y);\\n\\t\\toffset = vec2(2.0*scale+mipOffset, 0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\tr = normalize(r);\\n\\tfloat texelOffset = 0.5 * cubeUV_rcpTextureSize;\\n\\tvec2 s = ( r.yz / abs( r.x ) + vec2( 1.0 ) ) * 0.5;\\n\\tvec2 base = offset + vec2( texelOffset );\\n\\treturn base + s * ( scale - 2.0 * texelOffset );\\n}\\n#define cubeUV_maxLods3 (log2(cubeUV_textureSize*0.25) - 3.0)\\nvec4 textureCubeUV( sampler2D envMap, vec3 reflectedDirection, float roughness ) {\\n\\tfloat roughnessVal = roughness* cubeUV_maxLods3;\\n\\tfloat r1 = floor(roughnessVal);\\n\\tfloat r2 = r1 + 1.0;\\n\\tfloat t = fract(roughnessVal);\\n\\tvec2 mipInfo = MipLevelInfo(reflectedDirection, r1, roughness);\\n\\tfloat s = mipInfo.y;\\n\\tfloat level0 = mipInfo.x;\\n\\tfloat level1 = level0 + 1.0;\\n\\tlevel1 = level1 > 5.0 ? 5.0 : level1;\\n\\tlevel0 += min( floor( s + 0.5 ), 5.0 );\\n\\tvec2 uv_10 = getCubeUV(reflectedDirection, r1, level0);\\n\\tvec4 color10 = envMapTexelToLinear(texture2D(envMap, uv_10));\\n\\tvec2 uv_20 = getCubeUV(reflectedDirection, r2, level0);\\n\\tvec4 color20 = envMapTexelToLinear(texture2D(envMap, uv_20));\\n\\tvec4 result = mix(color10, color20, t);\\n\\treturn vec4(result.rgb, 1.0);\\n}\\n#endif\";\nvar defaultnormal_vertex = \"vec3 transformedNormal = objectNormal;\\n#ifdef USE_INSTANCING\\n\\ttransformedNormal = mat3( instanceMatrix ) * transformedNormal;\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\\tvec3 transformedTangent = normalMatrix * objectTangent;\\n\\t#ifdef FLIP_SIDED\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\t#endif\\n#endif\";\nvar displacementmap_pars_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\";\nvar displacementmap_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\\n#endif\";\nvar emissivemap_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\\n\\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\";\nvar emissivemap_pars_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\";\nvar encodings_fragment = \"gl_FragColor = linearToOutputTexel( gl_FragColor );\";\nvar encodings_pars_fragment = \"\\nvec4 LinearToLinear( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\\n\\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\\n}\\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\\n\\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\\n}\\nvec4 sRGBToLinear( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\\n}\\nvec4 LinearTosRGB( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\n}\\nvec4 RGBEToLinear( in vec4 value ) {\\n\\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\\n}\\nvec4 LinearToRGBE( in vec4 value ) {\\n\\tfloat maxComponent = max( max( value.r, value.g ), value.b );\\n\\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\\n\\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\\n}\\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\\n}\\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\\n\\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\\n\\tM = ceil( M * 255.0 ) / 255.0;\\n\\treturn vec4( value.rgb / ( M * maxRange ), M );\\n}\\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\\n}\\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\\n\\tfloat D = max( maxRange / maxRGB, 1.0 );\\n\\tD = min( floor( D ) / 255.0, 1.0 );\\n\\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\\n}\\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\\nvec4 LinearToLogLuv( in vec4 value ) {\\n\\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\\n\\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\\n\\tvec4 vResult;\\n\\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\\n\\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\\n\\tvResult.w = fract( Le );\\n\\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\\n\\treturn vResult;\\n}\\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\\nvec4 LogLuvToLinear( in vec4 value ) {\\n\\tfloat Le = value.z * 255.0 + value.w;\\n\\tvec3 Xp_Y_XYZp;\\n\\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\\n\\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\\n\\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\\n\\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\\n\\treturn vec4( max( vRGB, 0.0 ), 1.0 );\\n}\";\nvar envmap_fragment = \"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvec3 cameraToFrag;\\n\\t\\t\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_EQUIREC )\\n\\t\\tvec2 sampleUV;\\n\\t\\treflectVec = normalize( reflectVec );\\n\\t\\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\t\\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\\n\\t\\tvec4 envColor = texture2D( envMap, sampleUV );\\n\\t#elif defined( ENVMAP_TYPE_SPHERE )\\n\\t\\treflectVec = normalize( reflectVec );\\n\\t\\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );\\n\\t\\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\tenvColor = envMapTexelToLinear( envColor );\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\";\nvar envmap_common_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\n\\tuniform int maxMipLevel;\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\t\\n#endif\";\nvar envmap_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float reflectivity;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\";\nvar envmap_pars_vertex = \"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\t\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\";\nvar envmap_vertex = \"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex;\\n\\t\\tif ( isOrthographic ) { \\n\\t\\t\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\nvar fog_vertex = \"#ifdef USE_FOG\\n\\tfogDepth = -mvPosition.z;\\n#endif\";\nvar fog_pars_vertex = \"#ifdef USE_FOG\\n\\tvarying float fogDepth;\\n#endif\";\nvar fog_fragment = \"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\";\nvar fog_pars_fragment = \"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\tvarying float fogDepth;\\n\\t#ifdef FOG_EXP2\\n\\t\\tuniform float fogDensity;\\n\\t#else\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\t#endif\\n#endif\";\nvar gradientmap_pars_fragment = \"#ifdef TOON\\n\\tuniform sampler2D gradientMap;\\n\\tvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\t\\tfloat dotNL = dot( normal, lightDirection );\\n\\t\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\t\\t#ifdef USE_GRADIENTMAP\\n\\t\\t\\treturn texture2D( gradientMap, coord ).rgb;\\n\\t\\t#else\\n\\t\\t\\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\\n\\t\\t#endif\\n\\t}\\n#endif\";\nvar lightmap_fragment = \"#ifdef USE_LIGHTMAP\\n\\treflectedLight.indirectDiffuse += PI * texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\\n#endif\";\nvar lightmap_pars_fragment = \"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\";\nvar lights_lambert_vertex = \"vec3 diffuse = vec3( 1.0 );\\nGeometricContext geometry;\\ngeometry.position = mvPosition.xyz;\\ngeometry.normal = normalize( transformedNormal );\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\\nGeometricContext backGeometry;\\nbackGeometry.position = geometry.position;\\nbackGeometry.normal = -geometry.normal;\\nbackGeometry.viewDir = geometry.viewDir;\\nvLightFront = vec3( 0.0 );\\nvIndirectFront = vec3( 0.0 );\\n#ifdef DOUBLE_SIDED\\n\\tvLightBack = vec3( 0.0 );\\n\\tvIndirectBack = vec3( 0.0 );\\n#endif\\nIncidentLight directLight;\\nfloat dotNL;\\nvec3 directLightColor_Diffuse;\\n#if NUM_POINT_LIGHTS > 0\\n\\t#pragma unroll_loop\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\t#pragma unroll_loop\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_DIR_LIGHTS > 0\\n\\t#pragma unroll_loop\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\t#pragma unroll_loop\\n\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\\n\\t\\t#endif\\n\\t}\\n#endif\";\nvar lights_pars_begin = \"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\nuniform vec3 lightProbe[ 9 ];\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\\treturn result;\\n}\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in GeometricContext geometry ) {\\n\\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\\n\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\\treturn irradiance;\\n}\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treturn irradiance;\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tint shadow;\\n\\t\\tfloat shadowBias;\\n\\t\\tfloat shadowRadius;\\n\\t\\tvec2 shadowMapSize;\\n\\t};\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tdirectLight.color = directionalLight.color;\\n\\t\\tdirectLight.direction = directionalLight.direction;\\n\\t\\tdirectLight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tint shadow;\\n\\t\\tfloat shadowBias;\\n\\t\\tfloat shadowRadius;\\n\\t\\tvec2 shadowMapSize;\\n\\t\\tfloat shadowCameraNear;\\n\\t\\tfloat shadowCameraFar;\\n\\t};\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tvec3 lVector = pointLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tdirectLight.color = pointLight.color;\\n\\t\\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t\\tint shadow;\\n\\t\\tfloat shadowBias;\\n\\t\\tfloat shadowRadius;\\n\\t\\tvec2 shadowMapSize;\\n\\t};\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tvec3 lVector = spotLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tfloat angleCos = dot( directLight.direction, spotLight.direction );\\n\\t\\tif ( angleCos > spotLight.coneCos ) {\\n\\t\\t\\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\t\\tdirectLight.color = spotLight.color;\\n\\t\\t\\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tdirectLight.visible = true;\\n\\t\\t} else {\\n\\t\\t\\tdirectLight.color = vec3( 0.0 );\\n\\t\\t\\tdirectLight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\tuniform sampler2D ltc_1;\\tuniform sampler2D ltc_2;\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\\n\\t\\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tirradiance *= PI;\\n\\t\\t#endif\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\";\nvar envmap_physical_pars_fragment = \"#if defined( USE_ENVMAP )\\n\\t#ifdef ENVMAP_MODE_REFRACTION\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n\\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\\n\\t\\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, queryVec, 1.0 );\\n\\t\\t#else\\n\\t\\t\\tvec4 envMapColor = vec4( 0.0 );\\n\\t\\t#endif\\n\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t}\\n\\tfloat getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {\\n\\t\\tfloat maxMIPLevelScalar = float( maxMIPLevel );\\n\\t\\tfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );\\n\\t\\tfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );\\n\\t\\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\\n\\t}\\n\\tvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t vec3 reflectVec = reflect( -viewDir, normal );\\n\\t\\t reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\\t\\t#else\\n\\t\\t vec3 reflectVec = refract( -viewDir, normal, refractionRatio );\\n\\t\\t#endif\\n\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\tfloat specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, queryReflectVec, roughness );\\n\\t\\t#elif defined( ENVMAP_TYPE_EQUIREC )\\n\\t\\t\\tvec2 sampleUV;\\n\\t\\t\\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\t\\t\\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_SPHERE )\\n\\t\\t\\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0,0.0,1.0 ) );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#endif\\n\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t}\\n#endif\";\nvar lights_phong_fragment = \"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\";\nvar lights_phong_pars_fragment = \"varying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\nstruct BlinnPhongMaterial {\\n\\tvec3\\tdiffuseColor;\\n\\tvec3\\tspecularColor;\\n\\tfloat\\tspecularShininess;\\n\\tfloat\\tspecularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t#ifdef TOON\\n\\t\\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\\n\\t#else\\n\\t\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\t\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#endif\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\\n#define Material_LightProbeLOD( material )\\t(0)\";\nvar lights_physical_fragment = \"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nmaterial.specularRoughness = clamp( roughnessFactor, 0.04, 1.0 );\\n#ifdef REFLECTIVITY\\n\\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\\n#endif\\n#ifdef CLEARCOAT\\n\\tmaterial.clearcoat = saturate( clearcoat );\\tmaterial.clearcoatRoughness = clamp( clearcoatRoughness, 0.04, 1.0 );\\n#endif\\n#ifdef USE_SHEEN\\n\\tmaterial.sheenColor = sheen;\\n#endif\";\nvar lights_physical_pars_fragment = \"struct PhysicalMaterial {\\n\\tvec3\\tdiffuseColor;\\n\\tfloat\\tspecularRoughness;\\n\\tvec3\\tspecularColor;\\n#ifdef CLEARCOAT\\n\\tfloat clearcoat;\\n\\tfloat clearcoatRoughness;\\n#endif\\n#ifdef USE_SHEEN\\n\\tvec3 sheenColor;\\n#endif\\n};\\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\\nfloat clearcoatDHRApprox( const in float roughness, const in float dotNL ) {\\n\\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometry.normal;\\n\\t\\tvec3 viewDir = geometry.viewDir;\\n\\t\\tvec3 position = geometry.position;\\n\\t\\tvec3 lightPos = rectAreaLight.position;\\n\\t\\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\\t\\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.specularRoughness;\\n\\t\\tvec3 rectCoords[ 4 ];\\n\\t\\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\\t\\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\n\\t\\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\n\\t\\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\n\\t\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\\t\\tvec4 t1 = texture2D( ltc_1, uv );\\n\\t\\tvec4 t2 = texture2D( ltc_2, uv );\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( t1.x, 0, t1.y ),\\n\\t\\t\\tvec3( 0, 1, 0 ),\\n\\t\\t\\tvec3( t1.z, 0, t1.w )\\n\\t\\t);\\n\\t\\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\n\\t\\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\n\\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\t#ifdef CLEARCOAT\\n\\t\\tfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\\n\\t\\tvec3 ccIrradiance = ccDotNL * directLight.color;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tccIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\\n\\t\\treflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\\n\\t#else\\n\\t\\tfloat clearcoatDHR = 0.0;\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(\\n\\t\\t\\tmaterial.specularRoughness,\\n\\t\\t\\tdirectLight.direction,\\n\\t\\t\\tgeometry,\\n\\t\\t\\tmaterial.sheenColor\\n\\t\\t);\\n\\t#else\\n\\t\\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);\\n\\t#endif\\n\\treflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\\t#ifdef CLEARCOAT\\n\\t\\tfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\\n\\t\\treflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\\n\\t\\tfloat ccDotNL = ccDotNV;\\n\\t\\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\\n\\t#else\\n\\t\\tfloat clearcoatDHR = 0.0;\\n\\t#endif\\n\\tfloat clearcoatInv = 1.0 - clearcoatDHR;\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\\n\\treflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering;\\n\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_Direct_RectArea\\t\\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\";\nvar lights_fragment_begin = \"\\nGeometricContext geometry;\\ngeometry.position = - vViewPosition;\\ngeometry.normal = normal;\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\n#ifdef CLEARCOAT\\n\\tgeometry.clearcoatNormal = clearcoatNormal;\\n#endif\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\t#pragma unroll_loop\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tdirectLight.color *= all( bvec3( pointLight.shadow, directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\t#pragma unroll_loop\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tdirectLight.color *= all( bvec3( spotLight.shadow, directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\t#pragma unroll_loop\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectLight.color *= all( bvec3( directionalLight.shadow, directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\t#pragma unroll_loop\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 iblIrradiance = vec3( 0.0 );\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\tirradiance += getLightProbeIrradiance( lightProbe, geometry );\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\t#pragma unroll_loop\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t}\\n\\t#endif\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tvec3 radiance = vec3( 0.0 );\\n\\tvec3 clearcoatRadiance = vec3( 0.0 );\\n#endif\";\nvar lights_fragment_maps = \"#if defined( RE_IndirectDiffuse )\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec3 lightMapIrradiance = texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tlightMapIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tiblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\\n\\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\tradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );\\n\\t#ifdef CLEARCOAT\\n\\t\\tclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );\\n\\t#endif\\n#endif\";\nvar lights_fragment_end = \"#if defined( RE_IndirectDiffuse )\\n\\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\\n#endif\";\nvar logdepthbuf_fragment = \"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\";\nvar logdepthbuf_pars_fragment = \"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";\nvar logdepthbuf_pars_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t\\tvarying float vIsPerspective;\\n\\t#else\\n\\t\\tuniform float logDepthBufFC;\\n\\t#endif\\n#endif\";\nvar logdepthbuf_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n\\t#else\\n\\t\\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\\n\\t\\t\\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\\n\\t\\t\\tgl_Position.z *= gl_Position.w;\\n\\t\\t}\\n\\t#endif\\n#endif\";\nvar map_fragment = \"#ifdef USE_MAP\\n\\tvec4 texelColor = texture2D( map, vUv );\\n\\ttexelColor = mapTexelToLinear( texelColor );\\n\\tdiffuseColor *= texelColor;\\n#endif\";\nvar map_pars_fragment = \"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\";\nvar map_particle_fragment = \"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n#endif\\n#ifdef USE_MAP\\n\\tvec4 mapTexel = texture2D( map, uv );\\n\\tdiffuseColor *= mapTexelToLinear( mapTexel );\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n#endif\";\nvar map_particle_pars_fragment = \"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\tuniform mat3 uvTransform;\\n#endif\\n#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\nvar metalnessmap_fragment = \"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\";\nvar metalnessmap_pars_fragment = \"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\";\nvar morphnormal_vertex = \"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\\n\\tobjectNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\\n\\tobjectNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\\n\\tobjectNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\\n#endif\";\nvar morphtarget_pars_vertex = \"#ifdef USE_MORPHTARGETS\\n\\t#ifndef USE_MORPHNORMALS\\n\\tuniform float morphTargetInfluences[ 8 ];\\n\\t#else\\n\\tuniform float morphTargetInfluences[ 4 ];\\n\\t#endif\\n#endif\";\nvar morphtarget_vertex = \"#ifdef USE_MORPHTARGETS\\n\\ttransformed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\\n\\ttransformed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\\n\\ttransformed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\\n\\ttransformed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\\n\\t#ifndef USE_MORPHNORMALS\\n\\ttransformed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\\n\\ttransformed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\\n\\ttransformed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\\n\\ttransformed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\\n\\t#endif\\n#endif\";\nvar normal_fragment_begin = \"#ifdef FLAT_SHADED\\n\\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\\n\\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n\\t#endif\\n\\t#ifdef USE_TANGENT\\n\\t\\tvec3 tangent = normalize( vTangent );\\n\\t\\tvec3 bitangent = normalize( vBitangent );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\ttangent = tangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n\\t\\t\\tbitangent = bitangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n\\t\\t#endif\\n\\t#endif\\n#endif\\nvec3 geometryNormal = normal;\";\nvar normal_fragment_maps = \"#ifdef OBJECTSPACE_NORMALMAP\\n\\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\t#ifdef FLIP_SIDED\\n\\t\\tnormal = - normal;\\n\\t#endif\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n\\t#endif\\n\\tnormal = normalize( normalMatrix * normal );\\n#elif defined( TANGENTSPACE_NORMALMAP )\\n\\t#ifdef USE_TANGENT\\n\\t\\tmat3 vTBN = mat3( tangent, bitangent, normal );\\n\\t\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\t\\tmapN.xy = normalScale * mapN.xy;\\n\\t\\tnormal = normalize( vTBN * mapN );\\n\\t#else\\n\\t\\tnormal = perturbNormal2Arb( -vViewPosition, normal, normalScale, normalMap );\\n\\t#endif\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\\n#endif\";\nvar normalmap_pars_fragment = \"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n#endif\\n#ifdef OBJECTSPACE_NORMALMAP\\n\\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\\n\\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 normalScale, in sampler2D normalMap ) {\\n\\t\\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\\n\\t\\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\\n\\t\\tvec2 st0 = dFdx( vUv.st );\\n\\t\\tvec2 st1 = dFdy( vUv.st );\\n\\t\\tfloat scale = sign( st1.t * st0.s - st0.t * st1.s );\\n\\t\\tvec3 S = normalize( ( q0 * st1.t - q1 * st0.t ) * scale );\\n\\t\\tvec3 T = normalize( ( - q0 * st1.s + q1 * st0.s ) * scale );\\n\\t\\tvec3 N = normalize( surf_norm );\\n\\t\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\t\\tmapN.xy *= normalScale;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tbool frontFacing = dot( cross( S, T ), N ) > 0.0;\\n\\t\\t\\tmapN.xy *= ( float( frontFacing ) * 2.0 - 1.0 );\\n\\t\\t#else\\n\\t\\t\\tmapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n\\t\\t#endif\\n\\t\\tmat3 tsn = mat3( S, T, N );\\n\\t\\treturn normalize( tsn * mapN );\\n\\t}\\n#endif\";\nvar clearcoat_normal_fragment_begin = \"#ifdef CLEARCOAT\\n\\tvec3 clearcoatNormal = geometryNormal;\\n#endif\";\nvar clearcoat_normal_fragment_maps = \"#ifdef USE_CLEARCOAT_NORMALMAP\\n\\t#ifdef USE_TANGENT\\n\\t\\tmat3 vTBN = mat3( tangent, bitangent, clearcoatNormal );\\n\\t\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\t\\tmapN.xy = clearcoatNormalScale * mapN.xy;\\n\\t\\tclearcoatNormal = normalize( vTBN * mapN );\\n\\t#else\\n\\t\\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatNormalScale, clearcoatNormalMap );\\n\\t#endif\\n#endif\";\nvar clearcoat_normalmap_pars_fragment = \"#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n#endif\";\nvar packing = \"vec3 packNormalToRGB( const in vec3 normal ) {\\n\\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\\treturn 2.0 * rgb.xyz - 1.0;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\nconst float ShiftRight8 = 1. / 256.;\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tvec4 r = vec4( fract( v * PackFactors ), v );\\n\\tr.yzw -= r.xyz * ShiftRight8;\\treturn r * PackUpscale;\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors );\\n}\\nvec4 encodeHalfRGBA ( vec2 v ) {\\n\\tvec4 encoded = vec4( 0.0 );\\n\\tconst vec2 offset = vec2( 1.0 / 255.0, 0.0 );\\n\\tencoded.xy = vec2( v.x, fract( v.x * 255.0 ) );\\n\\tencoded.xy = encoded.xy - ( encoded.yy * offset );\\n\\tencoded.zw = vec2( v.y, fract( v.y * 255.0 ) );\\n\\tencoded.zw = encoded.zw - ( encoded.ww * offset );\\n\\treturn encoded;\\n}\\nvec2 decodeHalfRGBA( vec4 v ) {\\n\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\\n\\treturn linearClipZ * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\\n}\";\nvar premultiplied_alpha_fragment = \"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\";\nvar project_vertex = \"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_INSTANCING\\n\\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\";\nvar dithering_fragment = \"#ifdef DITHERING\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\";\nvar dithering_pars_fragment = \"#ifdef DITHERING\\n\\tvec3 dithering( vec3 color ) {\\n\\t\\tfloat grid_position = rand( gl_FragCoord.xy );\\n\\t\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\\t\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\\t\\treturn color + dither_shift_RGB;\\n\\t}\\n#endif\";\nvar roughnessmap_fragment = \"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\n\\troughnessFactor *= texelRoughness.g;\\n#endif\";\nvar roughnessmap_pars_fragment = \"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\";\nvar shadowmap_pars_fragment = \"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\\t\\treturn decodeHalfRGBA( texture2D( shadow, uv ) );\\n\\t}\\n\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\\t\\tfloat occlusion = 1.0;\\n\\t\\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\\t\\tfloat hard_shadow = step( compare , distribution.x );\\n\\t\\tif (hard_shadow != 1.0 ) {\\n\\t\\t\\tfloat distance = compare - distribution.x ;\\n\\t\\t\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\\t\\t\\tfloat softness_probability = variance / (variance + distance * distance );\\t\\t\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\\t\\t\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\\t\\t}\\n\\t\\treturn occlusion;\\n\\t}\\n\\tfloat texture2DShadowLerp( sampler2D depths, vec2 size, vec2 uv, float compare ) {\\n\\t\\tconst vec2 offset = vec2( 0.0, 1.0 );\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / size;\\n\\t\\tvec2 centroidUV = ( floor( uv * size - 0.5 ) + 0.5 ) * texelSize;\\n\\t\\tfloat lb = texture2DCompare( depths, centroidUV + texelSize * offset.xx, compare );\\n\\t\\tfloat lt = texture2DCompare( depths, centroidUV + texelSize * offset.xy, compare );\\n\\t\\tfloat rb = texture2DCompare( depths, centroidUV + texelSize * offset.yx, compare );\\n\\t\\tfloat rt = texture2DCompare( depths, centroidUV + texelSize * offset.yy, compare );\\n\\t\\tvec2 f = fract( uv * size + 0.5 );\\n\\t\\tfloat a = mix( lb, lt, f.y );\\n\\t\\tfloat b = mix( rb, rt, f.y );\\n\\t\\tfloat c = mix( a, b, f.x );\\n\\t\\treturn c;\\n\\t}\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\\n\\t\\tbool inFrustum = all( inFrustumVec );\\n\\t\\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\\n\\t\\tbool frustumTest = all( frustumTestVec );\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx2 = dx0 / 2.0;\\n\\t\\t\\tfloat dy2 = dy0 / 2.0;\\n\\t\\t\\tfloat dx3 = dx1 / 2.0;\\n\\t\\t\\tfloat dy3 = dy1 / 2.0;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 17.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#else\\n\\t\\t\\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn shadow;\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\\t\\tdp += shadowBias;\\n\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#else\\n\\t\\t\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t#endif\\n\\t}\\n#endif\";\nvar shadowmap_pars_vertex = \"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n#endif\";\nvar shadowmap_vertex = \"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n#endif\";\nvar shadowmask_pars_fragment = \"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLight directionalLight;\\n\\t#pragma unroll_loop\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tshadow *= all( bvec2( directionalLight.shadow, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLight spotLight;\\n\\t#pragma unroll_loop\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tshadow *= all( bvec2( spotLight.shadow, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLight pointLight;\\n\\t#pragma unroll_loop\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tshadow *= all( bvec2( pointLight.shadow, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\t}\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\";\nvar skinbase_vertex = \"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\";\nvar skinning_pars_vertex = \"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\t#ifdef BONE_TEXTURE\\n\\t\\tuniform highp sampler2D boneTexture;\\n\\t\\tuniform int boneTextureSize;\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tfloat j = i * 4.0;\\n\\t\\t\\tfloat x = mod( j, float( boneTextureSize ) );\\n\\t\\t\\tfloat y = floor( j / float( boneTextureSize ) );\\n\\t\\t\\tfloat dx = 1.0 / float( boneTextureSize );\\n\\t\\t\\tfloat dy = 1.0 / float( boneTextureSize );\\n\\t\\t\\ty = dy * ( y + 0.5 );\\n\\t\\t\\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\\n\\t\\t\\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\\n\\t\\t\\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\\n\\t\\t\\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\\n\\t\\t\\tmat4 bone = mat4( v1, v2, v3, v4 );\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#else\\n\\t\\tuniform mat4 boneMatrices[ MAX_BONES ];\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tmat4 bone = boneMatrices[ int(i) ];\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#endif\\n#endif\";\nvar skinning_vertex = \"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\n#endif\";\nvar skinnormal_vertex = \"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n\\t#ifdef USE_TANGENT\\n\\t\\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#endif\\n#endif\";\nvar specularmap_fragment = \"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\";\nvar specularmap_pars_fragment = \"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\";\nvar tonemapping_fragment = \"#if defined( TONE_MAPPING )\\n\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\";\nvar tonemapping_pars_fragment = \"#ifndef saturate\\n#define saturate(a) clamp( a, 0.0, 1.0 )\\n#endif\\nuniform float toneMappingExposure;\\nuniform float toneMappingWhitePoint;\\nvec3 LinearToneMapping( vec3 color ) {\\n\\treturn toneMappingExposure * color;\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\n#define Uncharted2Helper( x ) max( ( ( x * ( 0.15 * x + 0.10 * 0.50 ) + 0.20 * 0.02 ) / ( x * ( 0.15 * x + 0.50 ) + 0.20 * 0.30 ) ) - 0.02 / 0.30, vec3( 0.0 ) )\\nvec3 Uncharted2ToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\\n}\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( ( color * ( 2.51 * color + 0.03 ) ) / ( color * ( 2.43 * color + 0.59 ) + 0.14 ) );\\n}\";\nvar uv_pars_fragment = \"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\\n\\tvarying vec2 vUv;\\n#endif\";\nvar uv_pars_vertex = \"#ifdef USE_UV\\n\\t#ifdef UVS_VERTEX_ONLY\\n\\t\\tvec2 vUv;\\n\\t#else\\n\\t\\tvarying vec2 vUv;\\n\\t#endif\\n\\tuniform mat3 uvTransform;\\n#endif\";\nvar uv_vertex = \"#ifdef USE_UV\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n#endif\";\nvar uv2_pars_fragment = \"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvarying vec2 vUv2;\\n#endif\";\nvar uv2_pars_vertex = \"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tattribute vec2 uv2;\\n\\tvarying vec2 vUv2;\\n#endif\";\nvar uv2_vertex = \"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvUv2 = uv2;\\n#endif\";\nvar worldpos_vertex = \"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\t#ifdef USE_INSTANCING\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\t#endif\\n\\tworldPosition = modelMatrix * worldPosition;\\n#endif\";\nvar background_frag = \"uniform sampler2D t2D;\\nvarying vec2 vUv;\\nvoid main() {\\n\\tvec4 texColor = texture2D( t2D, vUv );\\n\\tgl_FragColor = mapTexelToLinear( texColor );\\n\\t#include \\n\\t#include \\n}\";\nvar background_vert = \"varying vec2 vUv;\\nuniform mat3 uvTransform;\\nvoid main() {\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\n}\";\nvar cube_frag = \"uniform samplerCube tCube;\\nuniform float tFlip;\\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\nvoid main() {\\n\\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\\n\\tgl_FragColor = mapTexelToLinear( texColor );\\n\\tgl_FragColor.a *= opacity;\\n\\t#include \\n\\t#include \\n}\";\nvar cube_vert = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n\\tgl_Position.z = gl_Position.w;\\n}\";\nvar depth_frag = \"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( 1.0 - gl_FragCoord.z ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( gl_FragCoord.z );\\n\\t#endif\\n}\";\nvar depth_vert = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar distanceRGBA_frag = \"#define DISTANCE\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main () {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist );\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n}\";\nvar distanceRGBA_vert = \"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvWorldPosition = worldPosition.xyz;\\n}\";\nvar equirect_frag = \"uniform sampler2D tEquirect;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvec3 direction = normalize( vWorldDirection );\\n\\tvec2 sampleUV;\\n\\tsampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tvec4 texColor = texture2D( tEquirect, sampleUV );\\n\\tgl_FragColor = mapTexelToLinear( texColor );\\n\\t#include \\n\\t#include \\n}\";\nvar equirect_vert = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\";\nvar linedashed_frag = \"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar linedashed_vert = \"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvLineDistance = scale * lineDistance;\\n\\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar meshbasic_frag = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\treflectedLight.indirectDiffuse += texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\t#endif\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar meshbasic_vert = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_ENVMAP\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar meshlambert_frag = \"uniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\nvarying vec3 vLightFront;\\nvarying vec3 vIndirectFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n\\tvarying vec3 vIndirectBack;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vIndirectFront;\\n\\t#endif\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\\n\\t#else\\n\\t\\treflectedLight.directDiffuse = vLightFront;\\n\\t#endif\\n\\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar meshlambert_vert = \"#define LAMBERT\\nvarying vec3 vLightFront;\\nvarying vec3 vIndirectFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n\\tvarying vec3 vIndirectBack;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar meshmatcap_frag = \"#define MATCAP\\nuniform vec3 diffuse;\\nuniform float opacity;\\nuniform sampler2D matcap;\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 viewDir = normalize( vViewPosition );\\n\\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\\n\\tvec3 y = cross( viewDir, x );\\n\\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\\n\\t#ifdef USE_MATCAP\\n\\t\\tvec4 matcapColor = texture2D( matcap, uv );\\n\\t\\tmatcapColor = matcapTexelToLinear( matcapColor );\\n\\t#else\\n\\t\\tvec4 matcapColor = vec4( 1.0 );\\n\\t#endif\\n\\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar meshmatcap_vert = \"#define MATCAP\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifndef FLAT_SHADED\\n\\t\\tvNormal = normalize( transformedNormal );\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n}\";\nvar meshphong_frag = \"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar meshphong_vert = \"#define PHONG\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar meshphysical_frag = \"#define STANDARD\\n#ifdef PHYSICAL\\n\\t#define REFLECTIVITY\\n\\t#define CLEARCOAT\\n\\t#define TRANSPARENCY\\n#endif\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifdef TRANSPARENCY\\n\\tuniform float transparency;\\n#endif\\n#ifdef REFLECTIVITY\\n\\tuniform float reflectivity;\\n#endif\\n#ifdef CLEARCOAT\\n\\tuniform float clearcoat;\\n\\tuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_SHEEN\\n\\tuniform vec3 sheen;\\n#endif\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#ifdef TRANSPARENCY\\n\\t\\tdiffuseColor.a *= saturate( 1. - transparency + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) );\\n\\t#endif\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar meshphysical_vert = \"#define STANDARD\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n\\t#ifdef USE_TANGENT\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\t#endif\\n#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar normal_frag = \"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\\n}\";\nvar normal_vert = \"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n\\t#ifdef USE_TANGENT\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\t#endif\\n#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\";\nvar points_frag = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar points_vert = \"uniform float size;\\nuniform float scale;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tgl_PointSize = size;\\n\\t#ifdef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar shadow_frag = \"uniform vec3 color;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\\t#include \\n}\";\nvar shadow_vert = \"#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar sprite_frag = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar sprite_vert = \"uniform float rotation;\\nuniform vec2 center;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\tvec2 scale;\\n\\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\\n\\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\\n\\t#ifndef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) scale *= - mvPosition.z;\\n\\t#endif\\n\\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\\n\\tvec2 rotatedPosition;\\n\\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\\n\\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\\n\\tmvPosition.xy += rotatedPosition;\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\nvar ShaderChunk = {\n alphamap_fragment: alphamap_fragment,\n alphamap_pars_fragment: alphamap_pars_fragment,\n alphatest_fragment: alphatest_fragment,\n aomap_fragment: aomap_fragment,\n aomap_pars_fragment: aomap_pars_fragment,\n begin_vertex: begin_vertex,\n beginnormal_vertex: beginnormal_vertex,\n bsdfs: bsdfs,\n bumpmap_pars_fragment: bumpmap_pars_fragment,\n clipping_planes_fragment: clipping_planes_fragment,\n clipping_planes_pars_fragment: clipping_planes_pars_fragment,\n clipping_planes_pars_vertex: clipping_planes_pars_vertex,\n clipping_planes_vertex: clipping_planes_vertex,\n color_fragment: color_fragment,\n color_pars_fragment: color_pars_fragment,\n color_pars_vertex: color_pars_vertex,\n color_vertex: color_vertex,\n common: common,\n cube_uv_reflection_fragment: cube_uv_reflection_fragment,\n defaultnormal_vertex: defaultnormal_vertex,\n displacementmap_pars_vertex: displacementmap_pars_vertex,\n displacementmap_vertex: displacementmap_vertex,\n emissivemap_fragment: emissivemap_fragment,\n emissivemap_pars_fragment: emissivemap_pars_fragment,\n encodings_fragment: encodings_fragment,\n encodings_pars_fragment: encodings_pars_fragment,\n envmap_fragment: envmap_fragment,\n envmap_common_pars_fragment: envmap_common_pars_fragment,\n envmap_pars_fragment: envmap_pars_fragment,\n envmap_pars_vertex: envmap_pars_vertex,\n envmap_physical_pars_fragment: envmap_physical_pars_fragment,\n envmap_vertex: envmap_vertex,\n fog_vertex: fog_vertex,\n fog_pars_vertex: fog_pars_vertex,\n fog_fragment: fog_fragment,\n fog_pars_fragment: fog_pars_fragment,\n gradientmap_pars_fragment: gradientmap_pars_fragment,\n lightmap_fragment: lightmap_fragment,\n lightmap_pars_fragment: lightmap_pars_fragment,\n lights_lambert_vertex: lights_lambert_vertex,\n lights_pars_begin: lights_pars_begin,\n lights_phong_fragment: lights_phong_fragment,\n lights_phong_pars_fragment: lights_phong_pars_fragment,\n lights_physical_fragment: lights_physical_fragment,\n lights_physical_pars_fragment: lights_physical_pars_fragment,\n lights_fragment_begin: lights_fragment_begin,\n lights_fragment_maps: lights_fragment_maps,\n lights_fragment_end: lights_fragment_end,\n logdepthbuf_fragment: logdepthbuf_fragment,\n logdepthbuf_pars_fragment: logdepthbuf_pars_fragment,\n logdepthbuf_pars_vertex: logdepthbuf_pars_vertex,\n logdepthbuf_vertex: logdepthbuf_vertex,\n map_fragment: map_fragment,\n map_pars_fragment: map_pars_fragment,\n map_particle_fragment: map_particle_fragment,\n map_particle_pars_fragment: map_particle_pars_fragment,\n metalnessmap_fragment: metalnessmap_fragment,\n metalnessmap_pars_fragment: metalnessmap_pars_fragment,\n morphnormal_vertex: morphnormal_vertex,\n morphtarget_pars_vertex: morphtarget_pars_vertex,\n morphtarget_vertex: morphtarget_vertex,\n normal_fragment_begin: normal_fragment_begin,\n normal_fragment_maps: normal_fragment_maps,\n normalmap_pars_fragment: normalmap_pars_fragment,\n clearcoat_normal_fragment_begin: clearcoat_normal_fragment_begin,\n clearcoat_normal_fragment_maps: clearcoat_normal_fragment_maps,\n clearcoat_normalmap_pars_fragment: clearcoat_normalmap_pars_fragment,\n packing: packing,\n premultiplied_alpha_fragment: premultiplied_alpha_fragment,\n project_vertex: project_vertex,\n dithering_fragment: dithering_fragment,\n dithering_pars_fragment: dithering_pars_fragment,\n roughnessmap_fragment: roughnessmap_fragment,\n roughnessmap_pars_fragment: roughnessmap_pars_fragment,\n shadowmap_pars_fragment: shadowmap_pars_fragment,\n shadowmap_pars_vertex: shadowmap_pars_vertex,\n shadowmap_vertex: shadowmap_vertex,\n shadowmask_pars_fragment: shadowmask_pars_fragment,\n skinbase_vertex: skinbase_vertex,\n skinning_pars_vertex: skinning_pars_vertex,\n skinning_vertex: skinning_vertex,\n skinnormal_vertex: skinnormal_vertex,\n specularmap_fragment: specularmap_fragment,\n specularmap_pars_fragment: specularmap_pars_fragment,\n tonemapping_fragment: tonemapping_fragment,\n tonemapping_pars_fragment: tonemapping_pars_fragment,\n uv_pars_fragment: uv_pars_fragment,\n uv_pars_vertex: uv_pars_vertex,\n uv_vertex: uv_vertex,\n uv2_pars_fragment: uv2_pars_fragment,\n uv2_pars_vertex: uv2_pars_vertex,\n uv2_vertex: uv2_vertex,\n worldpos_vertex: worldpos_vertex,\n background_frag: background_frag,\n background_vert: background_vert,\n cube_frag: cube_frag,\n cube_vert: cube_vert,\n depth_frag: depth_frag,\n depth_vert: depth_vert,\n distanceRGBA_frag: distanceRGBA_frag,\n distanceRGBA_vert: distanceRGBA_vert,\n equirect_frag: equirect_frag,\n equirect_vert: equirect_vert,\n linedashed_frag: linedashed_frag,\n linedashed_vert: linedashed_vert,\n meshbasic_frag: meshbasic_frag,\n meshbasic_vert: meshbasic_vert,\n meshlambert_frag: meshlambert_frag,\n meshlambert_vert: meshlambert_vert,\n meshmatcap_frag: meshmatcap_frag,\n meshmatcap_vert: meshmatcap_vert,\n meshphong_frag: meshphong_frag,\n meshphong_vert: meshphong_vert,\n meshphysical_frag: meshphysical_frag,\n meshphysical_vert: meshphysical_vert,\n normal_frag: normal_frag,\n normal_vert: normal_vert,\n points_frag: points_frag,\n points_vert: points_vert,\n shadow_frag: shadow_frag,\n shadow_vert: shadow_vert,\n sprite_frag: sprite_frag,\n sprite_vert: sprite_vert\n};\n/**\n * Uniforms library for shared webgl shaders\n */\n\nvar UniformsLib = {\n common: {\n diffuse: {\n value: new Color(0xeeeeee)\n },\n opacity: {\n value: 1.0\n },\n map: {\n value: null\n },\n uvTransform: {\n value: new Matrix3()\n },\n alphaMap: {\n value: null\n }\n },\n specularmap: {\n specularMap: {\n value: null\n }\n },\n envmap: {\n envMap: {\n value: null\n },\n flipEnvMap: {\n value: -1\n },\n reflectivity: {\n value: 1.0\n },\n refractionRatio: {\n value: 0.98\n },\n maxMipLevel: {\n value: 0\n }\n },\n aomap: {\n aoMap: {\n value: null\n },\n aoMapIntensity: {\n value: 1\n }\n },\n lightmap: {\n lightMap: {\n value: null\n },\n lightMapIntensity: {\n value: 1\n }\n },\n emissivemap: {\n emissiveMap: {\n value: null\n }\n },\n bumpmap: {\n bumpMap: {\n value: null\n },\n bumpScale: {\n value: 1\n }\n },\n normalmap: {\n normalMap: {\n value: null\n },\n normalScale: {\n value: new Vector2(1, 1)\n }\n },\n displacementmap: {\n displacementMap: {\n value: null\n },\n displacementScale: {\n value: 1\n },\n displacementBias: {\n value: 0\n }\n },\n roughnessmap: {\n roughnessMap: {\n value: null\n }\n },\n metalnessmap: {\n metalnessMap: {\n value: null\n }\n },\n gradientmap: {\n gradientMap: {\n value: null\n }\n },\n fog: {\n fogDensity: {\n value: 0.00025\n },\n fogNear: {\n value: 1\n },\n fogFar: {\n value: 2000\n },\n fogColor: {\n value: new Color(0xffffff)\n }\n },\n lights: {\n ambientLightColor: {\n value: []\n },\n lightProbe: {\n value: []\n },\n directionalLights: {\n value: [],\n properties: {\n direction: {},\n color: {},\n shadow: {},\n shadowBias: {},\n shadowRadius: {},\n shadowMapSize: {}\n }\n },\n directionalShadowMap: {\n value: []\n },\n directionalShadowMatrix: {\n value: []\n },\n spotLights: {\n value: [],\n properties: {\n color: {},\n position: {},\n direction: {},\n distance: {},\n coneCos: {},\n penumbraCos: {},\n decay: {},\n shadow: {},\n shadowBias: {},\n shadowRadius: {},\n shadowMapSize: {}\n }\n },\n spotShadowMap: {\n value: []\n },\n spotShadowMatrix: {\n value: []\n },\n pointLights: {\n value: [],\n properties: {\n color: {},\n position: {},\n decay: {},\n distance: {},\n shadow: {},\n shadowBias: {},\n shadowRadius: {},\n shadowMapSize: {},\n shadowCameraNear: {},\n shadowCameraFar: {}\n }\n },\n pointShadowMap: {\n value: []\n },\n pointShadowMatrix: {\n value: []\n },\n hemisphereLights: {\n value: [],\n properties: {\n direction: {},\n skyColor: {},\n groundColor: {}\n }\n },\n // TODO (abelnation): RectAreaLight BRDF data needs to be moved from example to main src\n rectAreaLights: {\n value: [],\n properties: {\n color: {},\n position: {},\n width: {},\n height: {}\n }\n }\n },\n points: {\n diffuse: {\n value: new Color(0xeeeeee)\n },\n opacity: {\n value: 1.0\n },\n size: {\n value: 1.0\n },\n scale: {\n value: 1.0\n },\n map: {\n value: null\n },\n alphaMap: {\n value: null\n },\n uvTransform: {\n value: new Matrix3()\n }\n },\n sprite: {\n diffuse: {\n value: new Color(0xeeeeee)\n },\n opacity: {\n value: 1.0\n },\n center: {\n value: new Vector2(0.5, 0.5)\n },\n rotation: {\n value: 0.0\n },\n map: {\n value: null\n },\n alphaMap: {\n value: null\n },\n uvTransform: {\n value: new Matrix3()\n }\n }\n};\n/**\n * @author alteredq / http://alteredqualia.com/\n * @author mrdoob / http://mrdoob.com/\n * @author mikael emtinger / http://gomo.se/\n */\n\nvar ShaderLib = {\n basic: {\n uniforms: mergeUniforms([UniformsLib.common, UniformsLib.specularmap, UniformsLib.envmap, UniformsLib.aomap, UniformsLib.lightmap, UniformsLib.fog]),\n vertexShader: ShaderChunk.meshbasic_vert,\n fragmentShader: ShaderChunk.meshbasic_frag\n },\n lambert: {\n uniforms: mergeUniforms([UniformsLib.common, UniformsLib.specularmap, UniformsLib.envmap, UniformsLib.aomap, UniformsLib.lightmap, UniformsLib.emissivemap, UniformsLib.fog, UniformsLib.lights, {\n emissive: {\n value: new Color(0x000000)\n }\n }]),\n vertexShader: ShaderChunk.meshlambert_vert,\n fragmentShader: ShaderChunk.meshlambert_frag\n },\n phong: {\n uniforms: mergeUniforms([UniformsLib.common, UniformsLib.specularmap, UniformsLib.envmap, UniformsLib.aomap, UniformsLib.lightmap, UniformsLib.emissivemap, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, UniformsLib.gradientmap, UniformsLib.fog, UniformsLib.lights, {\n emissive: {\n value: new Color(0x000000)\n },\n specular: {\n value: new Color(0x111111)\n },\n shininess: {\n value: 30\n }\n }]),\n vertexShader: ShaderChunk.meshphong_vert,\n fragmentShader: ShaderChunk.meshphong_frag\n },\n standard: {\n uniforms: mergeUniforms([UniformsLib.common, UniformsLib.envmap, UniformsLib.aomap, UniformsLib.lightmap, UniformsLib.emissivemap, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, UniformsLib.roughnessmap, UniformsLib.metalnessmap, UniformsLib.fog, UniformsLib.lights, {\n emissive: {\n value: new Color(0x000000)\n },\n roughness: {\n value: 0.5\n },\n metalness: {\n value: 0.5\n },\n envMapIntensity: {\n value: 1\n } // temporary\n\n }]),\n vertexShader: ShaderChunk.meshphysical_vert,\n fragmentShader: ShaderChunk.meshphysical_frag\n },\n matcap: {\n uniforms: mergeUniforms([UniformsLib.common, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, UniformsLib.fog, {\n matcap: {\n value: null\n }\n }]),\n vertexShader: ShaderChunk.meshmatcap_vert,\n fragmentShader: ShaderChunk.meshmatcap_frag\n },\n points: {\n uniforms: mergeUniforms([UniformsLib.points, UniformsLib.fog]),\n vertexShader: ShaderChunk.points_vert,\n fragmentShader: ShaderChunk.points_frag\n },\n dashed: {\n uniforms: mergeUniforms([UniformsLib.common, UniformsLib.fog, {\n scale: {\n value: 1\n },\n dashSize: {\n value: 1\n },\n totalSize: {\n value: 2\n }\n }]),\n vertexShader: ShaderChunk.linedashed_vert,\n fragmentShader: ShaderChunk.linedashed_frag\n },\n depth: {\n uniforms: mergeUniforms([UniformsLib.common, UniformsLib.displacementmap]),\n vertexShader: ShaderChunk.depth_vert,\n fragmentShader: ShaderChunk.depth_frag\n },\n normal: {\n uniforms: mergeUniforms([UniformsLib.common, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, {\n opacity: {\n value: 1.0\n }\n }]),\n vertexShader: ShaderChunk.normal_vert,\n fragmentShader: ShaderChunk.normal_frag\n },\n sprite: {\n uniforms: mergeUniforms([UniformsLib.sprite, UniformsLib.fog]),\n vertexShader: ShaderChunk.sprite_vert,\n fragmentShader: ShaderChunk.sprite_frag\n },\n background: {\n uniforms: {\n uvTransform: {\n value: new Matrix3()\n },\n t2D: {\n value: null\n }\n },\n vertexShader: ShaderChunk.background_vert,\n fragmentShader: ShaderChunk.background_frag\n },\n\n /* -------------------------------------------------------------------------\n //\tCube map shader\n ------------------------------------------------------------------------- */\n cube: {\n uniforms: {\n tCube: {\n value: null\n },\n tFlip: {\n value: -1\n },\n opacity: {\n value: 1.0\n }\n },\n vertexShader: ShaderChunk.cube_vert,\n fragmentShader: ShaderChunk.cube_frag\n },\n equirect: {\n uniforms: {\n tEquirect: {\n value: null\n }\n },\n vertexShader: ShaderChunk.equirect_vert,\n fragmentShader: ShaderChunk.equirect_frag\n },\n distanceRGBA: {\n uniforms: mergeUniforms([UniformsLib.common, UniformsLib.displacementmap, {\n referencePosition: {\n value: new Vector3()\n },\n nearDistance: {\n value: 1\n },\n farDistance: {\n value: 1000\n }\n }]),\n vertexShader: ShaderChunk.distanceRGBA_vert,\n fragmentShader: ShaderChunk.distanceRGBA_frag\n },\n shadow: {\n uniforms: mergeUniforms([UniformsLib.lights, UniformsLib.fog, {\n color: {\n value: new Color(0x00000)\n },\n opacity: {\n value: 1.0\n }\n }]),\n vertexShader: ShaderChunk.shadow_vert,\n fragmentShader: ShaderChunk.shadow_frag\n }\n};\nShaderLib.physical = {\n uniforms: mergeUniforms([ShaderLib.standard.uniforms, {\n transparency: {\n value: 0\n },\n clearcoat: {\n value: 0\n },\n clearcoatRoughness: {\n value: 0\n },\n sheen: {\n value: new Color(0x000000)\n },\n clearcoatNormalScale: {\n value: new Vector2(1, 1)\n },\n clearcoatNormalMap: {\n value: null\n }\n }]),\n vertexShader: ShaderChunk.meshphysical_vert,\n fragmentShader: ShaderChunk.meshphysical_frag\n};\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction WebGLAnimation() {\n var context = null;\n var isAnimating = false;\n var animationLoop = null;\n\n function onAnimationFrame(time, frame) {\n if (isAnimating === false) return;\n animationLoop(time, frame);\n context.requestAnimationFrame(onAnimationFrame);\n }\n\n return {\n start: function start() {\n if (isAnimating === true) return;\n if (animationLoop === null) return;\n context.requestAnimationFrame(onAnimationFrame);\n isAnimating = true;\n },\n stop: function stop() {\n isAnimating = false;\n },\n setAnimationLoop: function setAnimationLoop(callback) {\n animationLoop = callback;\n },\n setContext: function setContext(value) {\n context = value;\n }\n };\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction WebGLAttributes(gl) {\n var buffers = new WeakMap();\n\n function createBuffer(attribute, bufferType) {\n var array = attribute.array;\n var usage = attribute.usage;\n var buffer = gl.createBuffer();\n gl.bindBuffer(bufferType, buffer);\n gl.bufferData(bufferType, array, usage);\n attribute.onUploadCallback();\n var type = 5126;\n\n if (array instanceof Float32Array) {\n type = 5126;\n } else if (array instanceof Float64Array) {\n console.warn('THREE.WebGLAttributes: Unsupported data buffer format: Float64Array.');\n } else if (array instanceof Uint16Array) {\n type = 5123;\n } else if (array instanceof Int16Array) {\n type = 5122;\n } else if (array instanceof Uint32Array) {\n type = 5125;\n } else if (array instanceof Int32Array) {\n type = 5124;\n } else if (array instanceof Int8Array) {\n type = 5120;\n } else if (array instanceof Uint8Array) {\n type = 5121;\n }\n\n return {\n buffer: buffer,\n type: type,\n bytesPerElement: array.BYTES_PER_ELEMENT,\n version: attribute.version\n };\n }\n\n function updateBuffer(buffer, attribute, bufferType) {\n var array = attribute.array;\n var updateRange = attribute.updateRange;\n gl.bindBuffer(bufferType, buffer);\n\n if (updateRange.count === -1) {\n // Not using update ranges\n gl.bufferSubData(bufferType, 0, array);\n } else {\n gl.bufferSubData(bufferType, updateRange.offset * array.BYTES_PER_ELEMENT, array.subarray(updateRange.offset, updateRange.offset + updateRange.count));\n updateRange.count = -1; // reset range\n }\n } //\n\n\n function get(attribute) {\n if (attribute.isInterleavedBufferAttribute) attribute = attribute.data;\n return buffers.get(attribute);\n }\n\n function remove(attribute) {\n if (attribute.isInterleavedBufferAttribute) attribute = attribute.data;\n var data = buffers.get(attribute);\n\n if (data) {\n gl.deleteBuffer(data.buffer);\n buffers.delete(attribute);\n }\n }\n\n function update(attribute, bufferType) {\n if (attribute.isInterleavedBufferAttribute) attribute = attribute.data;\n var data = buffers.get(attribute);\n\n if (data === undefined) {\n buffers.set(attribute, createBuffer(attribute, bufferType));\n } else if (data.version < attribute.version) {\n updateBuffer(data.buffer, attribute, bufferType);\n data.version = attribute.version;\n }\n }\n\n return {\n get: get,\n remove: remove,\n update: update\n };\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author Mugen87 / https://github.com/Mugen87\n */\n// PlaneGeometry\n\n\nfunction PlaneGeometry(width, height, widthSegments, heightSegments) {\n Geometry.call(this);\n this.type = 'PlaneGeometry';\n this.parameters = {\n width: width,\n height: height,\n widthSegments: widthSegments,\n heightSegments: heightSegments\n };\n this.fromBufferGeometry(new PlaneBufferGeometry(width, height, widthSegments, heightSegments));\n this.mergeVertices();\n}\n\nPlaneGeometry.prototype = Object.create(Geometry.prototype);\nPlaneGeometry.prototype.constructor = PlaneGeometry; // PlaneBufferGeometry\n\nfunction PlaneBufferGeometry(width, height, widthSegments, heightSegments) {\n BufferGeometry.call(this);\n this.type = 'PlaneBufferGeometry';\n this.parameters = {\n width: width,\n height: height,\n widthSegments: widthSegments,\n heightSegments: heightSegments\n };\n width = width || 1;\n height = height || 1;\n var width_half = width / 2;\n var height_half = height / 2;\n var gridX = Math.floor(widthSegments) || 1;\n var gridY = Math.floor(heightSegments) || 1;\n var gridX1 = gridX + 1;\n var gridY1 = gridY + 1;\n var segment_width = width / gridX;\n var segment_height = height / gridY;\n var ix, iy; // buffers\n\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = []; // generate vertices, normals and uvs\n\n for (iy = 0; iy < gridY1; iy++) {\n var y = iy * segment_height - height_half;\n\n for (ix = 0; ix < gridX1; ix++) {\n var x = ix * segment_width - width_half;\n vertices.push(x, -y, 0);\n normals.push(0, 0, 1);\n uvs.push(ix / gridX);\n uvs.push(1 - iy / gridY);\n }\n } // indices\n\n\n for (iy = 0; iy < gridY; iy++) {\n for (ix = 0; ix < gridX; ix++) {\n var a = ix + gridX1 * iy;\n var b = ix + gridX1 * (iy + 1);\n var c = ix + 1 + gridX1 * (iy + 1);\n var d = ix + 1 + gridX1 * iy; // faces\n\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n } // build geometry\n\n\n this.setIndex(indices);\n this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n this.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n this.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\n}\n\nPlaneBufferGeometry.prototype = Object.create(BufferGeometry.prototype);\nPlaneBufferGeometry.prototype.constructor = PlaneBufferGeometry;\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction WebGLBackground(renderer, state, objects, premultipliedAlpha) {\n var clearColor = new Color(0x000000);\n var clearAlpha = 0;\n var planeMesh;\n var boxMesh; // Store the current background texture and its `version`\n // so we can recompile the material accordingly.\n\n var currentBackground = null;\n var currentBackgroundVersion = 0;\n\n function render(renderList, scene, camera, forceClear) {\n var background = scene.background; // Ignore background in AR\n // TODO: Reconsider this.\n\n var vr = renderer.vr;\n var session = vr.getSession && vr.getSession();\n\n if (session && session.environmentBlendMode === 'additive') {\n background = null;\n }\n\n if (background === null) {\n setClear(clearColor, clearAlpha);\n currentBackground = null;\n currentBackgroundVersion = 0;\n } else if (background && background.isColor) {\n setClear(background, 1);\n forceClear = true;\n currentBackground = null;\n currentBackgroundVersion = 0;\n }\n\n if (renderer.autoClear || forceClear) {\n renderer.clear(renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil);\n }\n\n if (background && (background.isCubeTexture || background.isWebGLRenderTargetCube)) {\n if (boxMesh === undefined) {\n boxMesh = new Mesh(new BoxBufferGeometry(1, 1, 1), new ShaderMaterial({\n type: 'BackgroundCubeMaterial',\n uniforms: cloneUniforms(ShaderLib.cube.uniforms),\n vertexShader: ShaderLib.cube.vertexShader,\n fragmentShader: ShaderLib.cube.fragmentShader,\n side: BackSide,\n depthTest: false,\n depthWrite: false,\n fog: false\n }));\n boxMesh.geometry.deleteAttribute('normal');\n boxMesh.geometry.deleteAttribute('uv');\n\n boxMesh.onBeforeRender = function (renderer, scene, camera) {\n this.matrixWorld.copyPosition(camera.matrixWorld);\n }; // enable code injection for non-built-in material\n\n\n Object.defineProperty(boxMesh.material, 'map', {\n get: function get() {\n return this.uniforms.tCube.value;\n }\n });\n objects.update(boxMesh);\n }\n\n var texture = background.isWebGLRenderTargetCube ? background.texture : background;\n boxMesh.material.uniforms.tCube.value = texture;\n boxMesh.material.uniforms.tFlip.value = background.isWebGLRenderTargetCube ? 1 : -1;\n\n if (currentBackground !== background || currentBackgroundVersion !== texture.version) {\n boxMesh.material.needsUpdate = true;\n currentBackground = background;\n currentBackgroundVersion = texture.version;\n } // push to the pre-sorted opaque render list\n\n\n renderList.unshift(boxMesh, boxMesh.geometry, boxMesh.material, 0, 0, null);\n } else if (background && background.isTexture) {\n if (planeMesh === undefined) {\n planeMesh = new Mesh(new PlaneBufferGeometry(2, 2), new ShaderMaterial({\n type: 'BackgroundMaterial',\n uniforms: cloneUniforms(ShaderLib.background.uniforms),\n vertexShader: ShaderLib.background.vertexShader,\n fragmentShader: ShaderLib.background.fragmentShader,\n side: FrontSide,\n depthTest: false,\n depthWrite: false,\n fog: false\n }));\n planeMesh.geometry.deleteAttribute('normal'); // enable code injection for non-built-in material\n\n Object.defineProperty(planeMesh.material, 'map', {\n get: function get() {\n return this.uniforms.t2D.value;\n }\n });\n objects.update(planeMesh);\n }\n\n planeMesh.material.uniforms.t2D.value = background;\n\n if (background.matrixAutoUpdate === true) {\n background.updateMatrix();\n }\n\n planeMesh.material.uniforms.uvTransform.value.copy(background.matrix);\n\n if (currentBackground !== background || currentBackgroundVersion !== background.version) {\n planeMesh.material.needsUpdate = true;\n currentBackground = background;\n currentBackgroundVersion = background.version;\n } // push to the pre-sorted opaque render list\n\n\n renderList.unshift(planeMesh, planeMesh.geometry, planeMesh.material, 0, 0, null);\n }\n }\n\n function setClear(color, alpha) {\n state.buffers.color.setClear(color.r, color.g, color.b, alpha, premultipliedAlpha);\n }\n\n return {\n getClearColor: function getClearColor() {\n return clearColor;\n },\n setClearColor: function setClearColor(color, alpha) {\n clearColor.set(color);\n clearAlpha = alpha !== undefined ? alpha : 1;\n setClear(clearColor, clearAlpha);\n },\n getClearAlpha: function getClearAlpha() {\n return clearAlpha;\n },\n setClearAlpha: function setClearAlpha(alpha) {\n clearAlpha = alpha;\n setClear(clearColor, clearAlpha);\n },\n render: render\n };\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction WebGLBufferRenderer(gl, extensions, info, capabilities) {\n var isWebGL2 = capabilities.isWebGL2;\n var mode;\n\n function setMode(value) {\n mode = value;\n }\n\n function render(start, count) {\n gl.drawArrays(mode, start, count);\n info.update(count, mode);\n }\n\n function renderInstances(geometry, start, count, primcount) {\n if (primcount === 0) return;\n var extension, methodName;\n\n if (isWebGL2) {\n extension = gl;\n methodName = 'drawArraysInstanced';\n } else {\n extension = extensions.get('ANGLE_instanced_arrays');\n methodName = 'drawArraysInstancedANGLE';\n\n if (extension === null) {\n console.error('THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.');\n return;\n }\n }\n\n extension[methodName](mode, start, count, primcount);\n info.update(count, mode, primcount);\n } //\n\n\n this.setMode = setMode;\n this.render = render;\n this.renderInstances = renderInstances;\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction WebGLCapabilities(gl, extensions, parameters) {\n var maxAnisotropy;\n\n function getMaxAnisotropy() {\n if (maxAnisotropy !== undefined) return maxAnisotropy;\n var extension = extensions.get('EXT_texture_filter_anisotropic');\n\n if (extension !== null) {\n maxAnisotropy = gl.getParameter(extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT);\n } else {\n maxAnisotropy = 0;\n }\n\n return maxAnisotropy;\n }\n\n function getMaxPrecision(precision) {\n if (precision === 'highp') {\n if (gl.getShaderPrecisionFormat(35633, 36338).precision > 0 && gl.getShaderPrecisionFormat(35632, 36338).precision > 0) {\n return 'highp';\n }\n\n precision = 'mediump';\n }\n\n if (precision === 'mediump') {\n if (gl.getShaderPrecisionFormat(35633, 36337).precision > 0 && gl.getShaderPrecisionFormat(35632, 36337).precision > 0) {\n return 'mediump';\n }\n }\n\n return 'lowp';\n }\n /* eslint-disable no-undef */\n\n\n var isWebGL2 = typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext || typeof WebGL2ComputeRenderingContext !== 'undefined' && gl instanceof WebGL2ComputeRenderingContext;\n /* eslint-enable no-undef */\n\n var precision = parameters.precision !== undefined ? parameters.precision : 'highp';\n var maxPrecision = getMaxPrecision(precision);\n\n if (maxPrecision !== precision) {\n console.warn('THREE.WebGLRenderer:', precision, 'not supported, using', maxPrecision, 'instead.');\n precision = maxPrecision;\n }\n\n var logarithmicDepthBuffer = parameters.logarithmicDepthBuffer === true;\n var maxTextures = gl.getParameter(34930);\n var maxVertexTextures = gl.getParameter(35660);\n var maxTextureSize = gl.getParameter(3379);\n var maxCubemapSize = gl.getParameter(34076);\n var maxAttributes = gl.getParameter(34921);\n var maxVertexUniforms = gl.getParameter(36347);\n var maxVaryings = gl.getParameter(36348);\n var maxFragmentUniforms = gl.getParameter(36349);\n var vertexTextures = maxVertexTextures > 0;\n var floatFragmentTextures = isWebGL2 || !!extensions.get('OES_texture_float');\n var floatVertexTextures = vertexTextures && floatFragmentTextures;\n var maxSamples = isWebGL2 ? gl.getParameter(36183) : 0;\n return {\n isWebGL2: isWebGL2,\n getMaxAnisotropy: getMaxAnisotropy,\n getMaxPrecision: getMaxPrecision,\n precision: precision,\n logarithmicDepthBuffer: logarithmicDepthBuffer,\n maxTextures: maxTextures,\n maxVertexTextures: maxVertexTextures,\n maxTextureSize: maxTextureSize,\n maxCubemapSize: maxCubemapSize,\n maxAttributes: maxAttributes,\n maxVertexUniforms: maxVertexUniforms,\n maxVaryings: maxVaryings,\n maxFragmentUniforms: maxFragmentUniforms,\n vertexTextures: vertexTextures,\n floatFragmentTextures: floatFragmentTextures,\n floatVertexTextures: floatVertexTextures,\n maxSamples: maxSamples\n };\n}\n/**\n * @author tschw\n */\n\n\nfunction WebGLClipping() {\n var scope = this,\n globalState = null,\n numGlobalPlanes = 0,\n localClippingEnabled = false,\n renderingShadows = false,\n plane = new Plane(),\n viewNormalMatrix = new Matrix3(),\n uniform = {\n value: null,\n needsUpdate: false\n };\n this.uniform = uniform;\n this.numPlanes = 0;\n this.numIntersection = 0;\n\n this.init = function (planes, enableLocalClipping, camera) {\n var enabled = planes.length !== 0 || enableLocalClipping || // enable state of previous frame - the clipping code has to\n // run another frame in order to reset the state:\n numGlobalPlanes !== 0 || localClippingEnabled;\n localClippingEnabled = enableLocalClipping;\n globalState = projectPlanes(planes, camera, 0);\n numGlobalPlanes = planes.length;\n return enabled;\n };\n\n this.beginShadows = function () {\n renderingShadows = true;\n projectPlanes(null);\n };\n\n this.endShadows = function () {\n renderingShadows = false;\n resetGlobalState();\n };\n\n this.setState = function (planes, clipIntersection, clipShadows, camera, cache, fromCache) {\n if (!localClippingEnabled || planes === null || planes.length === 0 || renderingShadows && !clipShadows) {\n // there's no local clipping\n if (renderingShadows) {\n // there's no global clipping\n projectPlanes(null);\n } else {\n resetGlobalState();\n }\n } else {\n var nGlobal = renderingShadows ? 0 : numGlobalPlanes,\n lGlobal = nGlobal * 4,\n dstArray = cache.clippingState || null;\n uniform.value = dstArray; // ensure unique state\n\n dstArray = projectPlanes(planes, camera, lGlobal, fromCache);\n\n for (var i = 0; i !== lGlobal; ++i) {\n dstArray[i] = globalState[i];\n }\n\n cache.clippingState = dstArray;\n this.numIntersection = clipIntersection ? this.numPlanes : 0;\n this.numPlanes += nGlobal;\n }\n };\n\n function resetGlobalState() {\n if (uniform.value !== globalState) {\n uniform.value = globalState;\n uniform.needsUpdate = numGlobalPlanes > 0;\n }\n\n scope.numPlanes = numGlobalPlanes;\n scope.numIntersection = 0;\n }\n\n function projectPlanes(planes, camera, dstOffset, skipTransform) {\n var nPlanes = planes !== null ? planes.length : 0,\n dstArray = null;\n\n if (nPlanes !== 0) {\n dstArray = uniform.value;\n\n if (skipTransform !== true || dstArray === null) {\n var flatSize = dstOffset + nPlanes * 4,\n viewMatrix = camera.matrixWorldInverse;\n viewNormalMatrix.getNormalMatrix(viewMatrix);\n\n if (dstArray === null || dstArray.length < flatSize) {\n dstArray = new Float32Array(flatSize);\n }\n\n for (var i = 0, i4 = dstOffset; i !== nPlanes; ++i, i4 += 4) {\n plane.copy(planes[i]).applyMatrix4(viewMatrix, viewNormalMatrix);\n plane.normal.toArray(dstArray, i4);\n dstArray[i4 + 3] = plane.constant;\n }\n }\n\n uniform.value = dstArray;\n uniform.needsUpdate = true;\n }\n\n scope.numPlanes = nPlanes;\n return dstArray;\n }\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction WebGLExtensions(gl) {\n var extensions = {};\n return {\n get: function get(name) {\n if (extensions[name] !== undefined) {\n return extensions[name];\n }\n\n var extension;\n\n switch (name) {\n case 'WEBGL_depth_texture':\n extension = gl.getExtension('WEBGL_depth_texture') || gl.getExtension('MOZ_WEBGL_depth_texture') || gl.getExtension('WEBKIT_WEBGL_depth_texture');\n break;\n\n case 'EXT_texture_filter_anisotropic':\n extension = gl.getExtension('EXT_texture_filter_anisotropic') || gl.getExtension('MOZ_EXT_texture_filter_anisotropic') || gl.getExtension('WEBKIT_EXT_texture_filter_anisotropic');\n break;\n\n case 'WEBGL_compressed_texture_s3tc':\n extension = gl.getExtension('WEBGL_compressed_texture_s3tc') || gl.getExtension('MOZ_WEBGL_compressed_texture_s3tc') || gl.getExtension('WEBKIT_WEBGL_compressed_texture_s3tc');\n break;\n\n case 'WEBGL_compressed_texture_pvrtc':\n extension = gl.getExtension('WEBGL_compressed_texture_pvrtc') || gl.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc');\n break;\n\n default:\n extension = gl.getExtension(name);\n }\n\n if (extension === null) {\n console.warn('THREE.WebGLRenderer: ' + name + ' extension not supported.');\n }\n\n extensions[name] = extension;\n return extension;\n }\n };\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction WebGLGeometries(gl, attributes, info) {\n var geometries = new WeakMap();\n var wireframeAttributes = new WeakMap();\n\n function onGeometryDispose(event) {\n var geometry = event.target;\n var buffergeometry = geometries.get(geometry);\n\n if (buffergeometry.index !== null) {\n attributes.remove(buffergeometry.index);\n }\n\n for (var name in buffergeometry.attributes) {\n attributes.remove(buffergeometry.attributes[name]);\n }\n\n geometry.removeEventListener('dispose', onGeometryDispose);\n geometries.delete(geometry);\n var attribute = wireframeAttributes.get(buffergeometry);\n\n if (attribute) {\n attributes.remove(attribute);\n wireframeAttributes.delete(buffergeometry);\n } //\n\n\n info.memory.geometries--;\n }\n\n function get(object, geometry) {\n var buffergeometry = geometries.get(geometry);\n if (buffergeometry) return buffergeometry;\n geometry.addEventListener('dispose', onGeometryDispose);\n\n if (geometry.isBufferGeometry) {\n buffergeometry = geometry;\n } else if (geometry.isGeometry) {\n if (geometry._bufferGeometry === undefined) {\n geometry._bufferGeometry = new BufferGeometry().setFromObject(object);\n }\n\n buffergeometry = geometry._bufferGeometry;\n }\n\n geometries.set(geometry, buffergeometry);\n info.memory.geometries++;\n return buffergeometry;\n }\n\n function update(geometry) {\n var index = geometry.index;\n var geometryAttributes = geometry.attributes;\n\n if (index !== null) {\n attributes.update(index, 34963);\n }\n\n for (var name in geometryAttributes) {\n attributes.update(geometryAttributes[name], 34962);\n } // morph targets\n\n\n var morphAttributes = geometry.morphAttributes;\n\n for (var name in morphAttributes) {\n var array = morphAttributes[name];\n\n for (var i = 0, l = array.length; i < l; i++) {\n attributes.update(array[i], 34962);\n }\n }\n }\n\n function updateWireframeAttribute(geometry) {\n var indices = [];\n var geometryIndex = geometry.index;\n var geometryPosition = geometry.attributes.position;\n var version = 0;\n\n if (geometryIndex !== null) {\n var array = geometryIndex.array;\n version = geometryIndex.version;\n\n for (var i = 0, l = array.length; i < l; i += 3) {\n var a = array[i + 0];\n var b = array[i + 1];\n var c = array[i + 2];\n indices.push(a, b, b, c, c, a);\n }\n } else {\n var array = geometryPosition.array;\n version = geometryPosition.version;\n\n for (var i = 0, l = array.length / 3 - 1; i < l; i += 3) {\n var a = i + 0;\n var b = i + 1;\n var c = i + 2;\n indices.push(a, b, b, c, c, a);\n }\n }\n\n var attribute = new (arrayMax(indices) > 65535 ? Uint32BufferAttribute : Uint16BufferAttribute)(indices, 1);\n attribute.version = version;\n attributes.update(attribute, 34963); //\n\n var previousAttribute = wireframeAttributes.get(geometry);\n if (previousAttribute) attributes.remove(previousAttribute); //\n\n wireframeAttributes.set(geometry, attribute);\n }\n\n function getWireframeAttribute(geometry) {\n var currentAttribute = wireframeAttributes.get(geometry);\n\n if (currentAttribute) {\n var geometryIndex = geometry.index;\n\n if (geometryIndex !== null) {\n // if the attribute is obsolete, create a new one\n if (currentAttribute.version < geometryIndex.version) {\n updateWireframeAttribute(geometry);\n }\n }\n } else {\n updateWireframeAttribute(geometry);\n }\n\n return wireframeAttributes.get(geometry);\n }\n\n return {\n get: get,\n update: update,\n getWireframeAttribute: getWireframeAttribute\n };\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction WebGLIndexedBufferRenderer(gl, extensions, info, capabilities) {\n var isWebGL2 = capabilities.isWebGL2;\n var mode;\n\n function setMode(value) {\n mode = value;\n }\n\n var type, bytesPerElement;\n\n function setIndex(value) {\n type = value.type;\n bytesPerElement = value.bytesPerElement;\n }\n\n function render(start, count) {\n gl.drawElements(mode, count, type, start * bytesPerElement);\n info.update(count, mode);\n }\n\n function renderInstances(geometry, start, count, primcount) {\n if (primcount === 0) return;\n var extension, methodName;\n\n if (isWebGL2) {\n extension = gl;\n methodName = 'drawElementsInstanced';\n } else {\n extension = extensions.get('ANGLE_instanced_arrays');\n methodName = 'drawElementsInstancedANGLE';\n\n if (extension === null) {\n console.error('THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.');\n return;\n }\n }\n\n extension[methodName](mode, count, type, start * bytesPerElement, primcount);\n info.update(count, mode, primcount);\n } //\n\n\n this.setMode = setMode;\n this.setIndex = setIndex;\n this.render = render;\n this.renderInstances = renderInstances;\n}\n/**\n * @author Mugen87 / https://github.com/Mugen87\n */\n\n\nfunction WebGLInfo(gl) {\n var memory = {\n geometries: 0,\n textures: 0\n };\n var render = {\n frame: 0,\n calls: 0,\n triangles: 0,\n points: 0,\n lines: 0\n };\n\n function update(count, mode, instanceCount) {\n instanceCount = instanceCount || 1;\n render.calls++;\n\n switch (mode) {\n case 4:\n render.triangles += instanceCount * (count / 3);\n break;\n\n case 5:\n case 6:\n render.triangles += instanceCount * (count - 2);\n break;\n\n case 1:\n render.lines += instanceCount * (count / 2);\n break;\n\n case 3:\n render.lines += instanceCount * (count - 1);\n break;\n\n case 2:\n render.lines += instanceCount * count;\n break;\n\n case 0:\n render.points += instanceCount * count;\n break;\n\n default:\n console.error('THREE.WebGLInfo: Unknown draw mode:', mode);\n break;\n }\n }\n\n function reset() {\n render.frame++;\n render.calls = 0;\n render.triangles = 0;\n render.points = 0;\n render.lines = 0;\n }\n\n return {\n memory: memory,\n render: render,\n programs: null,\n autoReset: true,\n reset: reset,\n update: update\n };\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction absNumericalSort(a, b) {\n return Math.abs(b[1]) - Math.abs(a[1]);\n}\n\nfunction WebGLMorphtargets(gl) {\n var influencesList = {};\n var morphInfluences = new Float32Array(8);\n\n function update(object, geometry, material, program) {\n var objectInfluences = object.morphTargetInfluences;\n var length = objectInfluences.length;\n var influences = influencesList[geometry.id];\n\n if (influences === undefined) {\n // initialise list\n influences = [];\n\n for (var i = 0; i < length; i++) {\n influences[i] = [i, 0];\n }\n\n influencesList[geometry.id] = influences;\n }\n\n var morphTargets = material.morphTargets && geometry.morphAttributes.position;\n var morphNormals = material.morphNormals && geometry.morphAttributes.normal; // Remove current morphAttributes\n\n for (var i = 0; i < length; i++) {\n var influence = influences[i];\n\n if (influence[1] !== 0) {\n if (morphTargets) geometry.deleteAttribute('morphTarget' + i);\n if (morphNormals) geometry.deleteAttribute('morphNormal' + i);\n }\n } // Collect influences\n\n\n for (var i = 0; i < length; i++) {\n var influence = influences[i];\n influence[0] = i;\n influence[1] = objectInfluences[i];\n }\n\n influences.sort(absNumericalSort); // Add morphAttributes\n\n for (var i = 0; i < 8; i++) {\n var influence = influences[i];\n\n if (influence) {\n var index = influence[0];\n var value = influence[1];\n\n if (value) {\n if (morphTargets) geometry.setAttribute('morphTarget' + i, morphTargets[index]);\n if (morphNormals) geometry.setAttribute('morphNormal' + i, morphNormals[index]);\n morphInfluences[i] = value;\n continue;\n }\n }\n\n morphInfluences[i] = 0;\n }\n\n program.getUniforms().setValue(gl, 'morphTargetInfluences', morphInfluences);\n }\n\n return {\n update: update\n };\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction WebGLObjects(gl, geometries, attributes, info) {\n var updateList = {};\n\n function update(object) {\n var frame = info.render.frame;\n var geometry = object.geometry;\n var buffergeometry = geometries.get(object, geometry); // Update once per frame\n\n if (updateList[buffergeometry.id] !== frame) {\n if (geometry.isGeometry) {\n buffergeometry.updateFromObject(object);\n }\n\n geometries.update(buffergeometry);\n updateList[buffergeometry.id] = frame;\n }\n\n if (object.isInstancedMesh) {\n attributes.update(object.instanceMatrix, 34962);\n }\n\n return buffergeometry;\n }\n\n function dispose() {\n updateList = {};\n }\n\n return {\n update: update,\n dispose: dispose\n };\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction CubeTexture(images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding) {\n images = images !== undefined ? images : [];\n mapping = mapping !== undefined ? mapping : CubeReflectionMapping;\n format = format !== undefined ? format : RGBFormat;\n Texture.call(this, images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding);\n this.flipY = false;\n}\n\nCubeTexture.prototype = Object.create(Texture.prototype);\nCubeTexture.prototype.constructor = CubeTexture;\nCubeTexture.prototype.isCubeTexture = true;\nObject.defineProperty(CubeTexture.prototype, 'images', {\n get: function get() {\n return this.image;\n },\n set: function set(value) {\n this.image = value;\n }\n});\n/**\n * @author Takahiro https://github.com/takahirox\n */\n\nfunction DataTexture2DArray(data, width, height, depth) {\n Texture.call(this, null);\n this.image = {\n data: data || null,\n width: width || 1,\n height: height || 1,\n depth: depth || 1\n };\n this.magFilter = NearestFilter;\n this.minFilter = NearestFilter;\n this.wrapR = ClampToEdgeWrapping;\n this.generateMipmaps = false;\n this.flipY = false;\n this.needsUpdate = true;\n}\n\nDataTexture2DArray.prototype = Object.create(Texture.prototype);\nDataTexture2DArray.prototype.constructor = DataTexture2DArray;\nDataTexture2DArray.prototype.isDataTexture2DArray = true;\n/**\n * @author Artur Trzesiok\n */\n\nfunction DataTexture3D(data, width, height, depth) {\n // We're going to add .setXXX() methods for setting properties later.\n // Users can still set in DataTexture3D directly.\n //\n //\tvar texture = new THREE.DataTexture3D( data, width, height, depth );\n // \ttexture.anisotropy = 16;\n //\n // See #14839\n Texture.call(this, null);\n this.image = {\n data: data || null,\n width: width || 1,\n height: height || 1,\n depth: depth || 1\n };\n this.magFilter = NearestFilter;\n this.minFilter = NearestFilter;\n this.wrapR = ClampToEdgeWrapping;\n this.generateMipmaps = false;\n this.flipY = false;\n this.needsUpdate = true;\n}\n\nDataTexture3D.prototype = Object.create(Texture.prototype);\nDataTexture3D.prototype.constructor = DataTexture3D;\nDataTexture3D.prototype.isDataTexture3D = true;\n/**\n * @author tschw\n * @author Mugen87 / https://github.com/Mugen87\n * @author mrdoob / http://mrdoob.com/\n *\n * Uniforms of a program.\n * Those form a tree structure with a special top-level container for the root,\n * which you get by calling 'new WebGLUniforms( gl, program )'.\n *\n *\n * Properties of inner nodes including the top-level container:\n *\n * .seq - array of nested uniforms\n * .map - nested uniforms by name\n *\n *\n * Methods of all nodes except the top-level container:\n *\n * .setValue( gl, value, [textures] )\n *\n * \t\tuploads a uniform value(s)\n * \tthe 'textures' parameter is needed for sampler uniforms\n *\n *\n * Static methods of the top-level container (textures factorizations):\n *\n * .upload( gl, seq, values, textures )\n *\n * \t\tsets uniforms in 'seq' to 'values[id].value'\n *\n * .seqWithValue( seq, values ) : filteredSeq\n *\n * \t\tfilters 'seq' entries with corresponding entry in values\n *\n *\n * Methods of the top-level container (textures factorizations):\n *\n * .setValue( gl, name, value, textures )\n *\n * \t\tsets uniform with name 'name' to 'value'\n *\n * .setOptional( gl, obj, prop )\n *\n * \t\tlike .set for an optional property of the object\n *\n */\n\nvar emptyTexture = new Texture();\nvar emptyTexture2dArray = new DataTexture2DArray();\nvar emptyTexture3d = new DataTexture3D();\nvar emptyCubeTexture = new CubeTexture(); // --- Utilities ---\n// Array Caches (provide typed arrays for temporary by size)\n\nvar arrayCacheF32 = [];\nvar arrayCacheI32 = []; // Float32Array caches used for uploading Matrix uniforms\n\nvar mat4array = new Float32Array(16);\nvar mat3array = new Float32Array(9);\nvar mat2array = new Float32Array(4); // Flattening for arrays of vectors and matrices\n\nfunction flatten(array, nBlocks, blockSize) {\n var firstElem = array[0];\n if (firstElem <= 0 || firstElem > 0) return array; // unoptimized: ! isNaN( firstElem )\n // see http://jacksondunstan.com/articles/983\n\n var n = nBlocks * blockSize,\n r = arrayCacheF32[n];\n\n if (r === undefined) {\n r = new Float32Array(n);\n arrayCacheF32[n] = r;\n }\n\n if (nBlocks !== 0) {\n firstElem.toArray(r, 0);\n\n for (var i = 1, offset = 0; i !== nBlocks; ++i) {\n offset += blockSize;\n array[i].toArray(r, offset);\n }\n }\n\n return r;\n}\n\nfunction arraysEqual(a, b) {\n if (a.length !== b.length) return false;\n\n for (var i = 0, l = a.length; i < l; i++) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n}\n\nfunction copyArray(a, b) {\n for (var i = 0, l = b.length; i < l; i++) {\n a[i] = b[i];\n }\n} // Texture unit allocation\n\n\nfunction allocTexUnits(textures, n) {\n var r = arrayCacheI32[n];\n\n if (r === undefined) {\n r = new Int32Array(n);\n arrayCacheI32[n] = r;\n }\n\n for (var i = 0; i !== n; ++i) {\n r[i] = textures.allocateTextureUnit();\n }\n\n return r;\n} // --- Setters ---\n// Note: Defining these methods externally, because they come in a bunch\n// and this way their names minify.\n// Single scalar\n\n\nfunction setValueV1f(gl, v) {\n var cache = this.cache;\n if (cache[0] === v) return;\n gl.uniform1f(this.addr, v);\n cache[0] = v;\n} // Single float vector (from flat array or THREE.VectorN)\n\n\nfunction setValueV2f(gl, v) {\n var cache = this.cache;\n\n if (v.x !== undefined) {\n if (cache[0] !== v.x || cache[1] !== v.y) {\n gl.uniform2f(this.addr, v.x, v.y);\n cache[0] = v.x;\n cache[1] = v.y;\n }\n } else {\n if (arraysEqual(cache, v)) return;\n gl.uniform2fv(this.addr, v);\n copyArray(cache, v);\n }\n}\n\nfunction setValueV3f(gl, v) {\n var cache = this.cache;\n\n if (v.x !== undefined) {\n if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z) {\n gl.uniform3f(this.addr, v.x, v.y, v.z);\n cache[0] = v.x;\n cache[1] = v.y;\n cache[2] = v.z;\n }\n } else if (v.r !== undefined) {\n if (cache[0] !== v.r || cache[1] !== v.g || cache[2] !== v.b) {\n gl.uniform3f(this.addr, v.r, v.g, v.b);\n cache[0] = v.r;\n cache[1] = v.g;\n cache[2] = v.b;\n }\n } else {\n if (arraysEqual(cache, v)) return;\n gl.uniform3fv(this.addr, v);\n copyArray(cache, v);\n }\n}\n\nfunction setValueV4f(gl, v) {\n var cache = this.cache;\n\n if (v.x !== undefined) {\n if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z || cache[3] !== v.w) {\n gl.uniform4f(this.addr, v.x, v.y, v.z, v.w);\n cache[0] = v.x;\n cache[1] = v.y;\n cache[2] = v.z;\n cache[3] = v.w;\n }\n } else {\n if (arraysEqual(cache, v)) return;\n gl.uniform4fv(this.addr, v);\n copyArray(cache, v);\n }\n} // Single matrix (from flat array or MatrixN)\n\n\nfunction setValueM2(gl, v) {\n var cache = this.cache;\n var elements = v.elements;\n\n if (elements === undefined) {\n if (arraysEqual(cache, v)) return;\n gl.uniformMatrix2fv(this.addr, false, v);\n copyArray(cache, v);\n } else {\n if (arraysEqual(cache, elements)) return;\n mat2array.set(elements);\n gl.uniformMatrix2fv(this.addr, false, mat2array);\n copyArray(cache, elements);\n }\n}\n\nfunction setValueM3(gl, v) {\n var cache = this.cache;\n var elements = v.elements;\n\n if (elements === undefined) {\n if (arraysEqual(cache, v)) return;\n gl.uniformMatrix3fv(this.addr, false, v);\n copyArray(cache, v);\n } else {\n if (arraysEqual(cache, elements)) return;\n mat3array.set(elements);\n gl.uniformMatrix3fv(this.addr, false, mat3array);\n copyArray(cache, elements);\n }\n}\n\nfunction setValueM4(gl, v) {\n var cache = this.cache;\n var elements = v.elements;\n\n if (elements === undefined) {\n if (arraysEqual(cache, v)) return;\n gl.uniformMatrix4fv(this.addr, false, v);\n copyArray(cache, v);\n } else {\n if (arraysEqual(cache, elements)) return;\n mat4array.set(elements);\n gl.uniformMatrix4fv(this.addr, false, mat4array);\n copyArray(cache, elements);\n }\n} // Single texture (2D / Cube)\n\n\nfunction setValueT1(gl, v, textures) {\n var cache = this.cache;\n var unit = textures.allocateTextureUnit();\n\n if (cache[0] !== unit) {\n gl.uniform1i(this.addr, unit);\n cache[0] = unit;\n }\n\n textures.safeSetTexture2D(v || emptyTexture, unit);\n}\n\nfunction setValueT2DArray1(gl, v, textures) {\n var cache = this.cache;\n var unit = textures.allocateTextureUnit();\n\n if (cache[0] !== unit) {\n gl.uniform1i(this.addr, unit);\n cache[0] = unit;\n }\n\n textures.setTexture2DArray(v || emptyTexture2dArray, unit);\n}\n\nfunction setValueT3D1(gl, v, textures) {\n var cache = this.cache;\n var unit = textures.allocateTextureUnit();\n\n if (cache[0] !== unit) {\n gl.uniform1i(this.addr, unit);\n cache[0] = unit;\n }\n\n textures.setTexture3D(v || emptyTexture3d, unit);\n}\n\nfunction setValueT6(gl, v, textures) {\n var cache = this.cache;\n var unit = textures.allocateTextureUnit();\n\n if (cache[0] !== unit) {\n gl.uniform1i(this.addr, unit);\n cache[0] = unit;\n }\n\n textures.safeSetTextureCube(v || emptyCubeTexture, unit);\n} // Integer / Boolean vectors or arrays thereof (always flat arrays)\n\n\nfunction setValueV1i(gl, v) {\n var cache = this.cache;\n if (cache[0] === v) return;\n gl.uniform1i(this.addr, v);\n cache[0] = v;\n}\n\nfunction setValueV2i(gl, v) {\n var cache = this.cache;\n if (arraysEqual(cache, v)) return;\n gl.uniform2iv(this.addr, v);\n copyArray(cache, v);\n}\n\nfunction setValueV3i(gl, v) {\n var cache = this.cache;\n if (arraysEqual(cache, v)) return;\n gl.uniform3iv(this.addr, v);\n copyArray(cache, v);\n}\n\nfunction setValueV4i(gl, v) {\n var cache = this.cache;\n if (arraysEqual(cache, v)) return;\n gl.uniform4iv(this.addr, v);\n copyArray(cache, v);\n} // Helper to pick the right setter for the singular case\n\n\nfunction getSingularSetter(type) {\n switch (type) {\n case 0x1406:\n return setValueV1f;\n // FLOAT\n\n case 0x8b50:\n return setValueV2f;\n // _VEC2\n\n case 0x8b51:\n return setValueV3f;\n // _VEC3\n\n case 0x8b52:\n return setValueV4f;\n // _VEC4\n\n case 0x8b5a:\n return setValueM2;\n // _MAT2\n\n case 0x8b5b:\n return setValueM3;\n // _MAT3\n\n case 0x8b5c:\n return setValueM4;\n // _MAT4\n\n case 0x8b5e:\n case 0x8d66:\n return setValueT1;\n // SAMPLER_2D, SAMPLER_EXTERNAL_OES\n\n case 0x8b5f:\n return setValueT3D1;\n // SAMPLER_3D\n\n case 0x8b60:\n return setValueT6;\n // SAMPLER_CUBE\n\n case 0x8DC1:\n return setValueT2DArray1;\n // SAMPLER_2D_ARRAY\n\n case 0x1404:\n case 0x8b56:\n return setValueV1i;\n // INT, BOOL\n\n case 0x8b53:\n case 0x8b57:\n return setValueV2i;\n // _VEC2\n\n case 0x8b54:\n case 0x8b58:\n return setValueV3i;\n // _VEC3\n\n case 0x8b55:\n case 0x8b59:\n return setValueV4i;\n // _VEC4\n }\n} // Array of scalars\n\n\nfunction setValueV1fArray(gl, v) {\n gl.uniform1fv(this.addr, v);\n} // Integer / Boolean vectors or arrays thereof (always flat arrays)\n\n\nfunction setValueV1iArray(gl, v) {\n gl.uniform1iv(this.addr, v);\n}\n\nfunction setValueV2iArray(gl, v) {\n gl.uniform2iv(this.addr, v);\n}\n\nfunction setValueV3iArray(gl, v) {\n gl.uniform3iv(this.addr, v);\n}\n\nfunction setValueV4iArray(gl, v) {\n gl.uniform4iv(this.addr, v);\n} // Array of vectors (flat or from THREE classes)\n\n\nfunction setValueV2fArray(gl, v) {\n var data = flatten(v, this.size, 2);\n gl.uniform2fv(this.addr, data);\n}\n\nfunction setValueV3fArray(gl, v) {\n var data = flatten(v, this.size, 3);\n gl.uniform3fv(this.addr, data);\n}\n\nfunction setValueV4fArray(gl, v) {\n var data = flatten(v, this.size, 4);\n gl.uniform4fv(this.addr, data);\n} // Array of matrices (flat or from THREE clases)\n\n\nfunction setValueM2Array(gl, v) {\n var data = flatten(v, this.size, 4);\n gl.uniformMatrix2fv(this.addr, false, data);\n}\n\nfunction setValueM3Array(gl, v) {\n var data = flatten(v, this.size, 9);\n gl.uniformMatrix3fv(this.addr, false, data);\n}\n\nfunction setValueM4Array(gl, v) {\n var data = flatten(v, this.size, 16);\n gl.uniformMatrix4fv(this.addr, false, data);\n} // Array of textures (2D / Cube)\n\n\nfunction setValueT1Array(gl, v, textures) {\n var n = v.length;\n var units = allocTexUnits(textures, n);\n gl.uniform1iv(this.addr, units);\n\n for (var i = 0; i !== n; ++i) {\n textures.safeSetTexture2D(v[i] || emptyTexture, units[i]);\n }\n}\n\nfunction setValueT6Array(gl, v, textures) {\n var n = v.length;\n var units = allocTexUnits(textures, n);\n gl.uniform1iv(this.addr, units);\n\n for (var i = 0; i !== n; ++i) {\n textures.safeSetTextureCube(v[i] || emptyCubeTexture, units[i]);\n }\n} // Helper to pick the right setter for a pure (bottom-level) array\n\n\nfunction getPureArraySetter(type) {\n switch (type) {\n case 0x1406:\n return setValueV1fArray;\n // FLOAT\n\n case 0x8b50:\n return setValueV2fArray;\n // _VEC2\n\n case 0x8b51:\n return setValueV3fArray;\n // _VEC3\n\n case 0x8b52:\n return setValueV4fArray;\n // _VEC4\n\n case 0x8b5a:\n return setValueM2Array;\n // _MAT2\n\n case 0x8b5b:\n return setValueM3Array;\n // _MAT3\n\n case 0x8b5c:\n return setValueM4Array;\n // _MAT4\n\n case 0x8b5e:\n return setValueT1Array;\n // SAMPLER_2D\n\n case 0x8b60:\n return setValueT6Array;\n // SAMPLER_CUBE\n\n case 0x1404:\n case 0x8b56:\n return setValueV1iArray;\n // INT, BOOL\n\n case 0x8b53:\n case 0x8b57:\n return setValueV2iArray;\n // _VEC2\n\n case 0x8b54:\n case 0x8b58:\n return setValueV3iArray;\n // _VEC3\n\n case 0x8b55:\n case 0x8b59:\n return setValueV4iArray;\n // _VEC4\n }\n} // --- Uniform Classes ---\n\n\nfunction SingleUniform(id, activeInfo, addr) {\n this.id = id;\n this.addr = addr;\n this.cache = [];\n this.setValue = getSingularSetter(activeInfo.type); // this.path = activeInfo.name; // DEBUG\n}\n\nfunction PureArrayUniform(id, activeInfo, addr) {\n this.id = id;\n this.addr = addr;\n this.cache = [];\n this.size = activeInfo.size;\n this.setValue = getPureArraySetter(activeInfo.type); // this.path = activeInfo.name; // DEBUG\n}\n\nPureArrayUniform.prototype.updateCache = function (data) {\n var cache = this.cache;\n\n if (data instanceof Float32Array && cache.length !== data.length) {\n this.cache = new Float32Array(data.length);\n }\n\n copyArray(cache, data);\n};\n\nfunction StructuredUniform(id) {\n this.id = id;\n this.seq = [];\n this.map = {};\n}\n\nStructuredUniform.prototype.setValue = function (gl, value, textures) {\n var seq = this.seq;\n\n for (var i = 0, n = seq.length; i !== n; ++i) {\n var u = seq[i];\n u.setValue(gl, value[u.id], textures);\n }\n}; // --- Top-level ---\n// Parser - builds up the property tree from the path strings\n\n\nvar RePathPart = /([\\w\\d_]+)(\\])?(\\[|\\.)?/g; // extracts\n// \t- the identifier (member name or array index)\n// - followed by an optional right bracket (found when array index)\n// - followed by an optional left bracket or dot (type of subscript)\n//\n// Note: These portions can be read in a non-overlapping fashion and\n// allow straightforward parsing of the hierarchy that WebGL encodes\n// in the uniform names.\n\nfunction addUniform(container, uniformObject) {\n container.seq.push(uniformObject);\n container.map[uniformObject.id] = uniformObject;\n}\n\nfunction parseUniform(activeInfo, addr, container) {\n var path = activeInfo.name,\n pathLength = path.length; // reset RegExp object, because of the early exit of a previous run\n\n RePathPart.lastIndex = 0;\n\n while (true) {\n var match = RePathPart.exec(path),\n matchEnd = RePathPart.lastIndex,\n id = match[1],\n idIsIndex = match[2] === ']',\n subscript = match[3];\n if (idIsIndex) id = id | 0; // convert to integer\n\n if (subscript === undefined || subscript === '[' && matchEnd + 2 === pathLength) {\n // bare name or \"pure\" bottom-level array \"[0]\" suffix\n addUniform(container, subscript === undefined ? new SingleUniform(id, activeInfo, addr) : new PureArrayUniform(id, activeInfo, addr));\n break;\n } else {\n // step into inner node / create it in case it doesn't exist\n var map = container.map,\n next = map[id];\n\n if (next === undefined) {\n next = new StructuredUniform(id);\n addUniform(container, next);\n }\n\n container = next;\n }\n }\n} // Root Container\n\n\nfunction WebGLUniforms(gl, program) {\n this.seq = [];\n this.map = {};\n var n = gl.getProgramParameter(program, 35718);\n\n for (var i = 0; i < n; ++i) {\n var info = gl.getActiveUniform(program, i),\n addr = gl.getUniformLocation(program, info.name);\n parseUniform(info, addr, this);\n }\n}\n\nWebGLUniforms.prototype.setValue = function (gl, name, value, textures) {\n var u = this.map[name];\n if (u !== undefined) u.setValue(gl, value, textures);\n};\n\nWebGLUniforms.prototype.setOptional = function (gl, object, name) {\n var v = object[name];\n if (v !== undefined) this.setValue(gl, name, v);\n}; // Static interface\n\n\nWebGLUniforms.upload = function (gl, seq, values, textures) {\n for (var i = 0, n = seq.length; i !== n; ++i) {\n var u = seq[i],\n v = values[u.id];\n\n if (v.needsUpdate !== false) {\n // note: always updating when .needsUpdate is undefined\n u.setValue(gl, v.value, textures);\n }\n }\n};\n\nWebGLUniforms.seqWithValue = function (seq, values) {\n var r = [];\n\n for (var i = 0, n = seq.length; i !== n; ++i) {\n var u = seq[i];\n if (u.id in values) r.push(u);\n }\n\n return r;\n};\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction WebGLShader(gl, type, string) {\n var shader = gl.createShader(type);\n gl.shaderSource(shader, string);\n gl.compileShader(shader);\n return shader;\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nvar programIdCount = 0;\n\nfunction addLineNumbers(string) {\n var lines = string.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n lines[i] = i + 1 + ': ' + lines[i];\n }\n\n return lines.join('\\n');\n}\n\nfunction getEncodingComponents(encoding) {\n switch (encoding) {\n case LinearEncoding:\n return ['Linear', '( value )'];\n\n case sRGBEncoding:\n return ['sRGB', '( value )'];\n\n case RGBEEncoding:\n return ['RGBE', '( value )'];\n\n case RGBM7Encoding:\n return ['RGBM', '( value, 7.0 )'];\n\n case RGBM16Encoding:\n return ['RGBM', '( value, 16.0 )'];\n\n case RGBDEncoding:\n return ['RGBD', '( value, 256.0 )'];\n\n case GammaEncoding:\n return ['Gamma', '( value, float( GAMMA_FACTOR ) )'];\n\n case LogLuvEncoding:\n return ['LogLuv', '( value )'];\n\n default:\n throw new Error('unsupported encoding: ' + encoding);\n }\n}\n\nfunction getShaderErrors(gl, shader, type) {\n var status = gl.getShaderParameter(shader, 35713);\n var log = gl.getShaderInfoLog(shader).trim();\n if (status && log === '') return ''; // --enable-privileged-webgl-extension\n // console.log( '**' + type + '**', gl.getExtension( 'WEBGL_debug_shaders' ).getTranslatedShaderSource( shader ) );\n\n var source = gl.getShaderSource(shader);\n return 'THREE.WebGLShader: gl.getShaderInfoLog() ' + type + '\\n' + log + addLineNumbers(source);\n}\n\nfunction getTexelDecodingFunction(functionName, encoding) {\n var components = getEncodingComponents(encoding);\n return 'vec4 ' + functionName + '( vec4 value ) { return ' + components[0] + 'ToLinear' + components[1] + '; }';\n}\n\nfunction getTexelEncodingFunction(functionName, encoding) {\n var components = getEncodingComponents(encoding);\n return 'vec4 ' + functionName + '( vec4 value ) { return LinearTo' + components[0] + components[1] + '; }';\n}\n\nfunction getToneMappingFunction(functionName, toneMapping) {\n var toneMappingName;\n\n switch (toneMapping) {\n case LinearToneMapping:\n toneMappingName = 'Linear';\n break;\n\n case ReinhardToneMapping:\n toneMappingName = 'Reinhard';\n break;\n\n case Uncharted2ToneMapping:\n toneMappingName = 'Uncharted2';\n break;\n\n case CineonToneMapping:\n toneMappingName = 'OptimizedCineon';\n break;\n\n case ACESFilmicToneMapping:\n toneMappingName = 'ACESFilmic';\n break;\n\n default:\n throw new Error('unsupported toneMapping: ' + toneMapping);\n }\n\n return 'vec3 ' + functionName + '( vec3 color ) { return ' + toneMappingName + 'ToneMapping( color ); }';\n}\n\nfunction generateExtensions(extensions, parameters, rendererExtensions) {\n extensions = extensions || {};\n var chunks = [extensions.derivatives || parameters.envMapCubeUV || parameters.bumpMap || parameters.tangentSpaceNormalMap || parameters.clearcoatNormalMap || parameters.flatShading ? '#extension GL_OES_standard_derivatives : enable' : '', (extensions.fragDepth || parameters.logarithmicDepthBuffer) && rendererExtensions.get('EXT_frag_depth') ? '#extension GL_EXT_frag_depth : enable' : '', extensions.drawBuffers && rendererExtensions.get('WEBGL_draw_buffers') ? '#extension GL_EXT_draw_buffers : require' : '', (extensions.shaderTextureLOD || parameters.envMap) && rendererExtensions.get('EXT_shader_texture_lod') ? '#extension GL_EXT_shader_texture_lod : enable' : ''];\n return chunks.filter(filterEmptyLine).join('\\n');\n}\n\nfunction generateDefines(defines) {\n var chunks = [];\n\n for (var name in defines) {\n var value = defines[name];\n if (value === false) continue;\n chunks.push('#define ' + name + ' ' + value);\n }\n\n return chunks.join('\\n');\n}\n\nfunction fetchAttributeLocations(gl, program) {\n var attributes = {};\n var n = gl.getProgramParameter(program, 35721);\n\n for (var i = 0; i < n; i++) {\n var info = gl.getActiveAttrib(program, i);\n var name = info.name; // console.log( 'THREE.WebGLProgram: ACTIVE VERTEX ATTRIBUTE:', name, i );\n\n attributes[name] = gl.getAttribLocation(program, name);\n }\n\n return attributes;\n}\n\nfunction filterEmptyLine(string) {\n return string !== '';\n}\n\nfunction replaceLightNums(string, parameters) {\n return string.replace(/NUM_DIR_LIGHTS/g, parameters.numDirLights).replace(/NUM_SPOT_LIGHTS/g, parameters.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g, parameters.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g, parameters.numPointLights).replace(/NUM_HEMI_LIGHTS/g, parameters.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g, parameters.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g, parameters.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g, parameters.numPointLightShadows);\n}\n\nfunction replaceClippingPlaneNums(string, parameters) {\n return string.replace(/NUM_CLIPPING_PLANES/g, parameters.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g, parameters.numClippingPlanes - parameters.numClipIntersection);\n} // Resolve Includes\n\n\nvar includePattern = /^[ \\t]*#include +<([\\w\\d./]+)>/gm;\n\nfunction resolveIncludes(string) {\n return string.replace(includePattern, includeReplacer);\n}\n\nfunction includeReplacer(match, include) {\n var string = ShaderChunk[include];\n\n if (string === undefined) {\n throw new Error('Can not resolve #include <' + include + '>');\n }\n\n return resolveIncludes(string);\n} // Unroll Loops\n\n\nvar loopPattern = /#pragma unroll_loop[\\s]+?for \\( int i \\= (\\d+)\\; i < (\\d+)\\; i \\+\\+ \\) \\{([\\s\\S]+?)(?=\\})\\}/g;\n\nfunction unrollLoops(string) {\n return string.replace(loopPattern, loopReplacer);\n}\n\nfunction loopReplacer(match, start, end, snippet) {\n var string = '';\n\n for (var i = parseInt(start); i < parseInt(end); i++) {\n string += snippet.replace(/\\[ i \\]/g, '[ ' + i + ' ]').replace(/UNROLLED_LOOP_INDEX/g, i);\n }\n\n return string;\n} //\n\n\nfunction generatePrecision(parameters) {\n var precisionstring = \"precision \" + parameters.precision + \" float;\\nprecision \" + parameters.precision + \" int;\";\n\n if (parameters.precision === \"highp\") {\n precisionstring += \"\\n#define HIGH_PRECISION\";\n } else if (parameters.precision === \"mediump\") {\n precisionstring += \"\\n#define MEDIUM_PRECISION\";\n } else if (parameters.precision === \"lowp\") {\n precisionstring += \"\\n#define LOW_PRECISION\";\n }\n\n return precisionstring;\n}\n\nfunction generateShadowMapTypeDefine(parameters) {\n var shadowMapTypeDefine = 'SHADOWMAP_TYPE_BASIC';\n\n if (parameters.shadowMapType === PCFShadowMap) {\n shadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF';\n } else if (parameters.shadowMapType === PCFSoftShadowMap) {\n shadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF_SOFT';\n } else if (parameters.shadowMapType === VSMShadowMap) {\n shadowMapTypeDefine = 'SHADOWMAP_TYPE_VSM';\n }\n\n return shadowMapTypeDefine;\n}\n\nfunction generateEnvMapTypeDefine(parameters) {\n var envMapTypeDefine = 'ENVMAP_TYPE_CUBE';\n\n if (parameters.envMap) {\n switch (parameters.envMapMode) {\n case CubeReflectionMapping:\n case CubeRefractionMapping:\n envMapTypeDefine = 'ENVMAP_TYPE_CUBE';\n break;\n\n case CubeUVReflectionMapping:\n case CubeUVRefractionMapping:\n envMapTypeDefine = 'ENVMAP_TYPE_CUBE_UV';\n break;\n\n case EquirectangularReflectionMapping:\n case EquirectangularRefractionMapping:\n envMapTypeDefine = 'ENVMAP_TYPE_EQUIREC';\n break;\n\n case SphericalReflectionMapping:\n envMapTypeDefine = 'ENVMAP_TYPE_SPHERE';\n break;\n }\n }\n\n return envMapTypeDefine;\n}\n\nfunction generateEnvMapModeDefine(parameters) {\n var envMapModeDefine = 'ENVMAP_MODE_REFLECTION';\n\n if (parameters.envMap) {\n switch (parameters.envMapMode) {\n case CubeRefractionMapping:\n case EquirectangularRefractionMapping:\n envMapModeDefine = 'ENVMAP_MODE_REFRACTION';\n break;\n }\n }\n\n return envMapModeDefine;\n}\n\nfunction generateEnvMapBlendingDefine(parameters) {\n var envMapBlendingDefine = 'ENVMAP_BLENDING_MULTIPLY';\n\n if (parameters.envMap) {\n switch (parameters.combine) {\n case MultiplyOperation:\n envMapBlendingDefine = 'ENVMAP_BLENDING_MULTIPLY';\n break;\n\n case MixOperation:\n envMapBlendingDefine = 'ENVMAP_BLENDING_MIX';\n break;\n\n case AddOperation:\n envMapBlendingDefine = 'ENVMAP_BLENDING_ADD';\n break;\n }\n }\n\n return envMapBlendingDefine;\n}\n\nfunction WebGLProgram(renderer, extensions, cacheKey, material, shader, parameters) {\n var gl = renderer.getContext();\n var defines = material.defines;\n var vertexShader = shader.vertexShader;\n var fragmentShader = shader.fragmentShader;\n var shadowMapTypeDefine = generateShadowMapTypeDefine(parameters);\n var envMapTypeDefine = generateEnvMapTypeDefine(parameters);\n var envMapModeDefine = generateEnvMapModeDefine(parameters);\n var envMapBlendingDefine = generateEnvMapBlendingDefine(parameters);\n var gammaFactorDefine = renderer.gammaFactor > 0 ? renderer.gammaFactor : 1.0;\n var customExtensions = parameters.isWebGL2 ? '' : generateExtensions(material.extensions, parameters, extensions);\n var customDefines = generateDefines(defines);\n var program = gl.createProgram();\n var prefixVertex, prefixFragment;\n var numMultiviewViews = parameters.numMultiviewViews;\n\n if (material.isRawShaderMaterial) {\n prefixVertex = [customDefines].filter(filterEmptyLine).join('\\n');\n\n if (prefixVertex.length > 0) {\n prefixVertex += '\\n';\n }\n\n prefixFragment = [customExtensions, customDefines].filter(filterEmptyLine).join('\\n');\n\n if (prefixFragment.length > 0) {\n prefixFragment += '\\n';\n }\n } else {\n prefixVertex = [generatePrecision(parameters), '#define SHADER_NAME ' + shader.name, customDefines, parameters.instancing ? '#define USE_INSTANCING' : '', parameters.supportsVertexTextures ? '#define VERTEX_TEXTURES' : '', '#define GAMMA_FACTOR ' + gammaFactorDefine, '#define MAX_BONES ' + parameters.maxBones, parameters.useFog && parameters.fog ? '#define USE_FOG' : '', parameters.useFog && parameters.fogExp2 ? '#define FOG_EXP2' : '', parameters.map ? '#define USE_MAP' : '', parameters.envMap ? '#define USE_ENVMAP' : '', parameters.envMap ? '#define ' + envMapModeDefine : '', parameters.lightMap ? '#define USE_LIGHTMAP' : '', parameters.aoMap ? '#define USE_AOMAP' : '', parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', parameters.bumpMap ? '#define USE_BUMPMAP' : '', parameters.normalMap ? '#define USE_NORMALMAP' : '', parameters.normalMap && parameters.objectSpaceNormalMap ? '#define OBJECTSPACE_NORMALMAP' : '', parameters.normalMap && parameters.tangentSpaceNormalMap ? '#define TANGENTSPACE_NORMALMAP' : '', parameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '', parameters.displacementMap && parameters.supportsVertexTextures ? '#define USE_DISPLACEMENTMAP' : '', parameters.specularMap ? '#define USE_SPECULARMAP' : '', parameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '', parameters.metalnessMap ? '#define USE_METALNESSMAP' : '', parameters.alphaMap ? '#define USE_ALPHAMAP' : '', parameters.vertexTangents ? '#define USE_TANGENT' : '', parameters.vertexColors ? '#define USE_COLOR' : '', parameters.vertexUvs ? '#define USE_UV' : '', parameters.uvsVertexOnly ? '#define UVS_VERTEX_ONLY' : '', parameters.flatShading ? '#define FLAT_SHADED' : '', parameters.skinning ? '#define USE_SKINNING' : '', parameters.useVertexTexture ? '#define BONE_TEXTURE' : '', parameters.morphTargets ? '#define USE_MORPHTARGETS' : '', parameters.morphNormals && parameters.flatShading === false ? '#define USE_MORPHNORMALS' : '', parameters.doubleSided ? '#define DOUBLE_SIDED' : '', parameters.flipSided ? '#define FLIP_SIDED' : '', parameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '', parameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '', parameters.sizeAttenuation ? '#define USE_SIZEATTENUATION' : '', parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '', parameters.logarithmicDepthBuffer && (parameters.isWebGL2 || extensions.get('EXT_frag_depth')) ? '#define USE_LOGDEPTHBUF_EXT' : '', 'uniform mat4 modelMatrix;', 'uniform mat4 modelViewMatrix;', 'uniform mat4 projectionMatrix;', 'uniform mat4 viewMatrix;', 'uniform mat3 normalMatrix;', 'uniform vec3 cameraPosition;', 'uniform bool isOrthographic;', '#ifdef USE_INSTANCING', ' attribute mat4 instanceMatrix;', '#endif', 'attribute vec3 position;', 'attribute vec3 normal;', 'attribute vec2 uv;', '#ifdef USE_TANGENT', '\tattribute vec4 tangent;', '#endif', '#ifdef USE_COLOR', '\tattribute vec3 color;', '#endif', '#ifdef USE_MORPHTARGETS', '\tattribute vec3 morphTarget0;', '\tattribute vec3 morphTarget1;', '\tattribute vec3 morphTarget2;', '\tattribute vec3 morphTarget3;', '\t#ifdef USE_MORPHNORMALS', '\t\tattribute vec3 morphNormal0;', '\t\tattribute vec3 morphNormal1;', '\t\tattribute vec3 morphNormal2;', '\t\tattribute vec3 morphNormal3;', '\t#else', '\t\tattribute vec3 morphTarget4;', '\t\tattribute vec3 morphTarget5;', '\t\tattribute vec3 morphTarget6;', '\t\tattribute vec3 morphTarget7;', '\t#endif', '#endif', '#ifdef USE_SKINNING', '\tattribute vec4 skinIndex;', '\tattribute vec4 skinWeight;', '#endif', '\\n'].filter(filterEmptyLine).join('\\n');\n prefixFragment = [customExtensions, generatePrecision(parameters), '#define SHADER_NAME ' + shader.name, customDefines, parameters.alphaTest ? '#define ALPHATEST ' + parameters.alphaTest + (parameters.alphaTest % 1 ? '' : '.0') : '', // add '.0' if integer\n '#define GAMMA_FACTOR ' + gammaFactorDefine, parameters.useFog && parameters.fog ? '#define USE_FOG' : '', parameters.useFog && parameters.fogExp2 ? '#define FOG_EXP2' : '', parameters.map ? '#define USE_MAP' : '', parameters.matcap ? '#define USE_MATCAP' : '', parameters.envMap ? '#define USE_ENVMAP' : '', parameters.envMap ? '#define ' + envMapTypeDefine : '', parameters.envMap ? '#define ' + envMapModeDefine : '', parameters.envMap ? '#define ' + envMapBlendingDefine : '', parameters.lightMap ? '#define USE_LIGHTMAP' : '', parameters.aoMap ? '#define USE_AOMAP' : '', parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', parameters.bumpMap ? '#define USE_BUMPMAP' : '', parameters.normalMap ? '#define USE_NORMALMAP' : '', parameters.normalMap && parameters.objectSpaceNormalMap ? '#define OBJECTSPACE_NORMALMAP' : '', parameters.normalMap && parameters.tangentSpaceNormalMap ? '#define TANGENTSPACE_NORMALMAP' : '', parameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '', parameters.specularMap ? '#define USE_SPECULARMAP' : '', parameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '', parameters.metalnessMap ? '#define USE_METALNESSMAP' : '', parameters.alphaMap ? '#define USE_ALPHAMAP' : '', parameters.sheen ? '#define USE_SHEEN' : '', parameters.vertexTangents ? '#define USE_TANGENT' : '', parameters.vertexColors ? '#define USE_COLOR' : '', parameters.vertexUvs ? '#define USE_UV' : '', parameters.uvsVertexOnly ? '#define UVS_VERTEX_ONLY' : '', parameters.gradientMap ? '#define USE_GRADIENTMAP' : '', parameters.flatShading ? '#define FLAT_SHADED' : '', parameters.doubleSided ? '#define DOUBLE_SIDED' : '', parameters.flipSided ? '#define FLIP_SIDED' : '', parameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '', parameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '', parameters.premultipliedAlpha ? '#define PREMULTIPLIED_ALPHA' : '', parameters.physicallyCorrectLights ? '#define PHYSICALLY_CORRECT_LIGHTS' : '', parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '', parameters.logarithmicDepthBuffer && (parameters.isWebGL2 || extensions.get('EXT_frag_depth')) ? '#define USE_LOGDEPTHBUF_EXT' : '', ((material.extensions ? material.extensions.shaderTextureLOD : false) || parameters.envMap) && (parameters.isWebGL2 || extensions.get('EXT_shader_texture_lod')) ? '#define TEXTURE_LOD_EXT' : '', 'uniform mat4 viewMatrix;', 'uniform vec3 cameraPosition;', 'uniform bool isOrthographic;', parameters.toneMapping !== NoToneMapping ? '#define TONE_MAPPING' : '', parameters.toneMapping !== NoToneMapping ? ShaderChunk['tonemapping_pars_fragment'] : '', // this code is required here because it is used by the toneMapping() function defined below\n parameters.toneMapping !== NoToneMapping ? getToneMappingFunction('toneMapping', parameters.toneMapping) : '', parameters.dithering ? '#define DITHERING' : '', parameters.outputEncoding || parameters.mapEncoding || parameters.matcapEncoding || parameters.envMapEncoding || parameters.emissiveMapEncoding ? ShaderChunk['encodings_pars_fragment'] : '', // this code is required here because it is used by the various encoding/decoding function defined below\n parameters.mapEncoding ? getTexelDecodingFunction('mapTexelToLinear', parameters.mapEncoding) : '', parameters.matcapEncoding ? getTexelDecodingFunction('matcapTexelToLinear', parameters.matcapEncoding) : '', parameters.envMapEncoding ? getTexelDecodingFunction('envMapTexelToLinear', parameters.envMapEncoding) : '', parameters.emissiveMapEncoding ? getTexelDecodingFunction('emissiveMapTexelToLinear', parameters.emissiveMapEncoding) : '', parameters.outputEncoding ? getTexelEncodingFunction('linearToOutputTexel', parameters.outputEncoding) : '', parameters.depthPacking ? '#define DEPTH_PACKING ' + material.depthPacking : '', '\\n'].filter(filterEmptyLine).join('\\n');\n }\n\n vertexShader = resolveIncludes(vertexShader);\n vertexShader = replaceLightNums(vertexShader, parameters);\n vertexShader = replaceClippingPlaneNums(vertexShader, parameters);\n fragmentShader = resolveIncludes(fragmentShader);\n fragmentShader = replaceLightNums(fragmentShader, parameters);\n fragmentShader = replaceClippingPlaneNums(fragmentShader, parameters);\n vertexShader = unrollLoops(vertexShader);\n fragmentShader = unrollLoops(fragmentShader);\n\n if (parameters.isWebGL2 && !material.isRawShaderMaterial) {\n var isGLSL3ShaderMaterial = false;\n var versionRegex = /^\\s*#version\\s+300\\s+es\\s*\\n/;\n\n if (material.isShaderMaterial && vertexShader.match(versionRegex) !== null && fragmentShader.match(versionRegex) !== null) {\n isGLSL3ShaderMaterial = true;\n vertexShader = vertexShader.replace(versionRegex, '');\n fragmentShader = fragmentShader.replace(versionRegex, '');\n } // GLSL 3.0 conversion\n\n\n prefixVertex = ['#version 300 es\\n', '#define attribute in', '#define varying out', '#define texture2D texture'].join('\\n') + '\\n' + prefixVertex;\n prefixFragment = ['#version 300 es\\n', '#define varying in', isGLSL3ShaderMaterial ? '' : 'out highp vec4 pc_fragColor;', isGLSL3ShaderMaterial ? '' : '#define gl_FragColor pc_fragColor', '#define gl_FragDepthEXT gl_FragDepth', '#define texture2D texture', '#define textureCube texture', '#define texture2DProj textureProj', '#define texture2DLodEXT textureLod', '#define texture2DProjLodEXT textureProjLod', '#define textureCubeLodEXT textureLod', '#define texture2DGradEXT textureGrad', '#define texture2DProjGradEXT textureProjGrad', '#define textureCubeGradEXT textureGrad'].join('\\n') + '\\n' + prefixFragment; // Multiview\n\n if (numMultiviewViews > 0) {\n prefixVertex = prefixVertex.replace('#version 300 es\\n', ['#version 300 es\\n', '#extension GL_OVR_multiview2 : require', 'layout(num_views = ' + numMultiviewViews + ') in;', '#define VIEW_ID gl_ViewID_OVR'].join('\\n'));\n prefixVertex = prefixVertex.replace(['uniform mat4 modelViewMatrix;', 'uniform mat4 projectionMatrix;', 'uniform mat4 viewMatrix;', 'uniform mat3 normalMatrix;'].join('\\n'), ['uniform mat4 modelViewMatrices[' + numMultiviewViews + '];', 'uniform mat4 projectionMatrices[' + numMultiviewViews + '];', 'uniform mat4 viewMatrices[' + numMultiviewViews + '];', 'uniform mat3 normalMatrices[' + numMultiviewViews + '];', '#define modelViewMatrix modelViewMatrices[VIEW_ID]', '#define projectionMatrix projectionMatrices[VIEW_ID]', '#define viewMatrix viewMatrices[VIEW_ID]', '#define normalMatrix normalMatrices[VIEW_ID]'].join('\\n'));\n prefixFragment = prefixFragment.replace('#version 300 es\\n', ['#version 300 es\\n', '#extension GL_OVR_multiview2 : require', '#define VIEW_ID gl_ViewID_OVR'].join('\\n'));\n prefixFragment = prefixFragment.replace('uniform mat4 viewMatrix;', ['uniform mat4 viewMatrices[' + numMultiviewViews + '];', '#define viewMatrix viewMatrices[VIEW_ID]'].join('\\n'));\n }\n }\n\n var vertexGlsl = prefixVertex + vertexShader;\n var fragmentGlsl = prefixFragment + fragmentShader; // console.log( '*VERTEX*', vertexGlsl );\n // console.log( '*FRAGMENT*', fragmentGlsl );\n\n var glVertexShader = WebGLShader(gl, 35633, vertexGlsl);\n var glFragmentShader = WebGLShader(gl, 35632, fragmentGlsl);\n gl.attachShader(program, glVertexShader);\n gl.attachShader(program, glFragmentShader); // Force a particular attribute to index 0.\n\n if (material.index0AttributeName !== undefined) {\n gl.bindAttribLocation(program, 0, material.index0AttributeName);\n } else if (parameters.morphTargets === true) {\n // programs with morphTargets displace position out of attribute 0\n gl.bindAttribLocation(program, 0, 'position');\n }\n\n gl.linkProgram(program); // check for link errors\n\n if (renderer.debug.checkShaderErrors) {\n var programLog = gl.getProgramInfoLog(program).trim();\n var vertexLog = gl.getShaderInfoLog(glVertexShader).trim();\n var fragmentLog = gl.getShaderInfoLog(glFragmentShader).trim();\n var runnable = true;\n var haveDiagnostics = true;\n\n if (gl.getProgramParameter(program, 35714) === false) {\n runnable = false;\n var vertexErrors = getShaderErrors(gl, glVertexShader, 'vertex');\n var fragmentErrors = getShaderErrors(gl, glFragmentShader, 'fragment');\n console.error('THREE.WebGLProgram: shader error: ', gl.getError(), '35715', gl.getProgramParameter(program, 35715), 'gl.getProgramInfoLog', programLog, vertexErrors, fragmentErrors);\n } else if (programLog !== '') {\n console.warn('THREE.WebGLProgram: gl.getProgramInfoLog()', programLog);\n } else if (vertexLog === '' || fragmentLog === '') {\n haveDiagnostics = false;\n }\n\n if (haveDiagnostics) {\n this.diagnostics = {\n runnable: runnable,\n material: material,\n programLog: programLog,\n vertexShader: {\n log: vertexLog,\n prefix: prefixVertex\n },\n fragmentShader: {\n log: fragmentLog,\n prefix: prefixFragment\n }\n };\n }\n } // clean up\n\n\n gl.deleteShader(glVertexShader);\n gl.deleteShader(glFragmentShader); // set up caching for uniform locations\n\n var cachedUniforms;\n\n this.getUniforms = function () {\n if (cachedUniforms === undefined) {\n cachedUniforms = new WebGLUniforms(gl, program);\n }\n\n return cachedUniforms;\n }; // set up caching for attribute locations\n\n\n var cachedAttributes;\n\n this.getAttributes = function () {\n if (cachedAttributes === undefined) {\n cachedAttributes = fetchAttributeLocations(gl, program);\n }\n\n return cachedAttributes;\n }; // free resource\n\n\n this.destroy = function () {\n gl.deleteProgram(program);\n this.program = undefined;\n }; //\n\n\n this.name = shader.name;\n this.id = programIdCount++;\n this.cacheKey = cacheKey;\n this.usedTimes = 1;\n this.program = program;\n this.vertexShader = glVertexShader;\n this.fragmentShader = glFragmentShader;\n this.numMultiviewViews = numMultiviewViews;\n return this;\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction WebGLPrograms(renderer, extensions, capabilities) {\n var programs = [];\n var isWebGL2 = capabilities.isWebGL2;\n var logarithmicDepthBuffer = capabilities.logarithmicDepthBuffer;\n var floatVertexTextures = capabilities.floatVertexTextures;\n var precision = capabilities.precision;\n var maxVertexUniforms = capabilities.maxVertexUniforms;\n var vertexTextures = capabilities.vertexTextures;\n var shaderIDs = {\n MeshDepthMaterial: 'depth',\n MeshDistanceMaterial: 'distanceRGBA',\n MeshNormalMaterial: 'normal',\n MeshBasicMaterial: 'basic',\n MeshLambertMaterial: 'lambert',\n MeshPhongMaterial: 'phong',\n MeshToonMaterial: 'phong',\n MeshStandardMaterial: 'physical',\n MeshPhysicalMaterial: 'physical',\n MeshMatcapMaterial: 'matcap',\n LineBasicMaterial: 'basic',\n LineDashedMaterial: 'dashed',\n PointsMaterial: 'points',\n ShadowMaterial: 'shadow',\n SpriteMaterial: 'sprite'\n };\n var parameterNames = [\"precision\", \"isWebGL2\", \"supportsVertexTextures\", \"outputEncoding\", \"instancing\", \"numMultiviewViews\", \"map\", \"mapEncoding\", \"matcap\", \"matcapEncoding\", \"envMap\", \"envMapMode\", \"envMapEncoding\", \"envMapCubeUV\", \"lightMap\", \"aoMap\", \"emissiveMap\", \"emissiveMapEncoding\", \"bumpMap\", \"normalMap\", \"objectSpaceNormalMap\", \"tangentSpaceNormalMap\", \"clearcoatNormalMap\", \"displacementMap\", \"specularMap\", \"roughnessMap\", \"metalnessMap\", \"gradientMap\", \"alphaMap\", \"combine\", \"vertexColors\", \"vertexTangents\", \"vertexUvs\", \"uvsVertexOnly\", \"fog\", \"useFog\", \"fogExp2\", \"flatShading\", \"sizeAttenuation\", \"logarithmicDepthBuffer\", \"skinning\", \"maxBones\", \"useVertexTexture\", \"morphTargets\", \"morphNormals\", \"maxMorphTargets\", \"maxMorphNormals\", \"premultipliedAlpha\", \"numDirLights\", \"numPointLights\", \"numSpotLights\", \"numHemiLights\", \"numRectAreaLights\", \"numDirLightShadows\", \"numPointLightShadows\", \"numSpotLightShadows\", \"shadowMapEnabled\", \"shadowMapType\", \"toneMapping\", 'physicallyCorrectLights', \"alphaTest\", \"doubleSided\", \"flipSided\", \"numClippingPlanes\", \"numClipIntersection\", \"depthPacking\", \"dithering\", \"sheen\"];\n\n function allocateBones(object) {\n var skeleton = object.skeleton;\n var bones = skeleton.bones;\n\n if (floatVertexTextures) {\n return 1024;\n } else {\n // default for when object is not specified\n // ( for example when prebuilding shader to be used with multiple objects )\n //\n // - leave some extra space for other uniforms\n // - limit here is ANGLE's 254 max uniform vectors\n // (up to 54 should be safe)\n var nVertexUniforms = maxVertexUniforms;\n var nVertexMatrices = Math.floor((nVertexUniforms - 20) / 4);\n var maxBones = Math.min(nVertexMatrices, bones.length);\n\n if (maxBones < bones.length) {\n console.warn('THREE.WebGLRenderer: Skeleton has ' + bones.length + ' bones. This GPU supports ' + maxBones + '.');\n return 0;\n }\n\n return maxBones;\n }\n }\n\n function getTextureEncodingFromMap(map, gammaOverrideLinear) {\n var encoding;\n\n if (!map) {\n encoding = LinearEncoding;\n } else if (map.isTexture) {\n encoding = map.encoding;\n } else if (map.isWebGLRenderTarget) {\n console.warn(\"THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead.\");\n encoding = map.texture.encoding;\n } // add backwards compatibility for WebGLRenderer.gammaInput/gammaOutput parameter, should probably be removed at some point.\n\n\n if (encoding === LinearEncoding && gammaOverrideLinear) {\n encoding = GammaEncoding;\n }\n\n return encoding;\n }\n\n this.getParameters = function (material, lights, shadows, fog, nClipPlanes, nClipIntersection, object) {\n var shaderID = shaderIDs[material.type]; // heuristics to create shader parameters according to lights in the scene\n // (not to blow over maxLights budget)\n\n var maxBones = object.isSkinnedMesh ? allocateBones(object) : 0;\n\n if (material.precision !== null) {\n precision = capabilities.getMaxPrecision(material.precision);\n\n if (precision !== material.precision) {\n console.warn('THREE.WebGLProgram.getParameters:', material.precision, 'not supported, using', precision, 'instead.');\n }\n }\n\n var currentRenderTarget = renderer.getRenderTarget();\n var numMultiviewViews = currentRenderTarget && currentRenderTarget.isWebGLMultiviewRenderTarget ? currentRenderTarget.numViews : 0;\n var parameters = {\n isWebGL2: isWebGL2,\n shaderID: shaderID,\n precision: precision,\n instancing: object.isInstancedMesh === true,\n supportsVertexTextures: vertexTextures,\n numMultiviewViews: numMultiviewViews,\n outputEncoding: getTextureEncodingFromMap(!currentRenderTarget ? null : currentRenderTarget.texture, renderer.gammaOutput),\n map: !!material.map,\n mapEncoding: getTextureEncodingFromMap(material.map, renderer.gammaInput),\n matcap: !!material.matcap,\n matcapEncoding: getTextureEncodingFromMap(material.matcap, renderer.gammaInput),\n envMap: !!material.envMap,\n envMapMode: material.envMap && material.envMap.mapping,\n envMapEncoding: getTextureEncodingFromMap(material.envMap, renderer.gammaInput),\n envMapCubeUV: !!material.envMap && (material.envMap.mapping === CubeUVReflectionMapping || material.envMap.mapping === CubeUVRefractionMapping),\n lightMap: !!material.lightMap,\n aoMap: !!material.aoMap,\n emissiveMap: !!material.emissiveMap,\n emissiveMapEncoding: getTextureEncodingFromMap(material.emissiveMap, renderer.gammaInput),\n bumpMap: !!material.bumpMap,\n normalMap: !!material.normalMap,\n objectSpaceNormalMap: material.normalMapType === ObjectSpaceNormalMap,\n tangentSpaceNormalMap: material.normalMapType === TangentSpaceNormalMap,\n clearcoatNormalMap: !!material.clearcoatNormalMap,\n displacementMap: !!material.displacementMap,\n roughnessMap: !!material.roughnessMap,\n metalnessMap: !!material.metalnessMap,\n specularMap: !!material.specularMap,\n alphaMap: !!material.alphaMap,\n gradientMap: !!material.gradientMap,\n sheen: !!material.sheen,\n combine: material.combine,\n vertexTangents: material.normalMap && material.vertexTangents,\n vertexColors: material.vertexColors,\n vertexUvs: !!material.map || !!material.bumpMap || !!material.normalMap || !!material.specularMap || !!material.alphaMap || !!material.emissiveMap || !!material.roughnessMap || !!material.metalnessMap || !!material.clearcoatNormalMap || !!material.displacementMap,\n uvsVertexOnly: !(!!material.map || !!material.bumpMap || !!material.normalMap || !!material.specularMap || !!material.alphaMap || !!material.emissiveMap || !!material.roughnessMap || !!material.metalnessMap || !!material.clearcoatNormalMap) && !!material.displacementMap,\n fog: !!fog,\n useFog: material.fog,\n fogExp2: fog && fog.isFogExp2,\n flatShading: material.flatShading,\n sizeAttenuation: material.sizeAttenuation,\n logarithmicDepthBuffer: logarithmicDepthBuffer,\n skinning: material.skinning && maxBones > 0,\n maxBones: maxBones,\n useVertexTexture: floatVertexTextures,\n morphTargets: material.morphTargets,\n morphNormals: material.morphNormals,\n maxMorphTargets: renderer.maxMorphTargets,\n maxMorphNormals: renderer.maxMorphNormals,\n numDirLights: lights.directional.length,\n numPointLights: lights.point.length,\n numSpotLights: lights.spot.length,\n numRectAreaLights: lights.rectArea.length,\n numHemiLights: lights.hemi.length,\n numDirLightShadows: lights.directionalShadowMap.length,\n numPointLightShadows: lights.pointShadowMap.length,\n numSpotLightShadows: lights.spotShadowMap.length,\n numClippingPlanes: nClipPlanes,\n numClipIntersection: nClipIntersection,\n dithering: material.dithering,\n shadowMapEnabled: renderer.shadowMap.enabled && shadows.length > 0,\n shadowMapType: renderer.shadowMap.type,\n toneMapping: material.toneMapped ? renderer.toneMapping : NoToneMapping,\n physicallyCorrectLights: renderer.physicallyCorrectLights,\n premultipliedAlpha: material.premultipliedAlpha,\n alphaTest: material.alphaTest,\n doubleSided: material.side === DoubleSide,\n flipSided: material.side === BackSide,\n depthPacking: material.depthPacking !== undefined ? material.depthPacking : false\n };\n return parameters;\n };\n\n this.getProgramCacheKey = function (material, parameters) {\n var array = [];\n\n if (parameters.shaderID) {\n array.push(parameters.shaderID);\n } else {\n array.push(material.fragmentShader);\n array.push(material.vertexShader);\n }\n\n if (material.defines !== undefined) {\n for (var name in material.defines) {\n array.push(name);\n array.push(material.defines[name]);\n }\n }\n\n for (var i = 0; i < parameterNames.length; i++) {\n array.push(parameters[parameterNames[i]]);\n }\n\n array.push(material.onBeforeCompile.toString());\n array.push(renderer.gammaOutput);\n array.push(renderer.gammaFactor);\n return array.join();\n };\n\n this.acquireProgram = function (material, shader, parameters, cacheKey) {\n var program; // Check if code has been already compiled\n\n for (var p = 0, pl = programs.length; p < pl; p++) {\n var preexistingProgram = programs[p];\n\n if (preexistingProgram.cacheKey === cacheKey) {\n program = preexistingProgram;\n ++program.usedTimes;\n break;\n }\n }\n\n if (program === undefined) {\n program = new WebGLProgram(renderer, extensions, cacheKey, material, shader, parameters);\n programs.push(program);\n }\n\n return program;\n };\n\n this.releaseProgram = function (program) {\n if (--program.usedTimes === 0) {\n // Remove from unordered set\n var i = programs.indexOf(program);\n programs[i] = programs[programs.length - 1];\n programs.pop(); // Free WebGL resources\n\n program.destroy();\n }\n }; // Exposed for resource monitoring & error feedback via renderer.info:\n\n\n this.programs = programs;\n}\n/**\n * @author fordacious / fordacious.github.io\n */\n\n\nfunction WebGLProperties() {\n var properties = new WeakMap();\n\n function get(object) {\n var map = properties.get(object);\n\n if (map === undefined) {\n map = {};\n properties.set(object, map);\n }\n\n return map;\n }\n\n function remove(object) {\n properties.delete(object);\n }\n\n function update(object, key, value) {\n properties.get(object)[key] = value;\n }\n\n function dispose() {\n properties = new WeakMap();\n }\n\n return {\n get: get,\n remove: remove,\n update: update,\n dispose: dispose\n };\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction painterSortStable(a, b) {\n if (a.groupOrder !== b.groupOrder) {\n return a.groupOrder - b.groupOrder;\n } else if (a.renderOrder !== b.renderOrder) {\n return a.renderOrder - b.renderOrder;\n } else if (a.program !== b.program) {\n return a.program.id - b.program.id;\n } else if (a.material.id !== b.material.id) {\n return a.material.id - b.material.id;\n } else if (a.z !== b.z) {\n return a.z - b.z;\n } else {\n return a.id - b.id;\n }\n}\n\nfunction reversePainterSortStable(a, b) {\n if (a.groupOrder !== b.groupOrder) {\n return a.groupOrder - b.groupOrder;\n } else if (a.renderOrder !== b.renderOrder) {\n return a.renderOrder - b.renderOrder;\n } else if (a.z !== b.z) {\n return b.z - a.z;\n } else {\n return a.id - b.id;\n }\n}\n\nfunction WebGLRenderList() {\n var renderItems = [];\n var renderItemsIndex = 0;\n var opaque = [];\n var transparent = [];\n var defaultProgram = {\n id: -1\n };\n\n function init() {\n renderItemsIndex = 0;\n opaque.length = 0;\n transparent.length = 0;\n }\n\n function getNextRenderItem(object, geometry, material, groupOrder, z, group) {\n var renderItem = renderItems[renderItemsIndex];\n\n if (renderItem === undefined) {\n renderItem = {\n id: object.id,\n object: object,\n geometry: geometry,\n material: material,\n program: material.program || defaultProgram,\n groupOrder: groupOrder,\n renderOrder: object.renderOrder,\n z: z,\n group: group\n };\n renderItems[renderItemsIndex] = renderItem;\n } else {\n renderItem.id = object.id;\n renderItem.object = object;\n renderItem.geometry = geometry;\n renderItem.material = material;\n renderItem.program = material.program || defaultProgram;\n renderItem.groupOrder = groupOrder;\n renderItem.renderOrder = object.renderOrder;\n renderItem.z = z;\n renderItem.group = group;\n }\n\n renderItemsIndex++;\n return renderItem;\n }\n\n function push(object, geometry, material, groupOrder, z, group) {\n var renderItem = getNextRenderItem(object, geometry, material, groupOrder, z, group);\n (material.transparent === true ? transparent : opaque).push(renderItem);\n }\n\n function unshift(object, geometry, material, groupOrder, z, group) {\n var renderItem = getNextRenderItem(object, geometry, material, groupOrder, z, group);\n (material.transparent === true ? transparent : opaque).unshift(renderItem);\n }\n\n function sort() {\n if (opaque.length > 1) opaque.sort(painterSortStable);\n if (transparent.length > 1) transparent.sort(reversePainterSortStable);\n }\n\n return {\n opaque: opaque,\n transparent: transparent,\n init: init,\n push: push,\n unshift: unshift,\n sort: sort\n };\n}\n\nfunction WebGLRenderLists() {\n var lists = new WeakMap();\n\n function onSceneDispose(event) {\n var scene = event.target;\n scene.removeEventListener('dispose', onSceneDispose);\n lists.delete(scene);\n }\n\n function get(scene, camera) {\n var cameras = lists.get(scene);\n var list;\n\n if (cameras === undefined) {\n list = new WebGLRenderList();\n lists.set(scene, new WeakMap());\n lists.get(scene).set(camera, list);\n scene.addEventListener('dispose', onSceneDispose);\n } else {\n list = cameras.get(camera);\n\n if (list === undefined) {\n list = new WebGLRenderList();\n cameras.set(camera, list);\n }\n }\n\n return list;\n }\n\n function dispose() {\n lists = new WeakMap();\n }\n\n return {\n get: get,\n dispose: dispose\n };\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction UniformsCache() {\n var lights = {};\n return {\n get: function get(light) {\n if (lights[light.id] !== undefined) {\n return lights[light.id];\n }\n\n var uniforms;\n\n switch (light.type) {\n case 'DirectionalLight':\n uniforms = {\n direction: new Vector3(),\n color: new Color(),\n shadow: false,\n shadowBias: 0,\n shadowRadius: 1,\n shadowMapSize: new Vector2()\n };\n break;\n\n case 'SpotLight':\n uniforms = {\n position: new Vector3(),\n direction: new Vector3(),\n color: new Color(),\n distance: 0,\n coneCos: 0,\n penumbraCos: 0,\n decay: 0,\n shadow: false,\n shadowBias: 0,\n shadowRadius: 1,\n shadowMapSize: new Vector2()\n };\n break;\n\n case 'PointLight':\n uniforms = {\n position: new Vector3(),\n color: new Color(),\n distance: 0,\n decay: 0,\n shadow: false,\n shadowBias: 0,\n shadowRadius: 1,\n shadowMapSize: new Vector2(),\n shadowCameraNear: 1,\n shadowCameraFar: 1000\n };\n break;\n\n case 'HemisphereLight':\n uniforms = {\n direction: new Vector3(),\n skyColor: new Color(),\n groundColor: new Color()\n };\n break;\n\n case 'RectAreaLight':\n uniforms = {\n color: new Color(),\n position: new Vector3(),\n halfWidth: new Vector3(),\n halfHeight: new Vector3() // TODO (abelnation): set RectAreaLight shadow uniforms\n\n };\n break;\n }\n\n lights[light.id] = uniforms;\n return uniforms;\n }\n };\n}\n\nvar nextVersion = 0;\n\nfunction shadowCastingLightsFirst(lightA, lightB) {\n return (lightB.castShadow ? 1 : 0) - (lightA.castShadow ? 1 : 0);\n}\n\nfunction WebGLLights() {\n var cache = new UniformsCache();\n var state = {\n version: 0,\n hash: {\n directionalLength: -1,\n pointLength: -1,\n spotLength: -1,\n rectAreaLength: -1,\n hemiLength: -1,\n numDirectionalShadows: -1,\n numPointShadows: -1,\n numSpotShadows: -1\n },\n ambient: [0, 0, 0],\n probe: [],\n directional: [],\n directionalShadowMap: [],\n directionalShadowMatrix: [],\n spot: [],\n spotShadowMap: [],\n spotShadowMatrix: [],\n rectArea: [],\n point: [],\n pointShadowMap: [],\n pointShadowMatrix: [],\n hemi: [],\n numDirectionalShadows: -1,\n numPointShadows: -1,\n numSpotShadows: -1\n };\n\n for (var i = 0; i < 9; i++) {\n state.probe.push(new Vector3());\n }\n\n var vector3 = new Vector3();\n var matrix4 = new Matrix4();\n var matrix42 = new Matrix4();\n\n function setup(lights, shadows, camera) {\n var r = 0,\n g = 0,\n b = 0;\n\n for (var i = 0; i < 9; i++) {\n state.probe[i].set(0, 0, 0);\n }\n\n var directionalLength = 0;\n var pointLength = 0;\n var spotLength = 0;\n var rectAreaLength = 0;\n var hemiLength = 0;\n var numDirectionalShadows = 0;\n var numPointShadows = 0;\n var numSpotShadows = 0;\n var viewMatrix = camera.matrixWorldInverse;\n lights.sort(shadowCastingLightsFirst);\n\n for (var i = 0, l = lights.length; i < l; i++) {\n var light = lights[i];\n var color = light.color;\n var intensity = light.intensity;\n var distance = light.distance;\n var shadowMap = light.shadow && light.shadow.map ? light.shadow.map.texture : null;\n\n if (light.isAmbientLight) {\n r += color.r * intensity;\n g += color.g * intensity;\n b += color.b * intensity;\n } else if (light.isLightProbe) {\n for (var j = 0; j < 9; j++) {\n state.probe[j].addScaledVector(light.sh.coefficients[j], intensity);\n }\n } else if (light.isDirectionalLight) {\n var uniforms = cache.get(light);\n uniforms.color.copy(light.color).multiplyScalar(light.intensity);\n uniforms.direction.setFromMatrixPosition(light.matrixWorld);\n vector3.setFromMatrixPosition(light.target.matrixWorld);\n uniforms.direction.sub(vector3);\n uniforms.direction.transformDirection(viewMatrix);\n uniforms.shadow = light.castShadow;\n\n if (light.castShadow) {\n var shadow = light.shadow;\n uniforms.shadowBias = shadow.bias;\n uniforms.shadowRadius = shadow.radius;\n uniforms.shadowMapSize = shadow.mapSize;\n state.directionalShadowMap[directionalLength] = shadowMap;\n state.directionalShadowMatrix[directionalLength] = light.shadow.matrix;\n numDirectionalShadows++;\n }\n\n state.directional[directionalLength] = uniforms;\n directionalLength++;\n } else if (light.isSpotLight) {\n var uniforms = cache.get(light);\n uniforms.position.setFromMatrixPosition(light.matrixWorld);\n uniforms.position.applyMatrix4(viewMatrix);\n uniforms.color.copy(color).multiplyScalar(intensity);\n uniforms.distance = distance;\n uniforms.direction.setFromMatrixPosition(light.matrixWorld);\n vector3.setFromMatrixPosition(light.target.matrixWorld);\n uniforms.direction.sub(vector3);\n uniforms.direction.transformDirection(viewMatrix);\n uniforms.coneCos = Math.cos(light.angle);\n uniforms.penumbraCos = Math.cos(light.angle * (1 - light.penumbra));\n uniforms.decay = light.decay;\n uniforms.shadow = light.castShadow;\n\n if (light.castShadow) {\n var shadow = light.shadow;\n uniforms.shadowBias = shadow.bias;\n uniforms.shadowRadius = shadow.radius;\n uniforms.shadowMapSize = shadow.mapSize;\n state.spotShadowMap[spotLength] = shadowMap;\n state.spotShadowMatrix[spotLength] = light.shadow.matrix;\n numSpotShadows++;\n }\n\n state.spot[spotLength] = uniforms;\n spotLength++;\n } else if (light.isRectAreaLight) {\n var uniforms = cache.get(light); // (a) intensity is the total visible light emitted\n //uniforms.color.copy( color ).multiplyScalar( intensity / ( light.width * light.height * Math.PI ) );\n // (b) intensity is the brightness of the light\n\n uniforms.color.copy(color).multiplyScalar(intensity);\n uniforms.position.setFromMatrixPosition(light.matrixWorld);\n uniforms.position.applyMatrix4(viewMatrix); // extract local rotation of light to derive width/height half vectors\n\n matrix42.identity();\n matrix4.copy(light.matrixWorld);\n matrix4.premultiply(viewMatrix);\n matrix42.extractRotation(matrix4);\n uniforms.halfWidth.set(light.width * 0.5, 0.0, 0.0);\n uniforms.halfHeight.set(0.0, light.height * 0.5, 0.0);\n uniforms.halfWidth.applyMatrix4(matrix42);\n uniforms.halfHeight.applyMatrix4(matrix42); // TODO (abelnation): RectAreaLight distance?\n // uniforms.distance = distance;\n\n state.rectArea[rectAreaLength] = uniforms;\n rectAreaLength++;\n } else if (light.isPointLight) {\n var uniforms = cache.get(light);\n uniforms.position.setFromMatrixPosition(light.matrixWorld);\n uniforms.position.applyMatrix4(viewMatrix);\n uniforms.color.copy(light.color).multiplyScalar(light.intensity);\n uniforms.distance = light.distance;\n uniforms.decay = light.decay;\n uniforms.shadow = light.castShadow;\n\n if (light.castShadow) {\n var shadow = light.shadow;\n uniforms.shadowBias = shadow.bias;\n uniforms.shadowRadius = shadow.radius;\n uniforms.shadowMapSize = shadow.mapSize;\n uniforms.shadowCameraNear = shadow.camera.near;\n uniforms.shadowCameraFar = shadow.camera.far;\n state.pointShadowMap[pointLength] = shadowMap;\n state.pointShadowMatrix[pointLength] = light.shadow.matrix;\n numPointShadows++;\n }\n\n state.point[pointLength] = uniforms;\n pointLength++;\n } else if (light.isHemisphereLight) {\n var uniforms = cache.get(light);\n uniforms.direction.setFromMatrixPosition(light.matrixWorld);\n uniforms.direction.transformDirection(viewMatrix);\n uniforms.direction.normalize();\n uniforms.skyColor.copy(light.color).multiplyScalar(intensity);\n uniforms.groundColor.copy(light.groundColor).multiplyScalar(intensity);\n state.hemi[hemiLength] = uniforms;\n hemiLength++;\n }\n }\n\n state.ambient[0] = r;\n state.ambient[1] = g;\n state.ambient[2] = b;\n var hash = state.hash;\n\n if (hash.directionalLength !== directionalLength || hash.pointLength !== pointLength || hash.spotLength !== spotLength || hash.rectAreaLength !== rectAreaLength || hash.hemiLength !== hemiLength || hash.numDirectionalShadows !== numDirectionalShadows || hash.numPointShadows !== numPointShadows || hash.numSpotShadows !== numSpotShadows) {\n state.directional.length = directionalLength;\n state.spot.length = spotLength;\n state.rectArea.length = rectAreaLength;\n state.point.length = pointLength;\n state.hemi.length = hemiLength;\n state.directionalShadowMap.length = numDirectionalShadows;\n state.pointShadowMap.length = numPointShadows;\n state.spotShadowMap.length = numSpotShadows;\n state.directionalShadowMatrix.length = numDirectionalShadows;\n state.pointShadowMatrix.length = numPointShadows;\n state.spotShadowMatrix.length = numSpotShadows;\n hash.directionalLength = directionalLength;\n hash.pointLength = pointLength;\n hash.spotLength = spotLength;\n hash.rectAreaLength = rectAreaLength;\n hash.hemiLength = hemiLength;\n hash.numDirectionalShadows = numDirectionalShadows;\n hash.numPointShadows = numPointShadows;\n hash.numSpotShadows = numSpotShadows;\n state.version = nextVersion++;\n }\n }\n\n return {\n setup: setup,\n state: state\n };\n}\n/**\n * @author Mugen87 / https://github.com/Mugen87\n */\n\n\nfunction WebGLRenderState() {\n var lights = new WebGLLights();\n var lightsArray = [];\n var shadowsArray = [];\n\n function init() {\n lightsArray.length = 0;\n shadowsArray.length = 0;\n }\n\n function pushLight(light) {\n lightsArray.push(light);\n }\n\n function pushShadow(shadowLight) {\n shadowsArray.push(shadowLight);\n }\n\n function setupLights(camera) {\n lights.setup(lightsArray, shadowsArray, camera);\n }\n\n var state = {\n lightsArray: lightsArray,\n shadowsArray: shadowsArray,\n lights: lights\n };\n return {\n init: init,\n state: state,\n setupLights: setupLights,\n pushLight: pushLight,\n pushShadow: pushShadow\n };\n}\n\nfunction WebGLRenderStates() {\n var renderStates = new WeakMap();\n\n function onSceneDispose(event) {\n var scene = event.target;\n scene.removeEventListener('dispose', onSceneDispose);\n renderStates.delete(scene);\n }\n\n function get(scene, camera) {\n var renderState;\n\n if (renderStates.has(scene) === false) {\n renderState = new WebGLRenderState();\n renderStates.set(scene, new WeakMap());\n renderStates.get(scene).set(camera, renderState);\n scene.addEventListener('dispose', onSceneDispose);\n } else {\n if (renderStates.get(scene).has(camera) === false) {\n renderState = new WebGLRenderState();\n renderStates.get(scene).set(camera, renderState);\n } else {\n renderState = renderStates.get(scene).get(camera);\n }\n }\n\n return renderState;\n }\n\n function dispose() {\n renderStates = new WeakMap();\n }\n\n return {\n get: get,\n dispose: dispose\n };\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author alteredq / http://alteredqualia.com/\n * @author bhouston / https://clara.io\n * @author WestLangley / http://github.com/WestLangley\n *\n * parameters = {\n *\n * opacity: ,\n *\n * map: new THREE.Texture( ),\n *\n * alphaMap: new THREE.Texture( ),\n *\n * displacementMap: new THREE.Texture( ),\n * displacementScale: ,\n * displacementBias: ,\n *\n * wireframe: ,\n * wireframeLinewidth: \n * }\n */\n\n\nfunction MeshDepthMaterial(parameters) {\n Material.call(this);\n this.type = 'MeshDepthMaterial';\n this.depthPacking = BasicDepthPacking;\n this.skinning = false;\n this.morphTargets = false;\n this.map = null;\n this.alphaMap = null;\n this.displacementMap = null;\n this.displacementScale = 1;\n this.displacementBias = 0;\n this.wireframe = false;\n this.wireframeLinewidth = 1;\n this.fog = false;\n this.setValues(parameters);\n}\n\nMeshDepthMaterial.prototype = Object.create(Material.prototype);\nMeshDepthMaterial.prototype.constructor = MeshDepthMaterial;\nMeshDepthMaterial.prototype.isMeshDepthMaterial = true;\n\nMeshDepthMaterial.prototype.copy = function (source) {\n Material.prototype.copy.call(this, source);\n this.depthPacking = source.depthPacking;\n this.skinning = source.skinning;\n this.morphTargets = source.morphTargets;\n this.map = source.map;\n this.alphaMap = source.alphaMap;\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n return this;\n};\n/**\n * @author WestLangley / http://github.com/WestLangley\n *\n * parameters = {\n *\n * referencePosition: ,\n * nearDistance: ,\n * farDistance: ,\n *\n * skinning: ,\n * morphTargets: ,\n *\n * map: new THREE.Texture( ),\n *\n * alphaMap: new THREE.Texture( ),\n *\n * displacementMap: new THREE.Texture( ),\n * displacementScale: ,\n * displacementBias: \n *\n * }\n */\n\n\nfunction MeshDistanceMaterial(parameters) {\n Material.call(this);\n this.type = 'MeshDistanceMaterial';\n this.referencePosition = new Vector3();\n this.nearDistance = 1;\n this.farDistance = 1000;\n this.skinning = false;\n this.morphTargets = false;\n this.map = null;\n this.alphaMap = null;\n this.displacementMap = null;\n this.displacementScale = 1;\n this.displacementBias = 0;\n this.fog = false;\n this.setValues(parameters);\n}\n\nMeshDistanceMaterial.prototype = Object.create(Material.prototype);\nMeshDistanceMaterial.prototype.constructor = MeshDistanceMaterial;\nMeshDistanceMaterial.prototype.isMeshDistanceMaterial = true;\n\nMeshDistanceMaterial.prototype.copy = function (source) {\n Material.prototype.copy.call(this, source);\n this.referencePosition.copy(source.referencePosition);\n this.nearDistance = source.nearDistance;\n this.farDistance = source.farDistance;\n this.skinning = source.skinning;\n this.morphTargets = source.morphTargets;\n this.map = source.map;\n this.alphaMap = source.alphaMap;\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n return this;\n};\n\nvar vsm_frag = \"uniform sampler2D shadow_pass;\\nuniform vec2 resolution;\\nuniform float radius;\\n#include \\nvoid main() {\\n float mean = 0.0;\\n float squared_mean = 0.0;\\n \\n\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\\n for ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\\n #ifdef HORIZONAL_PASS\\n vec2 distribution = decodeHalfRGBA ( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\\n mean += distribution.x;\\n squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\\n #else\\n float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, i ) * radius ) / resolution ) );\\n mean += depth;\\n squared_mean += depth * depth;\\n #endif\\n }\\n mean = mean * HALF_SAMPLE_RATE;\\n squared_mean = squared_mean * HALF_SAMPLE_RATE;\\n float std_dev = pow( squared_mean - mean * mean, 0.5 );\\n gl_FragColor = encodeHalfRGBA( vec2( mean, std_dev ) );\\n}\";\nvar vsm_vert = \"void main() {\\n\\tgl_Position = vec4( position, 1.0 );\\n}\";\n/**\n * @author alteredq / http://alteredqualia.com/\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction WebGLShadowMap(_renderer, _objects, maxTextureSize) {\n var _frustum = new Frustum(),\n _shadowMapSize = new Vector2(),\n _viewportSize = new Vector2(),\n _viewport = new Vector4(),\n _depthMaterials = [],\n _distanceMaterials = [],\n _materialCache = {};\n\n var shadowSide = {\n 0: BackSide,\n 1: FrontSide,\n 2: DoubleSide\n };\n var shadowMaterialVertical = new ShaderMaterial({\n defines: {\n SAMPLE_RATE: 2.0 / 8.0,\n HALF_SAMPLE_RATE: 1.0 / 8.0\n },\n uniforms: {\n shadow_pass: {\n value: null\n },\n resolution: {\n value: new Vector2()\n },\n radius: {\n value: 4.0\n }\n },\n vertexShader: vsm_vert,\n fragmentShader: vsm_frag\n });\n var shadowMaterialHorizonal = shadowMaterialVertical.clone();\n shadowMaterialHorizonal.defines.HORIZONAL_PASS = 1;\n var fullScreenTri = new BufferGeometry();\n fullScreenTri.setAttribute(\"position\", new BufferAttribute(new Float32Array([-1, -1, 0.5, 3, -1, 0.5, -1, 3, 0.5]), 3));\n var fullScreenMesh = new Mesh(fullScreenTri, shadowMaterialVertical);\n var scope = this;\n this.enabled = false;\n this.autoUpdate = true;\n this.needsUpdate = false;\n this.type = PCFShadowMap;\n\n this.render = function (lights, scene, camera) {\n if (scope.enabled === false) return;\n if (scope.autoUpdate === false && scope.needsUpdate === false) return;\n if (lights.length === 0) return;\n\n var currentRenderTarget = _renderer.getRenderTarget();\n\n var activeCubeFace = _renderer.getActiveCubeFace();\n\n var activeMipmapLevel = _renderer.getActiveMipmapLevel();\n\n var _state = _renderer.state; // Set GL state for depth map.\n\n _state.setBlending(NoBlending);\n\n _state.buffers.color.setClear(1, 1, 1, 1);\n\n _state.buffers.depth.setTest(true);\n\n _state.setScissorTest(false); // render depth map\n\n\n for (var i = 0, il = lights.length; i < il; i++) {\n var light = lights[i];\n var shadow = light.shadow;\n\n if (shadow === undefined) {\n console.warn('THREE.WebGLShadowMap:', light, 'has no shadow.');\n continue;\n }\n\n _shadowMapSize.copy(shadow.mapSize);\n\n var shadowFrameExtents = shadow.getFrameExtents();\n\n _shadowMapSize.multiply(shadowFrameExtents);\n\n _viewportSize.copy(shadow.mapSize);\n\n if (_shadowMapSize.x > maxTextureSize || _shadowMapSize.y > maxTextureSize) {\n console.warn('THREE.WebGLShadowMap:', light, 'has shadow exceeding max texture size, reducing');\n\n if (_shadowMapSize.x > maxTextureSize) {\n _viewportSize.x = Math.floor(maxTextureSize / shadowFrameExtents.x);\n _shadowMapSize.x = _viewportSize.x * shadowFrameExtents.x;\n shadow.mapSize.x = _viewportSize.x;\n }\n\n if (_shadowMapSize.y > maxTextureSize) {\n _viewportSize.y = Math.floor(maxTextureSize / shadowFrameExtents.y);\n _shadowMapSize.y = _viewportSize.y * shadowFrameExtents.y;\n shadow.mapSize.y = _viewportSize.y;\n }\n }\n\n if (shadow.map === null && !shadow.isPointLightShadow && this.type === VSMShadowMap) {\n var pars = {\n minFilter: LinearFilter,\n magFilter: LinearFilter,\n format: RGBAFormat\n };\n shadow.map = new WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y, pars);\n shadow.map.texture.name = light.name + \".shadowMap\";\n shadow.mapPass = new WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y, pars);\n shadow.camera.updateProjectionMatrix();\n }\n\n if (shadow.map === null) {\n var pars = {\n minFilter: NearestFilter,\n magFilter: NearestFilter,\n format: RGBAFormat\n };\n shadow.map = new WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y, pars);\n shadow.map.texture.name = light.name + \".shadowMap\";\n shadow.camera.updateProjectionMatrix();\n }\n\n _renderer.setRenderTarget(shadow.map);\n\n _renderer.clear();\n\n var viewportCount = shadow.getViewportCount();\n\n for (var vp = 0; vp < viewportCount; vp++) {\n var viewport = shadow.getViewport(vp);\n\n _viewport.set(_viewportSize.x * viewport.x, _viewportSize.y * viewport.y, _viewportSize.x * viewport.z, _viewportSize.y * viewport.w);\n\n _state.viewport(_viewport);\n\n shadow.updateMatrices(light, vp);\n _frustum = shadow.getFrustum();\n renderObject(scene, camera, shadow.camera, light, this.type);\n } // do blur pass for VSM\n\n\n if (!shadow.isPointLightShadow && this.type === VSMShadowMap) {\n VSMPass(shadow, camera);\n }\n }\n\n scope.needsUpdate = false;\n\n _renderer.setRenderTarget(currentRenderTarget, activeCubeFace, activeMipmapLevel);\n };\n\n function VSMPass(shadow, camera) {\n var geometry = _objects.update(fullScreenMesh); // vertical pass\n\n\n shadowMaterialVertical.uniforms.shadow_pass.value = shadow.map.texture;\n shadowMaterialVertical.uniforms.resolution.value = shadow.mapSize;\n shadowMaterialVertical.uniforms.radius.value = shadow.radius;\n\n _renderer.setRenderTarget(shadow.mapPass);\n\n _renderer.clear();\n\n _renderer.renderBufferDirect(camera, null, geometry, shadowMaterialVertical, fullScreenMesh, null); // horizonal pass\n\n\n shadowMaterialHorizonal.uniforms.shadow_pass.value = shadow.mapPass.texture;\n shadowMaterialHorizonal.uniforms.resolution.value = shadow.mapSize;\n shadowMaterialHorizonal.uniforms.radius.value = shadow.radius;\n\n _renderer.setRenderTarget(shadow.map);\n\n _renderer.clear();\n\n _renderer.renderBufferDirect(camera, null, geometry, shadowMaterialHorizonal, fullScreenMesh, null);\n }\n\n function getDepthMaterialVariant(useMorphing, useSkinning, useInstancing) {\n var index = useMorphing << 0 | useSkinning << 1 | useInstancing << 2;\n var material = _depthMaterials[index];\n\n if (material === undefined) {\n material = new MeshDepthMaterial({\n depthPacking: RGBADepthPacking,\n morphTargets: useMorphing,\n skinning: useSkinning\n });\n _depthMaterials[index] = material;\n }\n\n return material;\n }\n\n function getDistanceMaterialVariant(useMorphing, useSkinning, useInstancing) {\n var index = useMorphing << 0 | useSkinning << 1 | useInstancing << 2;\n var material = _distanceMaterials[index];\n\n if (material === undefined) {\n material = new MeshDistanceMaterial({\n morphTargets: useMorphing,\n skinning: useSkinning\n });\n _distanceMaterials[index] = material;\n }\n\n return material;\n }\n\n function getDepthMaterial(object, material, light, shadowCameraNear, shadowCameraFar, type) {\n var geometry = object.geometry;\n var result = null;\n var getMaterialVariant = getDepthMaterialVariant;\n var customMaterial = object.customDepthMaterial;\n\n if (light.isPointLight === true) {\n getMaterialVariant = getDistanceMaterialVariant;\n customMaterial = object.customDistanceMaterial;\n }\n\n if (customMaterial === undefined) {\n var useMorphing = false;\n\n if (material.morphTargets === true) {\n if (geometry.isBufferGeometry === true) {\n useMorphing = geometry.morphAttributes && geometry.morphAttributes.position && geometry.morphAttributes.position.length > 0;\n } else if (geometry.isGeometry === true) {\n useMorphing = geometry.morphTargets && geometry.morphTargets.length > 0;\n }\n }\n\n var useSkinning = false;\n\n if (object.isSkinnedMesh === true) {\n if (material.skinning === true) {\n useSkinning = true;\n } else {\n console.warn('THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:', object);\n }\n }\n\n var useInstancing = object.isInstancedMesh === true;\n result = getMaterialVariant(useMorphing, useSkinning, useInstancing);\n } else {\n result = customMaterial;\n }\n\n if (_renderer.localClippingEnabled && material.clipShadows === true && material.clippingPlanes.length !== 0) {\n // in this case we need a unique material instance reflecting the\n // appropriate state\n var keyA = result.uuid,\n keyB = material.uuid;\n var materialsForVariant = _materialCache[keyA];\n\n if (materialsForVariant === undefined) {\n materialsForVariant = {};\n _materialCache[keyA] = materialsForVariant;\n }\n\n var cachedMaterial = materialsForVariant[keyB];\n\n if (cachedMaterial === undefined) {\n cachedMaterial = result.clone();\n materialsForVariant[keyB] = cachedMaterial;\n }\n\n result = cachedMaterial;\n }\n\n result.visible = material.visible;\n result.wireframe = material.wireframe;\n\n if (type === VSMShadowMap) {\n result.side = material.shadowSide !== null ? material.shadowSide : material.side;\n } else {\n result.side = material.shadowSide !== null ? material.shadowSide : shadowSide[material.side];\n }\n\n result.clipShadows = material.clipShadows;\n result.clippingPlanes = material.clippingPlanes;\n result.clipIntersection = material.clipIntersection;\n result.wireframeLinewidth = material.wireframeLinewidth;\n result.linewidth = material.linewidth;\n\n if (light.isPointLight === true && result.isMeshDistanceMaterial === true) {\n result.referencePosition.setFromMatrixPosition(light.matrixWorld);\n result.nearDistance = shadowCameraNear;\n result.farDistance = shadowCameraFar;\n }\n\n return result;\n }\n\n function renderObject(object, camera, shadowCamera, light, type) {\n if (object.visible === false) return;\n var visible = object.layers.test(camera.layers);\n\n if (visible && (object.isMesh || object.isLine || object.isPoints)) {\n if ((object.castShadow || object.receiveShadow && type === VSMShadowMap) && (!object.frustumCulled || _frustum.intersectsObject(object))) {\n object.modelViewMatrix.multiplyMatrices(shadowCamera.matrixWorldInverse, object.matrixWorld);\n\n var geometry = _objects.update(object);\n\n var material = object.material;\n\n if (Array.isArray(material)) {\n var groups = geometry.groups;\n\n for (var k = 0, kl = groups.length; k < kl; k++) {\n var group = groups[k];\n var groupMaterial = material[group.materialIndex];\n\n if (groupMaterial && groupMaterial.visible) {\n var depthMaterial = getDepthMaterial(object, groupMaterial, light, shadowCamera.near, shadowCamera.far, type);\n\n _renderer.renderBufferDirect(shadowCamera, null, geometry, depthMaterial, object, group);\n }\n }\n } else if (material.visible) {\n var depthMaterial = getDepthMaterial(object, material, light, shadowCamera.near, shadowCamera.far, type);\n\n _renderer.renderBufferDirect(shadowCamera, null, geometry, depthMaterial, object, null);\n }\n }\n }\n\n var children = object.children;\n\n for (var i = 0, l = children.length; i < l; i++) {\n renderObject(children[i], camera, shadowCamera, light, type);\n }\n }\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction WebGLState(gl, extensions, capabilities) {\n var _equationToGL, _factorToGL;\n\n var isWebGL2 = capabilities.isWebGL2;\n\n function ColorBuffer() {\n var locked = false;\n var color = new Vector4();\n var currentColorMask = null;\n var currentColorClear = new Vector4(0, 0, 0, 0);\n return {\n setMask: function setMask(colorMask) {\n if (currentColorMask !== colorMask && !locked) {\n gl.colorMask(colorMask, colorMask, colorMask, colorMask);\n currentColorMask = colorMask;\n }\n },\n setLocked: function setLocked(lock) {\n locked = lock;\n },\n setClear: function setClear(r, g, b, a, premultipliedAlpha) {\n if (premultipliedAlpha === true) {\n r *= a;\n g *= a;\n b *= a;\n }\n\n color.set(r, g, b, a);\n\n if (currentColorClear.equals(color) === false) {\n gl.clearColor(r, g, b, a);\n currentColorClear.copy(color);\n }\n },\n reset: function reset() {\n locked = false;\n currentColorMask = null;\n currentColorClear.set(-1, 0, 0, 0); // set to invalid state\n }\n };\n }\n\n function DepthBuffer() {\n var locked = false;\n var currentDepthMask = null;\n var currentDepthFunc = null;\n var currentDepthClear = null;\n return {\n setTest: function setTest(depthTest) {\n if (depthTest) {\n enable(2929);\n } else {\n disable(2929);\n }\n },\n setMask: function setMask(depthMask) {\n if (currentDepthMask !== depthMask && !locked) {\n gl.depthMask(depthMask);\n currentDepthMask = depthMask;\n }\n },\n setFunc: function setFunc(depthFunc) {\n if (currentDepthFunc !== depthFunc) {\n if (depthFunc) {\n switch (depthFunc) {\n case NeverDepth:\n gl.depthFunc(512);\n break;\n\n case AlwaysDepth:\n gl.depthFunc(519);\n break;\n\n case LessDepth:\n gl.depthFunc(513);\n break;\n\n case LessEqualDepth:\n gl.depthFunc(515);\n break;\n\n case EqualDepth:\n gl.depthFunc(514);\n break;\n\n case GreaterEqualDepth:\n gl.depthFunc(518);\n break;\n\n case GreaterDepth:\n gl.depthFunc(516);\n break;\n\n case NotEqualDepth:\n gl.depthFunc(517);\n break;\n\n default:\n gl.depthFunc(515);\n }\n } else {\n gl.depthFunc(515);\n }\n\n currentDepthFunc = depthFunc;\n }\n },\n setLocked: function setLocked(lock) {\n locked = lock;\n },\n setClear: function setClear(depth) {\n if (currentDepthClear !== depth) {\n gl.clearDepth(depth);\n currentDepthClear = depth;\n }\n },\n reset: function reset() {\n locked = false;\n currentDepthMask = null;\n currentDepthFunc = null;\n currentDepthClear = null;\n }\n };\n }\n\n function StencilBuffer() {\n var locked = false;\n var currentStencilMask = null;\n var currentStencilFunc = null;\n var currentStencilRef = null;\n var currentStencilFuncMask = null;\n var currentStencilFail = null;\n var currentStencilZFail = null;\n var currentStencilZPass = null;\n var currentStencilClear = null;\n return {\n setTest: function setTest(stencilTest) {\n if (!locked) {\n if (stencilTest) {\n enable(2960);\n } else {\n disable(2960);\n }\n }\n },\n setMask: function setMask(stencilMask) {\n if (currentStencilMask !== stencilMask && !locked) {\n gl.stencilMask(stencilMask);\n currentStencilMask = stencilMask;\n }\n },\n setFunc: function setFunc(stencilFunc, stencilRef, stencilMask) {\n if (currentStencilFunc !== stencilFunc || currentStencilRef !== stencilRef || currentStencilFuncMask !== stencilMask) {\n gl.stencilFunc(stencilFunc, stencilRef, stencilMask);\n currentStencilFunc = stencilFunc;\n currentStencilRef = stencilRef;\n currentStencilFuncMask = stencilMask;\n }\n },\n setOp: function setOp(stencilFail, stencilZFail, stencilZPass) {\n if (currentStencilFail !== stencilFail || currentStencilZFail !== stencilZFail || currentStencilZPass !== stencilZPass) {\n gl.stencilOp(stencilFail, stencilZFail, stencilZPass);\n currentStencilFail = stencilFail;\n currentStencilZFail = stencilZFail;\n currentStencilZPass = stencilZPass;\n }\n },\n setLocked: function setLocked(lock) {\n locked = lock;\n },\n setClear: function setClear(stencil) {\n if (currentStencilClear !== stencil) {\n gl.clearStencil(stencil);\n currentStencilClear = stencil;\n }\n },\n reset: function reset() {\n locked = false;\n currentStencilMask = null;\n currentStencilFunc = null;\n currentStencilRef = null;\n currentStencilFuncMask = null;\n currentStencilFail = null;\n currentStencilZFail = null;\n currentStencilZPass = null;\n currentStencilClear = null;\n }\n };\n } //\n\n\n var colorBuffer = new ColorBuffer();\n var depthBuffer = new DepthBuffer();\n var stencilBuffer = new StencilBuffer();\n var maxVertexAttributes = gl.getParameter(34921);\n var newAttributes = new Uint8Array(maxVertexAttributes);\n var enabledAttributes = new Uint8Array(maxVertexAttributes);\n var attributeDivisors = new Uint8Array(maxVertexAttributes);\n var enabledCapabilities = {};\n var currentProgram = null;\n var currentBlendingEnabled = null;\n var currentBlending = null;\n var currentBlendEquation = null;\n var currentBlendSrc = null;\n var currentBlendDst = null;\n var currentBlendEquationAlpha = null;\n var currentBlendSrcAlpha = null;\n var currentBlendDstAlpha = null;\n var currentPremultipledAlpha = false;\n var currentFlipSided = null;\n var currentCullFace = null;\n var currentLineWidth = null;\n var currentPolygonOffsetFactor = null;\n var currentPolygonOffsetUnits = null;\n var maxTextures = gl.getParameter(35661);\n var lineWidthAvailable = false;\n var version = 0;\n var glVersion = gl.getParameter(7938);\n\n if (glVersion.indexOf('WebGL') !== -1) {\n version = parseFloat(/^WebGL\\ ([0-9])/.exec(glVersion)[1]);\n lineWidthAvailable = version >= 1.0;\n } else if (glVersion.indexOf('OpenGL ES') !== -1) {\n version = parseFloat(/^OpenGL\\ ES\\ ([0-9])/.exec(glVersion)[1]);\n lineWidthAvailable = version >= 2.0;\n }\n\n var currentTextureSlot = null;\n var currentBoundTextures = {};\n var currentScissor = new Vector4();\n var currentViewport = new Vector4();\n\n function createTexture(type, target, count) {\n var data = new Uint8Array(4); // 4 is required to match default unpack alignment of 4.\n\n var texture = gl.createTexture();\n gl.bindTexture(type, texture);\n gl.texParameteri(type, 10241, 9728);\n gl.texParameteri(type, 10240, 9728);\n\n for (var i = 0; i < count; i++) {\n gl.texImage2D(target + i, 0, 6408, 1, 1, 0, 6408, 5121, data);\n }\n\n return texture;\n }\n\n var emptyTextures = {};\n emptyTextures[3553] = createTexture(3553, 3553, 1);\n emptyTextures[34067] = createTexture(34067, 34069, 6); // init\n\n colorBuffer.setClear(0, 0, 0, 1);\n depthBuffer.setClear(1);\n stencilBuffer.setClear(0);\n enable(2929);\n depthBuffer.setFunc(LessEqualDepth);\n setFlipSided(false);\n setCullFace(CullFaceBack);\n enable(2884);\n setBlending(NoBlending); //\n\n function initAttributes() {\n for (var i = 0, l = newAttributes.length; i < l; i++) {\n newAttributes[i] = 0;\n }\n }\n\n function enableAttribute(attribute) {\n enableAttributeAndDivisor(attribute, 0);\n }\n\n function enableAttributeAndDivisor(attribute, meshPerAttribute) {\n newAttributes[attribute] = 1;\n\n if (enabledAttributes[attribute] === 0) {\n gl.enableVertexAttribArray(attribute);\n enabledAttributes[attribute] = 1;\n }\n\n if (attributeDivisors[attribute] !== meshPerAttribute) {\n var extension = isWebGL2 ? gl : extensions.get('ANGLE_instanced_arrays');\n extension[isWebGL2 ? 'vertexAttribDivisor' : 'vertexAttribDivisorANGLE'](attribute, meshPerAttribute);\n attributeDivisors[attribute] = meshPerAttribute;\n }\n }\n\n function disableUnusedAttributes() {\n for (var i = 0, l = enabledAttributes.length; i !== l; ++i) {\n if (enabledAttributes[i] !== newAttributes[i]) {\n gl.disableVertexAttribArray(i);\n enabledAttributes[i] = 0;\n }\n }\n }\n\n function enable(id) {\n if (enabledCapabilities[id] !== true) {\n gl.enable(id);\n enabledCapabilities[id] = true;\n }\n }\n\n function disable(id) {\n if (enabledCapabilities[id] !== false) {\n gl.disable(id);\n enabledCapabilities[id] = false;\n }\n }\n\n function useProgram(program) {\n if (currentProgram !== program) {\n gl.useProgram(program);\n currentProgram = program;\n return true;\n }\n\n return false;\n }\n\n var equationToGL = (_equationToGL = {}, _defineProperty(_equationToGL, AddEquation, 32774), _defineProperty(_equationToGL, SubtractEquation, 32778), _defineProperty(_equationToGL, ReverseSubtractEquation, 32779), _equationToGL);\n\n if (isWebGL2) {\n equationToGL[MinEquation] = 32775;\n equationToGL[MaxEquation] = 32776;\n } else {\n var extension = extensions.get('EXT_blend_minmax');\n\n if (extension !== null) {\n equationToGL[MinEquation] = extension.MIN_EXT;\n equationToGL[MaxEquation] = extension.MIN_EXT;\n }\n }\n\n var factorToGL = (_factorToGL = {}, _defineProperty(_factorToGL, ZeroFactor, 0), _defineProperty(_factorToGL, OneFactor, 1), _defineProperty(_factorToGL, SrcColorFactor, 768), _defineProperty(_factorToGL, SrcAlphaFactor, 770), _defineProperty(_factorToGL, SrcAlphaSaturateFactor, 776), _defineProperty(_factorToGL, DstColorFactor, 774), _defineProperty(_factorToGL, DstAlphaFactor, 772), _defineProperty(_factorToGL, OneMinusSrcColorFactor, 769), _defineProperty(_factorToGL, OneMinusSrcAlphaFactor, 771), _defineProperty(_factorToGL, OneMinusDstColorFactor, 775), _defineProperty(_factorToGL, OneMinusDstAlphaFactor, 773), _factorToGL);\n\n function setBlending(blending, blendEquation, blendSrc, blendDst, blendEquationAlpha, blendSrcAlpha, blendDstAlpha, premultipliedAlpha) {\n if (blending === NoBlending) {\n if (currentBlendingEnabled) {\n disable(3042);\n currentBlendingEnabled = false;\n }\n\n return;\n }\n\n if (!currentBlendingEnabled) {\n enable(3042);\n currentBlendingEnabled = true;\n }\n\n if (blending !== CustomBlending) {\n if (blending !== currentBlending || premultipliedAlpha !== currentPremultipledAlpha) {\n if (currentBlendEquation !== AddEquation || currentBlendEquationAlpha !== AddEquation) {\n gl.blendEquation(32774);\n currentBlendEquation = AddEquation;\n currentBlendEquationAlpha = AddEquation;\n }\n\n if (premultipliedAlpha) {\n switch (blending) {\n case NormalBlending:\n gl.blendFuncSeparate(1, 771, 1, 771);\n break;\n\n case AdditiveBlending:\n gl.blendFunc(1, 1);\n break;\n\n case SubtractiveBlending:\n gl.blendFuncSeparate(0, 0, 769, 771);\n break;\n\n case MultiplyBlending:\n gl.blendFuncSeparate(0, 768, 0, 770);\n break;\n\n default:\n console.error('THREE.WebGLState: Invalid blending: ', blending);\n break;\n }\n } else {\n switch (blending) {\n case NormalBlending:\n gl.blendFuncSeparate(770, 771, 1, 771);\n break;\n\n case AdditiveBlending:\n gl.blendFunc(770, 1);\n break;\n\n case SubtractiveBlending:\n gl.blendFunc(0, 769);\n break;\n\n case MultiplyBlending:\n gl.blendFunc(0, 768);\n break;\n\n default:\n console.error('THREE.WebGLState: Invalid blending: ', blending);\n break;\n }\n }\n\n currentBlendSrc = null;\n currentBlendDst = null;\n currentBlendSrcAlpha = null;\n currentBlendDstAlpha = null;\n currentBlending = blending;\n currentPremultipledAlpha = premultipliedAlpha;\n }\n\n return;\n } // custom blending\n\n\n blendEquationAlpha = blendEquationAlpha || blendEquation;\n blendSrcAlpha = blendSrcAlpha || blendSrc;\n blendDstAlpha = blendDstAlpha || blendDst;\n\n if (blendEquation !== currentBlendEquation || blendEquationAlpha !== currentBlendEquationAlpha) {\n gl.blendEquationSeparate(equationToGL[blendEquation], equationToGL[blendEquationAlpha]);\n currentBlendEquation = blendEquation;\n currentBlendEquationAlpha = blendEquationAlpha;\n }\n\n if (blendSrc !== currentBlendSrc || blendDst !== currentBlendDst || blendSrcAlpha !== currentBlendSrcAlpha || blendDstAlpha !== currentBlendDstAlpha) {\n gl.blendFuncSeparate(factorToGL[blendSrc], factorToGL[blendDst], factorToGL[blendSrcAlpha], factorToGL[blendDstAlpha]);\n currentBlendSrc = blendSrc;\n currentBlendDst = blendDst;\n currentBlendSrcAlpha = blendSrcAlpha;\n currentBlendDstAlpha = blendDstAlpha;\n }\n\n currentBlending = blending;\n currentPremultipledAlpha = null;\n }\n\n function setMaterial(material, frontFaceCW) {\n material.side === DoubleSide ? disable(2884) : enable(2884);\n var flipSided = material.side === BackSide;\n if (frontFaceCW) flipSided = !flipSided;\n setFlipSided(flipSided);\n material.blending === NormalBlending && material.transparent === false ? setBlending(NoBlending) : setBlending(material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha, material.premultipliedAlpha);\n depthBuffer.setFunc(material.depthFunc);\n depthBuffer.setTest(material.depthTest);\n depthBuffer.setMask(material.depthWrite);\n colorBuffer.setMask(material.colorWrite);\n var stencilWrite = material.stencilWrite;\n stencilBuffer.setTest(stencilWrite);\n\n if (stencilWrite) {\n stencilBuffer.setMask(material.stencilWriteMask);\n stencilBuffer.setFunc(material.stencilFunc, material.stencilRef, material.stencilFuncMask);\n stencilBuffer.setOp(material.stencilFail, material.stencilZFail, material.stencilZPass);\n }\n\n setPolygonOffset(material.polygonOffset, material.polygonOffsetFactor, material.polygonOffsetUnits);\n } //\n\n\n function setFlipSided(flipSided) {\n if (currentFlipSided !== flipSided) {\n if (flipSided) {\n gl.frontFace(2304);\n } else {\n gl.frontFace(2305);\n }\n\n currentFlipSided = flipSided;\n }\n }\n\n function setCullFace(cullFace) {\n if (cullFace !== CullFaceNone) {\n enable(2884);\n\n if (cullFace !== currentCullFace) {\n if (cullFace === CullFaceBack) {\n gl.cullFace(1029);\n } else if (cullFace === CullFaceFront) {\n gl.cullFace(1028);\n } else {\n gl.cullFace(1032);\n }\n }\n } else {\n disable(2884);\n }\n\n currentCullFace = cullFace;\n }\n\n function setLineWidth(width) {\n if (width !== currentLineWidth) {\n if (lineWidthAvailable) gl.lineWidth(width);\n currentLineWidth = width;\n }\n }\n\n function setPolygonOffset(polygonOffset, factor, units) {\n if (polygonOffset) {\n enable(32823);\n\n if (currentPolygonOffsetFactor !== factor || currentPolygonOffsetUnits !== units) {\n gl.polygonOffset(factor, units);\n currentPolygonOffsetFactor = factor;\n currentPolygonOffsetUnits = units;\n }\n } else {\n disable(32823);\n }\n }\n\n function setScissorTest(scissorTest) {\n if (scissorTest) {\n enable(3089);\n } else {\n disable(3089);\n }\n } // texture\n\n\n function activeTexture(webglSlot) {\n if (webglSlot === undefined) webglSlot = 33984 + maxTextures - 1;\n\n if (currentTextureSlot !== webglSlot) {\n gl.activeTexture(webglSlot);\n currentTextureSlot = webglSlot;\n }\n }\n\n function bindTexture(webglType, webglTexture) {\n if (currentTextureSlot === null) {\n activeTexture();\n }\n\n var boundTexture = currentBoundTextures[currentTextureSlot];\n\n if (boundTexture === undefined) {\n boundTexture = {\n type: undefined,\n texture: undefined\n };\n currentBoundTextures[currentTextureSlot] = boundTexture;\n }\n\n if (boundTexture.type !== webglType || boundTexture.texture !== webglTexture) {\n gl.bindTexture(webglType, webglTexture || emptyTextures[webglType]);\n boundTexture.type = webglType;\n boundTexture.texture = webglTexture;\n }\n }\n\n function unbindTexture() {\n var boundTexture = currentBoundTextures[currentTextureSlot];\n\n if (boundTexture !== undefined && boundTexture.type !== undefined) {\n gl.bindTexture(boundTexture.type, null);\n boundTexture.type = undefined;\n boundTexture.texture = undefined;\n }\n }\n\n function compressedTexImage2D() {\n try {\n gl.compressedTexImage2D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n }\n\n function texImage2D() {\n try {\n gl.texImage2D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n }\n\n function texImage3D() {\n try {\n gl.texImage3D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n } //\n\n\n function scissor(scissor) {\n if (currentScissor.equals(scissor) === false) {\n gl.scissor(scissor.x, scissor.y, scissor.z, scissor.w);\n currentScissor.copy(scissor);\n }\n }\n\n function viewport(viewport) {\n if (currentViewport.equals(viewport) === false) {\n gl.viewport(viewport.x, viewport.y, viewport.z, viewport.w);\n currentViewport.copy(viewport);\n }\n } //\n\n\n function reset() {\n for (var i = 0; i < enabledAttributes.length; i++) {\n if (enabledAttributes[i] === 1) {\n gl.disableVertexAttribArray(i);\n enabledAttributes[i] = 0;\n }\n }\n\n enabledCapabilities = {};\n currentTextureSlot = null;\n currentBoundTextures = {};\n currentProgram = null;\n currentBlending = null;\n currentFlipSided = null;\n currentCullFace = null;\n colorBuffer.reset();\n depthBuffer.reset();\n stencilBuffer.reset();\n }\n\n return {\n buffers: {\n color: colorBuffer,\n depth: depthBuffer,\n stencil: stencilBuffer\n },\n initAttributes: initAttributes,\n enableAttribute: enableAttribute,\n enableAttributeAndDivisor: enableAttributeAndDivisor,\n disableUnusedAttributes: disableUnusedAttributes,\n enable: enable,\n disable: disable,\n useProgram: useProgram,\n setBlending: setBlending,\n setMaterial: setMaterial,\n setFlipSided: setFlipSided,\n setCullFace: setCullFace,\n setLineWidth: setLineWidth,\n setPolygonOffset: setPolygonOffset,\n setScissorTest: setScissorTest,\n activeTexture: activeTexture,\n bindTexture: bindTexture,\n unbindTexture: unbindTexture,\n compressedTexImage2D: compressedTexImage2D,\n texImage2D: texImage2D,\n texImage3D: texImage3D,\n scissor: scissor,\n viewport: viewport,\n reset: reset\n };\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction WebGLTextures(_gl, extensions, state, properties, capabilities, utils, info) {\n var _wrappingToGL, _filterToGL;\n\n var isWebGL2 = capabilities.isWebGL2;\n var maxTextures = capabilities.maxTextures;\n var maxCubemapSize = capabilities.maxCubemapSize;\n var maxTextureSize = capabilities.maxTextureSize;\n var maxSamples = capabilities.maxSamples;\n\n var _videoTextures = new WeakMap();\n\n var _canvas; // cordova iOS (as of 5.0) still uses UIWebView, which provides OffscreenCanvas,\n // also OffscreenCanvas.getContext(\"webgl\"), but not OffscreenCanvas.getContext(\"2d\")!\n\n\n var useOffscreenCanvas = typeof OffscreenCanvas !== 'undefined' && new OffscreenCanvas(1, 1).getContext(\"2d\") !== null;\n\n function createCanvas(width, height) {\n // Use OffscreenCanvas when available. Specially needed in web workers\n return useOffscreenCanvas ? new OffscreenCanvas(width, height) : document.createElementNS('http://www.w3.org/1999/xhtml', 'canvas');\n }\n\n function resizeImage(image, needsPowerOfTwo, needsNewCanvas, maxSize) {\n var scale = 1; // handle case if texture exceeds max size\n\n if (image.width > maxSize || image.height > maxSize) {\n scale = maxSize / Math.max(image.width, image.height);\n } // only perform resize if necessary\n\n\n if (scale < 1 || needsPowerOfTwo === true) {\n // only perform resize for certain image types\n if (typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement || typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap) {\n var floor = needsPowerOfTwo ? _Math.floorPowerOfTwo : Math.floor;\n var width = floor(scale * image.width);\n var height = floor(scale * image.height);\n if (_canvas === undefined) _canvas = createCanvas(width, height); // cube textures can't reuse the same canvas\n\n var canvas = needsNewCanvas ? createCanvas(width, height) : _canvas;\n canvas.width = width;\n canvas.height = height;\n var context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, width, height);\n console.warn('THREE.WebGLRenderer: Texture has been resized from (' + image.width + 'x' + image.height + ') to (' + width + 'x' + height + ').');\n return canvas;\n } else {\n if ('data' in image) {\n console.warn('THREE.WebGLRenderer: Image in DataTexture is too big (' + image.width + 'x' + image.height + ').');\n }\n\n return image;\n }\n }\n\n return image;\n }\n\n function isPowerOfTwo(image) {\n return _Math.isPowerOfTwo(image.width) && _Math.isPowerOfTwo(image.height);\n }\n\n function textureNeedsPowerOfTwo(texture) {\n if (isWebGL2) return false;\n return texture.wrapS !== ClampToEdgeWrapping || texture.wrapT !== ClampToEdgeWrapping || texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter;\n }\n\n function textureNeedsGenerateMipmaps(texture, supportsMips) {\n return texture.generateMipmaps && supportsMips && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter;\n }\n\n function generateMipmap(target, texture, width, height) {\n _gl.generateMipmap(target);\n\n var textureProperties = properties.get(texture); // Note: Math.log( x ) * Math.LOG2E used instead of Math.log2( x ) which is not supported by IE11\n\n textureProperties.__maxMipLevel = Math.log(Math.max(width, height)) * Math.LOG2E;\n }\n\n function getInternalFormat(glFormat, glType) {\n if (isWebGL2 === false) return glFormat;\n var internalFormat = glFormat;\n\n if (glFormat === 6403) {\n if (glType === 5126) internalFormat = 33326;\n if (glType === 5131) internalFormat = 33325;\n if (glType === 5121) internalFormat = 33321;\n }\n\n if (glFormat === 6407) {\n if (glType === 5126) internalFormat = 34837;\n if (glType === 5131) internalFormat = 34843;\n if (glType === 5121) internalFormat = 32849;\n }\n\n if (glFormat === 6408) {\n if (glType === 5126) internalFormat = 34836;\n if (glType === 5131) internalFormat = 34842;\n if (glType === 5121) internalFormat = 32856;\n }\n\n if (internalFormat === 33325 || internalFormat === 33326 || internalFormat === 34842 || internalFormat === 34836) {\n extensions.get('EXT_color_buffer_float');\n } else if (internalFormat === 34843 || internalFormat === 34837) {\n console.warn('THREE.WebGLRenderer: Floating point textures with RGB format not supported. Please use RGBA instead.');\n }\n\n return internalFormat;\n } // Fallback filters for non-power-of-2 textures\n\n\n function filterFallback(f) {\n if (f === NearestFilter || f === NearestMipmapNearestFilter || f === NearestMipmapLinearFilter) {\n return 9728;\n }\n\n return 9729;\n } //\n\n\n function onTextureDispose(event) {\n var texture = event.target;\n texture.removeEventListener('dispose', onTextureDispose);\n deallocateTexture(texture);\n\n if (texture.isVideoTexture) {\n _videoTextures.delete(texture);\n }\n\n info.memory.textures--;\n }\n\n function onRenderTargetDispose(event) {\n var renderTarget = event.target;\n renderTarget.removeEventListener('dispose', onRenderTargetDispose);\n deallocateRenderTarget(renderTarget);\n info.memory.textures--;\n } //\n\n\n function deallocateTexture(texture) {\n var textureProperties = properties.get(texture);\n if (textureProperties.__webglInit === undefined) return;\n\n _gl.deleteTexture(textureProperties.__webglTexture);\n\n properties.remove(texture);\n }\n\n function deallocateRenderTarget(renderTarget) {\n var renderTargetProperties = properties.get(renderTarget);\n var textureProperties = properties.get(renderTarget.texture);\n if (!renderTarget) return;\n\n if (textureProperties.__webglTexture !== undefined) {\n _gl.deleteTexture(textureProperties.__webglTexture);\n }\n\n if (renderTarget.depthTexture) {\n renderTarget.depthTexture.dispose();\n }\n\n if (renderTarget.isWebGLRenderTargetCube) {\n for (var i = 0; i < 6; i++) {\n _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer[i]);\n\n if (renderTargetProperties.__webglDepthbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthbuffer[i]);\n }\n } else {\n _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer);\n\n if (renderTargetProperties.__webglDepthbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthbuffer);\n }\n\n if (renderTarget.isWebGLMultiviewRenderTarget) {\n _gl.deleteTexture(renderTargetProperties.__webglColorTexture);\n\n _gl.deleteTexture(renderTargetProperties.__webglDepthStencilTexture);\n\n info.memory.textures -= 2;\n\n for (var i = 0, il = renderTargetProperties.__webglViewFramebuffers.length; i < il; i++) {\n _gl.deleteFramebuffer(renderTargetProperties.__webglViewFramebuffers[i]);\n }\n }\n\n properties.remove(renderTarget.texture);\n properties.remove(renderTarget);\n } //\n\n\n var textureUnits = 0;\n\n function resetTextureUnits() {\n textureUnits = 0;\n }\n\n function allocateTextureUnit() {\n var textureUnit = textureUnits;\n\n if (textureUnit >= maxTextures) {\n console.warn('THREE.WebGLTextures: Trying to use ' + textureUnit + ' texture units while this GPU supports only ' + maxTextures);\n }\n\n textureUnits += 1;\n return textureUnit;\n } //\n\n\n function setTexture2D(texture, slot) {\n var textureProperties = properties.get(texture);\n if (texture.isVideoTexture) updateVideoTexture(texture);\n\n if (texture.version > 0 && textureProperties.__version !== texture.version) {\n var image = texture.image;\n\n if (image === undefined) {\n console.warn('THREE.WebGLRenderer: Texture marked for update but image is undefined');\n } else if (image.complete === false) {\n console.warn('THREE.WebGLRenderer: Texture marked for update but image is incomplete');\n } else {\n uploadTexture(textureProperties, texture, slot);\n return;\n }\n }\n\n state.activeTexture(33984 + slot);\n state.bindTexture(3553, textureProperties.__webglTexture);\n }\n\n function setTexture2DArray(texture, slot) {\n var textureProperties = properties.get(texture);\n\n if (texture.version > 0 && textureProperties.__version !== texture.version) {\n uploadTexture(textureProperties, texture, slot);\n return;\n }\n\n state.activeTexture(33984 + slot);\n state.bindTexture(35866, textureProperties.__webglTexture);\n }\n\n function setTexture3D(texture, slot) {\n var textureProperties = properties.get(texture);\n\n if (texture.version > 0 && textureProperties.__version !== texture.version) {\n uploadTexture(textureProperties, texture, slot);\n return;\n }\n\n state.activeTexture(33984 + slot);\n state.bindTexture(32879, textureProperties.__webglTexture);\n }\n\n function setTextureCube(texture, slot) {\n if (texture.image.length !== 6) return;\n var textureProperties = properties.get(texture);\n\n if (texture.version > 0 && textureProperties.__version !== texture.version) {\n initTexture(textureProperties, texture);\n state.activeTexture(33984 + slot);\n state.bindTexture(34067, textureProperties.__webglTexture);\n\n _gl.pixelStorei(37440, texture.flipY);\n\n var isCompressed = texture && texture.isCompressedTexture;\n var isDataTexture = texture.image[0] && texture.image[0].isDataTexture;\n var cubeImage = [];\n\n for (var i = 0; i < 6; i++) {\n if (!isCompressed && !isDataTexture) {\n cubeImage[i] = resizeImage(texture.image[i], false, true, maxCubemapSize);\n } else {\n cubeImage[i] = isDataTexture ? texture.image[i].image : texture.image[i];\n }\n }\n\n var image = cubeImage[0],\n supportsMips = isPowerOfTwo(image) || isWebGL2,\n glFormat = utils.convert(texture.format),\n glType = utils.convert(texture.type),\n glInternalFormat = getInternalFormat(glFormat, glType);\n setTextureParameters(34067, texture, supportsMips);\n var mipmaps;\n\n if (isCompressed) {\n for (var i = 0; i < 6; i++) {\n mipmaps = cubeImage[i].mipmaps;\n\n for (var j = 0; j < mipmaps.length; j++) {\n var mipmap = mipmaps[j];\n\n if (texture.format !== RGBAFormat && texture.format !== RGBFormat) {\n if (glFormat !== null) {\n state.compressedTexImage2D(34069 + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data);\n } else {\n console.warn('THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()');\n }\n } else {\n state.texImage2D(34069 + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\n }\n }\n }\n\n textureProperties.__maxMipLevel = mipmaps.length - 1;\n } else {\n mipmaps = texture.mipmaps;\n\n for (var i = 0; i < 6; i++) {\n if (isDataTexture) {\n state.texImage2D(34069 + i, 0, glInternalFormat, cubeImage[i].width, cubeImage[i].height, 0, glFormat, glType, cubeImage[i].data);\n\n for (var j = 0; j < mipmaps.length; j++) {\n var mipmap = mipmaps[j];\n var mipmapImage = mipmap.image[i].image;\n state.texImage2D(34069 + i, j + 1, glInternalFormat, mipmapImage.width, mipmapImage.height, 0, glFormat, glType, mipmapImage.data);\n }\n } else {\n state.texImage2D(34069 + i, 0, glInternalFormat, glFormat, glType, cubeImage[i]);\n\n for (var j = 0; j < mipmaps.length; j++) {\n var mipmap = mipmaps[j];\n state.texImage2D(34069 + i, j + 1, glInternalFormat, glFormat, glType, mipmap.image[i]);\n }\n }\n }\n\n textureProperties.__maxMipLevel = mipmaps.length;\n }\n\n if (textureNeedsGenerateMipmaps(texture, supportsMips)) {\n // We assume images for cube map have the same size.\n generateMipmap(34067, texture, image.width, image.height);\n }\n\n textureProperties.__version = texture.version;\n if (texture.onUpdate) texture.onUpdate(texture);\n } else {\n state.activeTexture(33984 + slot);\n state.bindTexture(34067, textureProperties.__webglTexture);\n }\n }\n\n function setTextureCubeDynamic(texture, slot) {\n state.activeTexture(33984 + slot);\n state.bindTexture(34067, properties.get(texture).__webglTexture);\n }\n\n var wrappingToGL = (_wrappingToGL = {}, _defineProperty(_wrappingToGL, RepeatWrapping, 10497), _defineProperty(_wrappingToGL, ClampToEdgeWrapping, 33071), _defineProperty(_wrappingToGL, MirroredRepeatWrapping, 33648), _wrappingToGL);\n var filterToGL = (_filterToGL = {}, _defineProperty(_filterToGL, NearestFilter, 9728), _defineProperty(_filterToGL, NearestMipmapNearestFilter, 9984), _defineProperty(_filterToGL, NearestMipmapLinearFilter, 9986), _defineProperty(_filterToGL, LinearFilter, 9729), _defineProperty(_filterToGL, LinearMipmapNearestFilter, 9985), _defineProperty(_filterToGL, LinearMipmapLinearFilter, 9987), _filterToGL);\n\n function setTextureParameters(textureType, texture, supportsMips) {\n if (supportsMips) {\n _gl.texParameteri(textureType, 10242, wrappingToGL[texture.wrapS]);\n\n _gl.texParameteri(textureType, 10243, wrappingToGL[texture.wrapT]);\n\n if (textureType === 32879 || textureType === 35866) {\n _gl.texParameteri(textureType, 32882, wrappingToGL[texture.wrapR]);\n }\n\n _gl.texParameteri(textureType, 10240, filterToGL[texture.magFilter]);\n\n _gl.texParameteri(textureType, 10241, filterToGL[texture.minFilter]);\n } else {\n _gl.texParameteri(textureType, 10242, 33071);\n\n _gl.texParameteri(textureType, 10243, 33071);\n\n if (textureType === 32879 || textureType === 35866) {\n _gl.texParameteri(textureType, 32882, 33071);\n }\n\n if (texture.wrapS !== ClampToEdgeWrapping || texture.wrapT !== ClampToEdgeWrapping) {\n console.warn('THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.');\n }\n\n _gl.texParameteri(textureType, 10240, filterFallback(texture.magFilter));\n\n _gl.texParameteri(textureType, 10241, filterFallback(texture.minFilter));\n\n if (texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter) {\n console.warn('THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.');\n }\n }\n\n var extension = extensions.get('EXT_texture_filter_anisotropic');\n\n if (extension) {\n if (texture.type === FloatType && extensions.get('OES_texture_float_linear') === null) return;\n if (texture.type === HalfFloatType && (isWebGL2 || extensions.get('OES_texture_half_float_linear')) === null) return;\n\n if (texture.anisotropy > 1 || properties.get(texture).__currentAnisotropy) {\n _gl.texParameterf(textureType, extension.TEXTURE_MAX_ANISOTROPY_EXT, Math.min(texture.anisotropy, capabilities.getMaxAnisotropy()));\n\n properties.get(texture).__currentAnisotropy = texture.anisotropy;\n }\n }\n }\n\n function initTexture(textureProperties, texture) {\n if (textureProperties.__webglInit === undefined) {\n textureProperties.__webglInit = true;\n texture.addEventListener('dispose', onTextureDispose);\n textureProperties.__webglTexture = _gl.createTexture();\n info.memory.textures++;\n }\n }\n\n function uploadTexture(textureProperties, texture, slot) {\n var textureType = 3553;\n if (texture.isDataTexture2DArray) textureType = 35866;\n if (texture.isDataTexture3D) textureType = 32879;\n initTexture(textureProperties, texture);\n state.activeTexture(33984 + slot);\n state.bindTexture(textureType, textureProperties.__webglTexture);\n\n _gl.pixelStorei(37440, texture.flipY);\n\n _gl.pixelStorei(37441, texture.premultiplyAlpha);\n\n _gl.pixelStorei(3317, texture.unpackAlignment);\n\n var needsPowerOfTwo = textureNeedsPowerOfTwo(texture) && isPowerOfTwo(texture.image) === false;\n var image = resizeImage(texture.image, needsPowerOfTwo, false, maxTextureSize);\n var supportsMips = isPowerOfTwo(image) || isWebGL2,\n glFormat = utils.convert(texture.format),\n glType = utils.convert(texture.type),\n glInternalFormat = getInternalFormat(glFormat, glType);\n setTextureParameters(textureType, texture, supportsMips);\n var mipmap,\n mipmaps = texture.mipmaps;\n\n if (texture.isDepthTexture) {\n // populate depth texture with dummy data\n glInternalFormat = 6402;\n\n if (texture.type === FloatType) {\n if (isWebGL2 === false) throw new Error('Float Depth Texture only supported in WebGL2.0');\n glInternalFormat = 36012;\n } else if (isWebGL2) {\n // WebGL 2.0 requires signed internalformat for glTexImage2D\n glInternalFormat = 33189;\n }\n\n if (texture.format === DepthFormat && glInternalFormat === 6402) {\n // The error INVALID_OPERATION is generated by texImage2D if format and internalformat are\n // DEPTH_COMPONENT and type is not UNSIGNED_SHORT or UNSIGNED_INT\n // (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/)\n if (texture.type !== UnsignedShortType && texture.type !== UnsignedIntType) {\n console.warn('THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.');\n texture.type = UnsignedShortType;\n glType = utils.convert(texture.type);\n }\n } // Depth stencil textures need the DEPTH_STENCIL internal format\n // (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/)\n\n\n if (texture.format === DepthStencilFormat) {\n glInternalFormat = 34041; // The error INVALID_OPERATION is generated by texImage2D if format and internalformat are\n // DEPTH_STENCIL and type is not UNSIGNED_INT_24_8_WEBGL.\n // (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/)\n\n if (texture.type !== UnsignedInt248Type) {\n console.warn('THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.');\n texture.type = UnsignedInt248Type;\n glType = utils.convert(texture.type);\n }\n }\n\n state.texImage2D(3553, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, null);\n } else if (texture.isDataTexture) {\n // use manually created mipmaps if available\n // if there are no manual mipmaps\n // set 0 level mipmap and then use GL to generate other mipmap levels\n if (mipmaps.length > 0 && supportsMips) {\n for (var i = 0, il = mipmaps.length; i < il; i++) {\n mipmap = mipmaps[i];\n state.texImage2D(3553, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\n }\n\n texture.generateMipmaps = false;\n textureProperties.__maxMipLevel = mipmaps.length - 1;\n } else {\n state.texImage2D(3553, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, image.data);\n textureProperties.__maxMipLevel = 0;\n }\n } else if (texture.isCompressedTexture) {\n for (var i = 0, il = mipmaps.length; i < il; i++) {\n mipmap = mipmaps[i];\n\n if (texture.format !== RGBAFormat && texture.format !== RGBFormat) {\n if (glFormat !== null) {\n state.compressedTexImage2D(3553, i, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data);\n } else {\n console.warn('THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()');\n }\n } else {\n state.texImage2D(3553, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\n }\n }\n\n textureProperties.__maxMipLevel = mipmaps.length - 1;\n } else if (texture.isDataTexture2DArray) {\n state.texImage3D(35866, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data);\n textureProperties.__maxMipLevel = 0;\n } else if (texture.isDataTexture3D) {\n state.texImage3D(32879, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data);\n textureProperties.__maxMipLevel = 0;\n } else {\n // regular Texture (image, video, canvas)\n // use manually created mipmaps if available\n // if there are no manual mipmaps\n // set 0 level mipmap and then use GL to generate other mipmap levels\n if (mipmaps.length > 0 && supportsMips) {\n for (var i = 0, il = mipmaps.length; i < il; i++) {\n mipmap = mipmaps[i];\n state.texImage2D(3553, i, glInternalFormat, glFormat, glType, mipmap);\n }\n\n texture.generateMipmaps = false;\n textureProperties.__maxMipLevel = mipmaps.length - 1;\n } else {\n state.texImage2D(3553, 0, glInternalFormat, glFormat, glType, image);\n textureProperties.__maxMipLevel = 0;\n }\n }\n\n if (textureNeedsGenerateMipmaps(texture, supportsMips)) {\n generateMipmap(3553, texture, image.width, image.height);\n }\n\n textureProperties.__version = texture.version;\n if (texture.onUpdate) texture.onUpdate(texture);\n } // Render targets\n // Setup storage for target texture and bind it to correct framebuffer\n\n\n function setupFrameBufferTexture(framebuffer, renderTarget, attachment, textureTarget) {\n var glFormat = utils.convert(renderTarget.texture.format);\n var glType = utils.convert(renderTarget.texture.type);\n var glInternalFormat = getInternalFormat(glFormat, glType);\n state.texImage2D(textureTarget, 0, glInternalFormat, renderTarget.width, renderTarget.height, 0, glFormat, glType, null);\n\n _gl.bindFramebuffer(36160, framebuffer);\n\n _gl.framebufferTexture2D(36160, attachment, textureTarget, properties.get(renderTarget.texture).__webglTexture, 0);\n\n _gl.bindFramebuffer(36160, null);\n } // Setup storage for internal depth/stencil buffers and bind to correct framebuffer\n\n\n function setupRenderBufferStorage(renderbuffer, renderTarget, isMultisample) {\n _gl.bindRenderbuffer(36161, renderbuffer);\n\n if (renderTarget.depthBuffer && !renderTarget.stencilBuffer) {\n if (isMultisample) {\n var samples = getRenderTargetSamples(renderTarget);\n\n _gl.renderbufferStorageMultisample(36161, samples, 33189, renderTarget.width, renderTarget.height);\n } else {\n _gl.renderbufferStorage(36161, 33189, renderTarget.width, renderTarget.height);\n }\n\n _gl.framebufferRenderbuffer(36160, 36096, 36161, renderbuffer);\n } else if (renderTarget.depthBuffer && renderTarget.stencilBuffer) {\n if (isMultisample) {\n var samples = getRenderTargetSamples(renderTarget);\n\n _gl.renderbufferStorageMultisample(36161, samples, 35056, renderTarget.width, renderTarget.height);\n } else {\n _gl.renderbufferStorage(36161, 34041, renderTarget.width, renderTarget.height);\n }\n\n _gl.framebufferRenderbuffer(36160, 33306, 36161, renderbuffer);\n } else {\n var glFormat = utils.convert(renderTarget.texture.format);\n var glType = utils.convert(renderTarget.texture.type);\n var glInternalFormat = getInternalFormat(glFormat, glType);\n\n if (isMultisample) {\n var samples = getRenderTargetSamples(renderTarget);\n\n _gl.renderbufferStorageMultisample(36161, samples, glInternalFormat, renderTarget.width, renderTarget.height);\n } else {\n _gl.renderbufferStorage(36161, glInternalFormat, renderTarget.width, renderTarget.height);\n }\n }\n\n _gl.bindRenderbuffer(36161, null);\n } // Setup resources for a Depth Texture for a FBO (needs an extension)\n\n\n function setupDepthTexture(framebuffer, renderTarget) {\n var isCube = renderTarget && renderTarget.isWebGLRenderTargetCube;\n if (isCube) throw new Error('Depth Texture with cube render targets is not supported');\n\n _gl.bindFramebuffer(36160, framebuffer);\n\n if (!(renderTarget.depthTexture && renderTarget.depthTexture.isDepthTexture)) {\n throw new Error('renderTarget.depthTexture must be an instance of THREE.DepthTexture');\n } // upload an empty depth texture with framebuffer size\n\n\n if (!properties.get(renderTarget.depthTexture).__webglTexture || renderTarget.depthTexture.image.width !== renderTarget.width || renderTarget.depthTexture.image.height !== renderTarget.height) {\n renderTarget.depthTexture.image.width = renderTarget.width;\n renderTarget.depthTexture.image.height = renderTarget.height;\n renderTarget.depthTexture.needsUpdate = true;\n }\n\n setTexture2D(renderTarget.depthTexture, 0);\n\n var webglDepthTexture = properties.get(renderTarget.depthTexture).__webglTexture;\n\n if (renderTarget.depthTexture.format === DepthFormat) {\n _gl.framebufferTexture2D(36160, 36096, 3553, webglDepthTexture, 0);\n } else if (renderTarget.depthTexture.format === DepthStencilFormat) {\n _gl.framebufferTexture2D(36160, 33306, 3553, webglDepthTexture, 0);\n } else {\n throw new Error('Unknown depthTexture format');\n }\n } // Setup GL resources for a non-texture depth buffer\n\n\n function setupDepthRenderbuffer(renderTarget) {\n var renderTargetProperties = properties.get(renderTarget);\n var isCube = renderTarget.isWebGLRenderTargetCube === true;\n\n if (renderTarget.depthTexture) {\n if (isCube) throw new Error('target.depthTexture not supported in Cube render targets');\n setupDepthTexture(renderTargetProperties.__webglFramebuffer, renderTarget);\n } else {\n if (isCube) {\n renderTargetProperties.__webglDepthbuffer = [];\n\n for (var i = 0; i < 6; i++) {\n _gl.bindFramebuffer(36160, renderTargetProperties.__webglFramebuffer[i]);\n\n renderTargetProperties.__webglDepthbuffer[i] = _gl.createRenderbuffer();\n setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer[i], renderTarget);\n }\n } else {\n _gl.bindFramebuffer(36160, renderTargetProperties.__webglFramebuffer);\n\n renderTargetProperties.__webglDepthbuffer = _gl.createRenderbuffer();\n setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer, renderTarget);\n }\n }\n\n _gl.bindFramebuffer(36160, null);\n } // Set up GL resources for the render target\n\n\n function setupRenderTarget(renderTarget) {\n var renderTargetProperties = properties.get(renderTarget);\n var textureProperties = properties.get(renderTarget.texture);\n renderTarget.addEventListener('dispose', onRenderTargetDispose);\n textureProperties.__webglTexture = _gl.createTexture();\n info.memory.textures++;\n var isCube = renderTarget.isWebGLRenderTargetCube === true;\n var isMultisample = renderTarget.isWebGLMultisampleRenderTarget === true;\n var isMultiview = renderTarget.isWebGLMultiviewRenderTarget === true;\n var supportsMips = isPowerOfTwo(renderTarget) || isWebGL2; // Setup framebuffer\n\n if (isCube) {\n renderTargetProperties.__webglFramebuffer = [];\n\n for (var i = 0; i < 6; i++) {\n renderTargetProperties.__webglFramebuffer[i] = _gl.createFramebuffer();\n }\n } else {\n renderTargetProperties.__webglFramebuffer = _gl.createFramebuffer();\n\n if (isMultisample) {\n if (isWebGL2) {\n renderTargetProperties.__webglMultisampledFramebuffer = _gl.createFramebuffer();\n renderTargetProperties.__webglColorRenderbuffer = _gl.createRenderbuffer();\n\n _gl.bindRenderbuffer(36161, renderTargetProperties.__webglColorRenderbuffer);\n\n var glFormat = utils.convert(renderTarget.texture.format);\n var glType = utils.convert(renderTarget.texture.type);\n var glInternalFormat = getInternalFormat(glFormat, glType);\n var samples = getRenderTargetSamples(renderTarget);\n\n _gl.renderbufferStorageMultisample(36161, samples, glInternalFormat, renderTarget.width, renderTarget.height);\n\n _gl.bindFramebuffer(36160, renderTargetProperties.__webglMultisampledFramebuffer);\n\n _gl.framebufferRenderbuffer(36160, 36064, 36161, renderTargetProperties.__webglColorRenderbuffer);\n\n _gl.bindRenderbuffer(36161, null);\n\n if (renderTarget.depthBuffer) {\n renderTargetProperties.__webglDepthRenderbuffer = _gl.createRenderbuffer();\n setupRenderBufferStorage(renderTargetProperties.__webglDepthRenderbuffer, renderTarget, true);\n }\n\n _gl.bindFramebuffer(36160, null);\n } else {\n console.warn('THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.');\n }\n } else if (isMultiview) {\n var width = renderTarget.width;\n var height = renderTarget.height;\n var numViews = renderTarget.numViews;\n\n _gl.bindFramebuffer(36160, renderTargetProperties.__webglFramebuffer);\n\n var ext = extensions.get('OVR_multiview2');\n info.memory.textures += 2;\n\n var colorTexture = _gl.createTexture();\n\n _gl.bindTexture(35866, colorTexture);\n\n _gl.texParameteri(35866, 10240, 9728);\n\n _gl.texParameteri(35866, 10241, 9728);\n\n _gl.texImage3D(35866, 0, 32856, width, height, numViews, 0, 6408, 5121, null);\n\n ext.framebufferTextureMultiviewOVR(36160, 36064, colorTexture, 0, 0, numViews);\n\n var depthStencilTexture = _gl.createTexture();\n\n _gl.bindTexture(35866, depthStencilTexture);\n\n _gl.texParameteri(35866, 10240, 9728);\n\n _gl.texParameteri(35866, 10241, 9728);\n\n _gl.texImage3D(35866, 0, 35056, width, height, numViews, 0, 34041, 34042, null);\n\n ext.framebufferTextureMultiviewOVR(36160, 33306, depthStencilTexture, 0, 0, numViews);\n var viewFramebuffers = new Array(numViews);\n\n for (var i = 0; i < numViews; ++i) {\n viewFramebuffers[i] = _gl.createFramebuffer();\n\n _gl.bindFramebuffer(36160, viewFramebuffers[i]);\n\n _gl.framebufferTextureLayer(36160, 36064, colorTexture, 0, i);\n }\n\n renderTargetProperties.__webglColorTexture = colorTexture;\n renderTargetProperties.__webglDepthStencilTexture = depthStencilTexture;\n renderTargetProperties.__webglViewFramebuffers = viewFramebuffers;\n\n _gl.bindFramebuffer(36160, null);\n\n _gl.bindTexture(35866, null);\n }\n } // Setup color buffer\n\n\n if (isCube) {\n state.bindTexture(34067, textureProperties.__webglTexture);\n setTextureParameters(34067, renderTarget.texture, supportsMips);\n\n for (var i = 0; i < 6; i++) {\n setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer[i], renderTarget, 36064, 34069 + i);\n }\n\n if (textureNeedsGenerateMipmaps(renderTarget.texture, supportsMips)) {\n generateMipmap(34067, renderTarget.texture, renderTarget.width, renderTarget.height);\n }\n\n state.bindTexture(34067, null);\n } else if (!isMultiview) {\n state.bindTexture(3553, textureProperties.__webglTexture);\n setTextureParameters(3553, renderTarget.texture, supportsMips);\n setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer, renderTarget, 36064, 3553);\n\n if (textureNeedsGenerateMipmaps(renderTarget.texture, supportsMips)) {\n generateMipmap(3553, renderTarget.texture, renderTarget.width, renderTarget.height);\n }\n\n state.bindTexture(3553, null);\n } // Setup depth and stencil buffers\n\n\n if (renderTarget.depthBuffer) {\n setupDepthRenderbuffer(renderTarget);\n }\n }\n\n function updateRenderTargetMipmap(renderTarget) {\n var texture = renderTarget.texture;\n var supportsMips = isPowerOfTwo(renderTarget) || isWebGL2;\n\n if (textureNeedsGenerateMipmaps(texture, supportsMips)) {\n var target = renderTarget.isWebGLRenderTargetCube ? 34067 : 3553;\n\n var webglTexture = properties.get(texture).__webglTexture;\n\n state.bindTexture(target, webglTexture);\n generateMipmap(target, texture, renderTarget.width, renderTarget.height);\n state.bindTexture(target, null);\n }\n }\n\n function updateMultisampleRenderTarget(renderTarget) {\n if (renderTarget.isWebGLMultisampleRenderTarget) {\n if (isWebGL2) {\n var renderTargetProperties = properties.get(renderTarget);\n\n _gl.bindFramebuffer(36008, renderTargetProperties.__webglMultisampledFramebuffer);\n\n _gl.bindFramebuffer(36009, renderTargetProperties.__webglFramebuffer);\n\n var width = renderTarget.width;\n var height = renderTarget.height;\n var mask = 16384;\n if (renderTarget.depthBuffer) mask |= 256;\n if (renderTarget.stencilBuffer) mask |= 1024;\n\n _gl.blitFramebuffer(0, 0, width, height, 0, 0, width, height, mask, 9728);\n } else {\n console.warn('THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.');\n }\n }\n }\n\n function getRenderTargetSamples(renderTarget) {\n return isWebGL2 && renderTarget.isWebGLMultisampleRenderTarget ? Math.min(maxSamples, renderTarget.samples) : 0;\n }\n\n function updateVideoTexture(texture) {\n var frame = info.render.frame; // Check the last frame we updated the VideoTexture\n\n if (_videoTextures.get(texture) !== frame) {\n _videoTextures.set(texture, frame);\n\n texture.update();\n }\n } // backwards compatibility\n\n\n var warnedTexture2D = false;\n var warnedTextureCube = false;\n\n function safeSetTexture2D(texture, slot) {\n if (texture && texture.isWebGLRenderTarget) {\n if (warnedTexture2D === false) {\n console.warn(\"THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead.\");\n warnedTexture2D = true;\n }\n\n texture = texture.texture;\n }\n\n setTexture2D(texture, slot);\n }\n\n function safeSetTextureCube(texture, slot) {\n if (texture && texture.isWebGLRenderTargetCube) {\n if (warnedTextureCube === false) {\n console.warn(\"THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead.\");\n warnedTextureCube = true;\n }\n\n texture = texture.texture;\n } // currently relying on the fact that WebGLRenderTargetCube.texture is a Texture and NOT a CubeTexture\n // TODO: unify these code paths\n\n\n if (texture && texture.isCubeTexture || Array.isArray(texture.image) && texture.image.length === 6) {\n // CompressedTexture can have Array in image :/\n // this function alone should take care of cube textures\n setTextureCube(texture, slot);\n } else {\n // assumed: texture property of THREE.WebGLRenderTargetCube\n setTextureCubeDynamic(texture, slot);\n }\n } //\n\n\n this.allocateTextureUnit = allocateTextureUnit;\n this.resetTextureUnits = resetTextureUnits;\n this.setTexture2D = setTexture2D;\n this.setTexture2DArray = setTexture2DArray;\n this.setTexture3D = setTexture3D;\n this.setTextureCube = setTextureCube;\n this.setTextureCubeDynamic = setTextureCubeDynamic;\n this.setupRenderTarget = setupRenderTarget;\n this.updateRenderTargetMipmap = updateRenderTargetMipmap;\n this.updateMultisampleRenderTarget = updateMultisampleRenderTarget;\n this.safeSetTexture2D = safeSetTexture2D;\n this.safeSetTextureCube = safeSetTextureCube;\n}\n/**\n * @author thespite / http://www.twitter.com/thespite\n */\n\n\nfunction WebGLUtils(gl, extensions, capabilities) {\n var isWebGL2 = capabilities.isWebGL2;\n\n function convert(p) {\n var extension;\n if (p === UnsignedByteType) return 5121;\n if (p === UnsignedShort4444Type) return 32819;\n if (p === UnsignedShort5551Type) return 32820;\n if (p === UnsignedShort565Type) return 33635;\n if (p === ByteType) return 5120;\n if (p === ShortType) return 5122;\n if (p === UnsignedShortType) return 5123;\n if (p === IntType) return 5124;\n if (p === UnsignedIntType) return 5125;\n if (p === FloatType) return 5126;\n\n if (p === HalfFloatType) {\n if (isWebGL2) return 5131;\n extension = extensions.get('OES_texture_half_float');\n\n if (extension !== null) {\n return extension.HALF_FLOAT_OES;\n } else {\n return null;\n }\n }\n\n if (p === AlphaFormat) return 6406;\n if (p === RGBFormat) return 6407;\n if (p === RGBAFormat) return 6408;\n if (p === LuminanceFormat) return 6409;\n if (p === LuminanceAlphaFormat) return 6410;\n if (p === DepthFormat) return 6402;\n if (p === DepthStencilFormat) return 34041;\n if (p === RedFormat) return 6403;\n\n if (p === RGB_S3TC_DXT1_Format || p === RGBA_S3TC_DXT1_Format || p === RGBA_S3TC_DXT3_Format || p === RGBA_S3TC_DXT5_Format) {\n extension = extensions.get('WEBGL_compressed_texture_s3tc');\n\n if (extension !== null) {\n if (p === RGB_S3TC_DXT1_Format) return extension.COMPRESSED_RGB_S3TC_DXT1_EXT;\n if (p === RGBA_S3TC_DXT1_Format) return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT;\n if (p === RGBA_S3TC_DXT3_Format) return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT;\n if (p === RGBA_S3TC_DXT5_Format) return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT;\n } else {\n return null;\n }\n }\n\n if (p === RGB_PVRTC_4BPPV1_Format || p === RGB_PVRTC_2BPPV1_Format || p === RGBA_PVRTC_4BPPV1_Format || p === RGBA_PVRTC_2BPPV1_Format) {\n extension = extensions.get('WEBGL_compressed_texture_pvrtc');\n\n if (extension !== null) {\n if (p === RGB_PVRTC_4BPPV1_Format) return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;\n if (p === RGB_PVRTC_2BPPV1_Format) return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;\n if (p === RGBA_PVRTC_4BPPV1_Format) return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;\n if (p === RGBA_PVRTC_2BPPV1_Format) return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;\n } else {\n return null;\n }\n }\n\n if (p === RGB_ETC1_Format) {\n extension = extensions.get('WEBGL_compressed_texture_etc1');\n\n if (extension !== null) {\n return extension.COMPRESSED_RGB_ETC1_WEBGL;\n } else {\n return null;\n }\n }\n\n if (p === RGBA_ASTC_4x4_Format || p === RGBA_ASTC_5x4_Format || p === RGBA_ASTC_5x5_Format || p === RGBA_ASTC_6x5_Format || p === RGBA_ASTC_6x6_Format || p === RGBA_ASTC_8x5_Format || p === RGBA_ASTC_8x6_Format || p === RGBA_ASTC_8x8_Format || p === RGBA_ASTC_10x5_Format || p === RGBA_ASTC_10x6_Format || p === RGBA_ASTC_10x8_Format || p === RGBA_ASTC_10x10_Format || p === RGBA_ASTC_12x10_Format || p === RGBA_ASTC_12x12_Format) {\n extension = extensions.get('WEBGL_compressed_texture_astc');\n\n if (extension !== null) {\n // TODO Complete?\n return p;\n } else {\n return null;\n }\n }\n\n if (p === UnsignedInt248Type) {\n if (isWebGL2) return 34042;\n extension = extensions.get('WEBGL_depth_texture');\n\n if (extension !== null) {\n return extension.UNSIGNED_INT_24_8_WEBGL;\n } else {\n return null;\n }\n }\n }\n\n return {\n convert: convert\n };\n}\n/**\n * @author fernandojsg / http://fernandojsg.com\n * @author Takahiro https://github.com/takahirox\n */\n\n\nfunction WebGLMultiviewRenderTarget(width, height, numViews, options) {\n WebGLRenderTarget.call(this, width, height, options);\n this.depthBuffer = false;\n this.stencilBuffer = false;\n this.numViews = numViews;\n}\n\nWebGLMultiviewRenderTarget.prototype = Object.assign(Object.create(WebGLRenderTarget.prototype), {\n constructor: WebGLMultiviewRenderTarget,\n isWebGLMultiviewRenderTarget: true,\n copy: function copy(source) {\n WebGLRenderTarget.prototype.copy.call(this, source);\n this.numViews = source.numViews;\n return this;\n },\n setNumViews: function setNumViews(numViews) {\n if (this.numViews !== numViews) {\n this.numViews = numViews;\n this.dispose();\n }\n\n return this;\n }\n});\n/**\n * @author fernandojsg / http://fernandojsg.com\n * @author Takahiro https://github.com/takahirox\n */\n\nfunction WebGLMultiview(renderer, gl) {\n var DEFAULT_NUMVIEWS = 2;\n var extensions = renderer.extensions;\n var properties = renderer.properties;\n var renderTarget, currentRenderTarget;\n var mat3, mat4, cameraArray, renderSize;\n var available;\n var maxNumViews = 0; //\n\n function isAvailable() {\n if (available === undefined) {\n var extension = extensions.get('OVR_multiview2');\n available = extension !== null && gl.getContextAttributes().antialias === false;\n\n if (available) {\n maxNumViews = gl.getParameter(extension.MAX_VIEWS_OVR);\n renderTarget = new WebGLMultiviewRenderTarget(0, 0, DEFAULT_NUMVIEWS);\n renderSize = new Vector2();\n mat4 = [];\n mat3 = [];\n cameraArray = [];\n\n for (var i = 0; i < maxNumViews; i++) {\n mat4[i] = new Matrix4();\n mat3[i] = new Matrix3();\n }\n }\n }\n\n return available;\n }\n\n function getCameraArray(camera) {\n if (camera.isArrayCamera) return camera.cameras;\n cameraArray[0] = camera;\n return cameraArray;\n }\n\n function updateCameraProjectionMatricesUniform(camera, uniforms) {\n var cameras = getCameraArray(camera);\n\n for (var i = 0; i < cameras.length; i++) {\n mat4[i].copy(cameras[i].projectionMatrix);\n }\n\n uniforms.setValue(gl, 'projectionMatrices', mat4);\n }\n\n function updateCameraViewMatricesUniform(camera, uniforms) {\n var cameras = getCameraArray(camera);\n\n for (var i = 0; i < cameras.length; i++) {\n mat4[i].copy(cameras[i].matrixWorldInverse);\n }\n\n uniforms.setValue(gl, 'viewMatrices', mat4);\n }\n\n function updateObjectMatricesUniforms(object, camera, uniforms) {\n var cameras = getCameraArray(camera);\n\n for (var i = 0; i < cameras.length; i++) {\n mat4[i].multiplyMatrices(cameras[i].matrixWorldInverse, object.matrixWorld);\n mat3[i].getNormalMatrix(mat4[i]);\n }\n\n uniforms.setValue(gl, 'modelViewMatrices', mat4);\n uniforms.setValue(gl, 'normalMatrices', mat3);\n }\n\n function isMultiviewCompatible(camera) {\n if (camera.isArrayCamera === undefined) return true;\n var cameras = camera.cameras;\n if (cameras.length > maxNumViews) return false;\n\n for (var i = 1, il = cameras.length; i < il; i++) {\n if (cameras[0].viewport.z !== cameras[i].viewport.z || cameras[0].viewport.w !== cameras[i].viewport.w) return false;\n }\n\n return true;\n }\n\n function resizeRenderTarget(camera) {\n if (currentRenderTarget) {\n renderSize.set(currentRenderTarget.width, currentRenderTarget.height);\n } else {\n renderer.getDrawingBufferSize(renderSize);\n }\n\n if (camera.isArrayCamera) {\n var viewport = camera.cameras[0].viewport;\n renderTarget.setSize(viewport.z, viewport.w);\n renderTarget.setNumViews(camera.cameras.length);\n } else {\n renderTarget.setSize(renderSize.x, renderSize.y);\n renderTarget.setNumViews(DEFAULT_NUMVIEWS);\n }\n }\n\n function attachCamera(camera) {\n if (isMultiviewCompatible(camera) === false) return;\n currentRenderTarget = renderer.getRenderTarget();\n resizeRenderTarget(camera);\n renderer.setRenderTarget(renderTarget);\n }\n\n function detachCamera(camera) {\n if (renderTarget !== renderer.getRenderTarget()) return;\n renderer.setRenderTarget(currentRenderTarget);\n flush(camera);\n }\n\n function flush(camera) {\n var srcRenderTarget = renderTarget;\n var numViews = srcRenderTarget.numViews;\n\n var srcFramebuffers = properties.get(srcRenderTarget).__webglViewFramebuffers;\n\n var viewWidth = srcRenderTarget.width;\n var viewHeight = srcRenderTarget.height;\n\n if (camera.isArrayCamera) {\n for (var i = 0; i < numViews; i++) {\n var viewport = camera.cameras[i].viewport;\n var x1 = viewport.x;\n var y1 = viewport.y;\n var x2 = x1 + viewport.z;\n var y2 = y1 + viewport.w;\n gl.bindFramebuffer(36008, srcFramebuffers[i]);\n gl.blitFramebuffer(0, 0, viewWidth, viewHeight, x1, y1, x2, y2, 16384, 9728);\n }\n } else {\n gl.bindFramebuffer(36008, srcFramebuffers[0]);\n gl.blitFramebuffer(0, 0, viewWidth, viewHeight, 0, 0, renderSize.x, renderSize.y, 16384, 9728);\n }\n }\n\n this.isAvailable = isAvailable;\n this.attachCamera = attachCamera;\n this.detachCamera = detachCamera;\n this.updateCameraProjectionMatricesUniform = updateCameraProjectionMatricesUniform;\n this.updateCameraViewMatricesUniform = updateCameraViewMatricesUniform;\n this.updateObjectMatricesUniforms = updateObjectMatricesUniforms;\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction Group() {\n Object3D.call(this);\n this.type = 'Group';\n}\n\nGroup.prototype = Object.assign(Object.create(Object3D.prototype), {\n constructor: Group,\n isGroup: true\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction ArrayCamera(array) {\n PerspectiveCamera.call(this);\n this.cameras = array || [];\n}\n\nArrayCamera.prototype = Object.assign(Object.create(PerspectiveCamera.prototype), {\n constructor: ArrayCamera,\n isArrayCamera: true\n});\n/**\n * @author jsantell / https://www.jsantell.com/\n * @author mrdoob / http://mrdoob.com/\n */\n\nvar cameraLPos = new Vector3();\nvar cameraRPos = new Vector3();\n/**\n * Assumes 2 cameras that are parallel and share an X-axis, and that\n * the cameras' projection and world matrices have already been set.\n * And that near and far planes are identical for both cameras.\n * Visualization of this technique: https://computergraphics.stackexchange.com/a/4765\n */\n\nfunction setProjectionFromUnion(camera, cameraL, cameraR) {\n cameraLPos.setFromMatrixPosition(cameraL.matrixWorld);\n cameraRPos.setFromMatrixPosition(cameraR.matrixWorld);\n var ipd = cameraLPos.distanceTo(cameraRPos);\n var projL = cameraL.projectionMatrix.elements;\n var projR = cameraR.projectionMatrix.elements; // VR systems will have identical far and near planes, and\n // most likely identical top and bottom frustum extents.\n // Use the left camera for these values.\n\n var near = projL[14] / (projL[10] - 1);\n var far = projL[14] / (projL[10] + 1);\n var topFov = (projL[9] + 1) / projL[5];\n var bottomFov = (projL[9] - 1) / projL[5];\n var leftFov = (projL[8] - 1) / projL[0];\n var rightFov = (projR[8] + 1) / projR[0];\n var left = near * leftFov;\n var right = near * rightFov; // Calculate the new camera's position offset from the\n // left camera. xOffset should be roughly half `ipd`.\n\n var zOffset = ipd / (-leftFov + rightFov);\n var xOffset = zOffset * -leftFov; // TODO: Better way to apply this offset?\n\n cameraL.matrixWorld.decompose(camera.position, camera.quaternion, camera.scale);\n camera.translateX(xOffset);\n camera.translateZ(zOffset);\n camera.matrixWorld.compose(camera.position, camera.quaternion, camera.scale);\n camera.matrixWorldInverse.getInverse(camera.matrixWorld); // Find the union of the frustum values of the cameras and scale\n // the values so that the near plane's position does not change in world space,\n // although must now be relative to the new union camera.\n\n var near2 = near + zOffset;\n var far2 = far + zOffset;\n var left2 = left - xOffset;\n var right2 = right + (ipd - xOffset);\n var top2 = topFov * far / far2 * near2;\n var bottom2 = bottomFov * far / far2 * near2;\n camera.projectionMatrix.makePerspective(left2, right2, top2, bottom2, near2, far2);\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction WebVRManager(renderer) {\n var renderWidth, renderHeight;\n var scope = this;\n var device = null;\n var frameData = null;\n var poseTarget = null;\n var controllers = [];\n var standingMatrix = new Matrix4();\n var standingMatrixInverse = new Matrix4();\n var framebufferScaleFactor = 1.0;\n var referenceSpaceType = 'local-floor';\n\n if (typeof window !== 'undefined' && 'VRFrameData' in window) {\n frameData = new window.VRFrameData();\n window.addEventListener('vrdisplaypresentchange', onVRDisplayPresentChange, false);\n }\n\n var matrixWorldInverse = new Matrix4();\n var tempQuaternion = new Quaternion();\n var tempPosition = new Vector3();\n var cameraL = new PerspectiveCamera();\n cameraL.viewport = new Vector4();\n cameraL.layers.enable(1);\n var cameraR = new PerspectiveCamera();\n cameraR.viewport = new Vector4();\n cameraR.layers.enable(2);\n var cameraVR = new ArrayCamera([cameraL, cameraR]);\n cameraVR.layers.enable(1);\n cameraVR.layers.enable(2); //\n\n function isPresenting() {\n return device !== null && device.isPresenting === true;\n }\n\n var currentSize = new Vector2(),\n currentPixelRatio;\n\n function onVRDisplayPresentChange() {\n if (isPresenting()) {\n var eyeParameters = device.getEyeParameters('left');\n renderWidth = 2 * eyeParameters.renderWidth * framebufferScaleFactor;\n renderHeight = eyeParameters.renderHeight * framebufferScaleFactor;\n currentPixelRatio = renderer.getPixelRatio();\n renderer.getSize(currentSize);\n renderer.setDrawingBufferSize(renderWidth, renderHeight, 1);\n cameraL.viewport.set(0, 0, renderWidth / 2, renderHeight);\n cameraR.viewport.set(renderWidth / 2, 0, renderWidth / 2, renderHeight);\n animation.start();\n scope.dispatchEvent({\n type: 'sessionstart'\n });\n } else {\n if (scope.enabled) {\n renderer.setDrawingBufferSize(currentSize.width, currentSize.height, currentPixelRatio);\n }\n\n animation.stop();\n scope.dispatchEvent({\n type: 'sessionend'\n });\n }\n } //\n\n\n var triggers = [];\n\n function findGamepad(id) {\n var gamepads = navigator.getGamepads && navigator.getGamepads();\n\n for (var i = 0, l = gamepads.length; i < l; i++) {\n var gamepad = gamepads[i];\n\n if (gamepad && (gamepad.id === 'Daydream Controller' || gamepad.id === 'Gear VR Controller' || gamepad.id === 'Oculus Go Controller' || gamepad.id === 'OpenVR Gamepad' || gamepad.id.startsWith('Oculus Touch') || gamepad.id.startsWith('HTC Vive Focus') || gamepad.id.startsWith('Spatial Controller'))) {\n var hand = gamepad.hand;\n if (id === 0 && (hand === '' || hand === 'right')) return gamepad;\n if (id === 1 && hand === 'left') return gamepad;\n }\n }\n }\n\n function updateControllers() {\n for (var i = 0; i < controllers.length; i++) {\n var controller = controllers[i];\n var gamepad = findGamepad(i);\n\n if (gamepad !== undefined && gamepad.pose !== undefined) {\n if (gamepad.pose === null) return; // Pose\n\n var pose = gamepad.pose;\n if (pose.hasPosition === false) controller.position.set(0.2, -0.6, -0.05);\n if (pose.position !== null) controller.position.fromArray(pose.position);\n if (pose.orientation !== null) controller.quaternion.fromArray(pose.orientation);\n controller.matrix.compose(controller.position, controller.quaternion, controller.scale);\n controller.matrix.premultiply(standingMatrix);\n controller.matrix.decompose(controller.position, controller.quaternion, controller.scale);\n controller.matrixWorldNeedsUpdate = true;\n controller.visible = true; // Trigger\n\n var buttonId = gamepad.id === 'Daydream Controller' ? 0 : 1;\n if (triggers[i] === undefined) triggers[i] = false;\n\n if (triggers[i] !== gamepad.buttons[buttonId].pressed) {\n triggers[i] = gamepad.buttons[buttonId].pressed;\n\n if (triggers[i] === true) {\n controller.dispatchEvent({\n type: 'selectstart'\n });\n } else {\n controller.dispatchEvent({\n type: 'selectend'\n });\n controller.dispatchEvent({\n type: 'select'\n });\n }\n }\n } else {\n controller.visible = false;\n }\n }\n }\n\n function updateViewportFromBounds(viewport, bounds) {\n if (bounds !== null && bounds.length === 4) {\n viewport.set(bounds[0] * renderWidth, bounds[1] * renderHeight, bounds[2] * renderWidth, bounds[3] * renderHeight);\n }\n } //\n\n\n this.enabled = false;\n\n this.getController = function (id) {\n var controller = controllers[id];\n\n if (controller === undefined) {\n controller = new Group();\n controller.matrixAutoUpdate = false;\n controller.visible = false;\n controllers[id] = controller;\n }\n\n return controller;\n };\n\n this.getDevice = function () {\n return device;\n };\n\n this.setDevice = function (value) {\n if (value !== undefined) device = value;\n animation.setContext(value);\n };\n\n this.setFramebufferScaleFactor = function (value) {\n framebufferScaleFactor = value;\n };\n\n this.setReferenceSpaceType = function (value) {\n referenceSpaceType = value;\n };\n\n this.setPoseTarget = function (object) {\n if (object !== undefined) poseTarget = object;\n };\n\n this.getCamera = function (camera) {\n var userHeight = referenceSpaceType === 'local-floor' ? 1.6 : 0;\n\n if (isPresenting() === false) {\n camera.position.set(0, userHeight, 0);\n camera.rotation.set(0, 0, 0);\n return camera;\n }\n\n device.depthNear = camera.near;\n device.depthFar = camera.far;\n device.getFrameData(frameData); //\n\n if (referenceSpaceType === 'local-floor') {\n var stageParameters = device.stageParameters;\n\n if (stageParameters) {\n standingMatrix.fromArray(stageParameters.sittingToStandingTransform);\n } else {\n standingMatrix.makeTranslation(0, userHeight, 0);\n }\n }\n\n var pose = frameData.pose;\n var poseObject = poseTarget !== null ? poseTarget : camera; // We want to manipulate poseObject by its position and quaternion components since users may rely on them.\n\n poseObject.matrix.copy(standingMatrix);\n poseObject.matrix.decompose(poseObject.position, poseObject.quaternion, poseObject.scale);\n\n if (pose.orientation !== null) {\n tempQuaternion.fromArray(pose.orientation);\n poseObject.quaternion.multiply(tempQuaternion);\n }\n\n if (pose.position !== null) {\n tempQuaternion.setFromRotationMatrix(standingMatrix);\n tempPosition.fromArray(pose.position);\n tempPosition.applyQuaternion(tempQuaternion);\n poseObject.position.add(tempPosition);\n }\n\n poseObject.updateMatrixWorld(); //\n\n cameraL.near = camera.near;\n cameraR.near = camera.near;\n cameraL.far = camera.far;\n cameraR.far = camera.far;\n cameraL.matrixWorldInverse.fromArray(frameData.leftViewMatrix);\n cameraR.matrixWorldInverse.fromArray(frameData.rightViewMatrix); // TODO (mrdoob) Double check this code\n\n standingMatrixInverse.getInverse(standingMatrix);\n\n if (referenceSpaceType === 'local-floor') {\n cameraL.matrixWorldInverse.multiply(standingMatrixInverse);\n cameraR.matrixWorldInverse.multiply(standingMatrixInverse);\n }\n\n var parent = poseObject.parent;\n\n if (parent !== null) {\n matrixWorldInverse.getInverse(parent.matrixWorld);\n cameraL.matrixWorldInverse.multiply(matrixWorldInverse);\n cameraR.matrixWorldInverse.multiply(matrixWorldInverse);\n } // envMap and Mirror needs camera.matrixWorld\n\n\n cameraL.matrixWorld.getInverse(cameraL.matrixWorldInverse);\n cameraR.matrixWorld.getInverse(cameraR.matrixWorldInverse);\n cameraL.projectionMatrix.fromArray(frameData.leftProjectionMatrix);\n cameraR.projectionMatrix.fromArray(frameData.rightProjectionMatrix);\n setProjectionFromUnion(cameraVR, cameraL, cameraR); //\n\n var layers = device.getLayers();\n\n if (layers.length) {\n var layer = layers[0];\n updateViewportFromBounds(cameraL.viewport, layer.leftBounds);\n updateViewportFromBounds(cameraR.viewport, layer.rightBounds);\n }\n\n updateControllers();\n return cameraVR;\n };\n\n this.getStandingMatrix = function () {\n return standingMatrix;\n };\n\n this.isPresenting = isPresenting; // Animation Loop\n\n var animation = new WebGLAnimation();\n\n this.setAnimationLoop = function (callback) {\n animation.setAnimationLoop(callback);\n if (isPresenting()) animation.start();\n };\n\n this.submitFrame = function () {\n if (isPresenting()) device.submitFrame();\n };\n\n this.dispose = function () {\n if (typeof window !== 'undefined') {\n window.removeEventListener('vrdisplaypresentchange', onVRDisplayPresentChange);\n }\n }; // DEPRECATED\n\n\n this.setFrameOfReferenceType = function () {\n console.warn('THREE.WebVRManager: setFrameOfReferenceType() has been deprecated.');\n };\n}\n\nObject.assign(WebVRManager.prototype, EventDispatcher.prototype);\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction WebXRManager(renderer, gl) {\n var scope = this;\n var session = null; // var framebufferScaleFactor = 1.0;\n\n var referenceSpace = null;\n var referenceSpaceType = 'local-floor';\n var pose = null;\n var controllers = [];\n var sortedInputSources = [];\n\n function isPresenting() {\n return session !== null && referenceSpace !== null;\n } //\n\n\n var cameraL = new PerspectiveCamera();\n cameraL.layers.enable(1);\n cameraL.viewport = new Vector4();\n var cameraR = new PerspectiveCamera();\n cameraR.layers.enable(2);\n cameraR.viewport = new Vector4();\n var cameraVR = new ArrayCamera([cameraL, cameraR]);\n cameraVR.layers.enable(1);\n cameraVR.layers.enable(2); //\n\n this.enabled = false;\n\n this.getController = function (id) {\n var controller = controllers[id];\n\n if (controller === undefined) {\n controller = new Group();\n controller.matrixAutoUpdate = false;\n controller.visible = false;\n controllers[id] = controller;\n }\n\n return controller;\n }; //\n\n\n function onSessionEvent(event) {\n for (var i = 0; i < controllers.length; i++) {\n if (sortedInputSources[i] === event.inputSource) {\n controllers[i].dispatchEvent({\n type: event.type\n });\n }\n }\n }\n\n function onSessionEnd() {\n renderer.setFramebuffer(null);\n renderer.setRenderTarget(renderer.getRenderTarget()); // Hack #15830\n\n animation.stop();\n scope.dispatchEvent({\n type: 'sessionend'\n });\n }\n\n function onRequestReferenceSpace(value) {\n referenceSpace = value;\n animation.setContext(session);\n animation.start();\n scope.dispatchEvent({\n type: 'sessionstart'\n });\n }\n\n this.setFramebufferScaleFactor = function ()\n /* value */\n {// framebufferScaleFactor = value;\n };\n\n this.setReferenceSpaceType = function (value) {\n referenceSpaceType = value;\n };\n\n this.getSession = function () {\n return session;\n };\n\n this.setSession = function (value) {\n session = value;\n\n if (session !== null) {\n session.addEventListener('select', onSessionEvent);\n session.addEventListener('selectstart', onSessionEvent);\n session.addEventListener('selectend', onSessionEvent);\n session.addEventListener('end', onSessionEnd); // eslint-disable-next-line no-undef\n\n session.updateRenderState({\n baseLayer: new XRWebGLLayer(session, gl)\n });\n session.requestReferenceSpace(referenceSpaceType).then(onRequestReferenceSpace); //\n\n session.addEventListener('inputsourceschange', updateInputSources);\n updateInputSources();\n }\n };\n\n function updateInputSources() {\n for (var i = 0; i < controllers.length; i++) {\n sortedInputSources[i] = findInputSource(i);\n }\n }\n\n function findInputSource(id) {\n var inputSources = session.inputSources;\n\n for (var i = 0; i < inputSources.length; i++) {\n var inputSource = inputSources[i];\n var handedness = inputSource.handedness;\n if (id === 0 && (handedness === 'none' || handedness === 'right')) return inputSource;\n if (id === 1 && handedness === 'left') return inputSource;\n }\n } //\n\n\n function updateCamera(camera, parent) {\n if (parent === null) {\n camera.matrixWorld.copy(camera.matrix);\n } else {\n camera.matrixWorld.multiplyMatrices(parent.matrixWorld, camera.matrix);\n }\n\n camera.matrixWorldInverse.getInverse(camera.matrixWorld);\n }\n\n this.getCamera = function (camera) {\n if (isPresenting()) {\n var parent = camera.parent;\n var cameras = cameraVR.cameras;\n updateCamera(cameraVR, parent);\n\n for (var i = 0; i < cameras.length; i++) {\n updateCamera(cameras[i], parent);\n } // update camera and its children\n\n\n camera.matrixWorld.copy(cameraVR.matrixWorld);\n var children = camera.children;\n\n for (var i = 0, l = children.length; i < l; i++) {\n children[i].updateMatrixWorld(true);\n }\n\n setProjectionFromUnion(cameraVR, cameraL, cameraR);\n return cameraVR;\n }\n\n return camera;\n };\n\n this.isPresenting = isPresenting; // Animation Loop\n\n var onAnimationFrameCallback = null;\n\n function onAnimationFrame(time, frame) {\n pose = frame.getViewerPose(referenceSpace);\n\n if (pose !== null) {\n var views = pose.views;\n var baseLayer = session.renderState.baseLayer;\n renderer.setFramebuffer(baseLayer.framebuffer);\n\n for (var i = 0; i < views.length; i++) {\n var view = views[i];\n var viewport = baseLayer.getViewport(view);\n var viewMatrix = view.transform.inverse.matrix;\n var camera = cameraVR.cameras[i];\n camera.matrix.fromArray(viewMatrix).getInverse(camera.matrix);\n camera.projectionMatrix.fromArray(view.projectionMatrix);\n camera.viewport.set(viewport.x, viewport.y, viewport.width, viewport.height);\n\n if (i === 0) {\n cameraVR.matrix.copy(camera.matrix);\n }\n }\n } //\n\n\n for (var i = 0; i < controllers.length; i++) {\n var controller = controllers[i];\n var inputSource = sortedInputSources[i];\n\n if (inputSource) {\n var inputPose = frame.getPose(inputSource.targetRaySpace, referenceSpace);\n\n if (inputPose !== null) {\n controller.matrix.fromArray(inputPose.transform.matrix);\n controller.matrix.decompose(controller.position, controller.rotation, controller.scale);\n controller.visible = true;\n continue;\n }\n }\n\n controller.visible = false;\n }\n\n if (onAnimationFrameCallback) onAnimationFrameCallback(time);\n }\n\n var animation = new WebGLAnimation();\n animation.setAnimationLoop(onAnimationFrame);\n\n this.setAnimationLoop = function (callback) {\n onAnimationFrameCallback = callback;\n };\n\n this.dispose = function () {}; // DEPRECATED\n\n\n this.getStandingMatrix = function () {\n console.warn('THREE.WebXRManager: getStandingMatrix() is no longer needed.');\n return new Matrix4();\n };\n\n this.getDevice = function () {\n console.warn('THREE.WebXRManager: getDevice() has been deprecated.');\n };\n\n this.setDevice = function () {\n console.warn('THREE.WebXRManager: setDevice() has been deprecated.');\n };\n\n this.setFrameOfReferenceType = function () {\n console.warn('THREE.WebXRManager: setFrameOfReferenceType() has been deprecated.');\n };\n\n this.submitFrame = function () {};\n}\n\nObject.assign(WebXRManager.prototype, EventDispatcher.prototype);\n/**\n * @author supereggbert / http://www.paulbrunt.co.uk/\n * @author mrdoob / http://mrdoob.com/\n * @author alteredq / http://alteredqualia.com/\n * @author szimek / https://github.com/szimek/\n * @author tschw\n */\n\nfunction WebGLRenderer(parameters) {\n parameters = parameters || {};\n\n var _canvas = parameters.canvas !== undefined ? parameters.canvas : document.createElementNS('http://www.w3.org/1999/xhtml', 'canvas'),\n _context = parameters.context !== undefined ? parameters.context : null,\n _alpha = parameters.alpha !== undefined ? parameters.alpha : false,\n _depth = parameters.depth !== undefined ? parameters.depth : true,\n _stencil = parameters.stencil !== undefined ? parameters.stencil : true,\n _antialias = parameters.antialias !== undefined ? parameters.antialias : false,\n _premultipliedAlpha = parameters.premultipliedAlpha !== undefined ? parameters.premultipliedAlpha : true,\n _preserveDrawingBuffer = parameters.preserveDrawingBuffer !== undefined ? parameters.preserveDrawingBuffer : false,\n _powerPreference = parameters.powerPreference !== undefined ? parameters.powerPreference : 'default',\n _failIfMajorPerformanceCaveat = parameters.failIfMajorPerformanceCaveat !== undefined ? parameters.failIfMajorPerformanceCaveat : false;\n\n var currentRenderList = null;\n var currentRenderState = null; // public properties\n\n this.domElement = _canvas; // Debug configuration container\n\n this.debug = {\n /**\n * Enables error checking and reporting when shader programs are being compiled\n * @type {boolean}\n */\n checkShaderErrors: true\n }; // clearing\n\n this.autoClear = true;\n this.autoClearColor = true;\n this.autoClearDepth = true;\n this.autoClearStencil = true; // scene graph\n\n this.sortObjects = true; // user-defined clipping\n\n this.clippingPlanes = [];\n this.localClippingEnabled = false; // physically based shading\n\n this.gammaFactor = 2.0; // for backwards compatibility\n\n this.gammaInput = false;\n this.gammaOutput = false; // physical lights\n\n this.physicallyCorrectLights = false; // tone mapping\n\n this.toneMapping = LinearToneMapping;\n this.toneMappingExposure = 1.0;\n this.toneMappingWhitePoint = 1.0; // morphs\n\n this.maxMorphTargets = 8;\n this.maxMorphNormals = 4; // internal properties\n\n var _this = this,\n _isContextLost = false,\n // internal state cache\n _framebuffer = null,\n _currentActiveCubeFace = 0,\n _currentActiveMipmapLevel = 0,\n _currentRenderTarget = null,\n _currentFramebuffer = null,\n _currentMaterialId = -1,\n // geometry and program caching\n _currentGeometryProgram = {\n geometry: null,\n program: null,\n wireframe: false\n },\n _currentCamera = null,\n _currentArrayCamera = null,\n _currentViewport = new Vector4(),\n _currentScissor = new Vector4(),\n _currentScissorTest = null,\n //\n _width = _canvas.width,\n _height = _canvas.height,\n _pixelRatio = 1,\n _viewport = new Vector4(0, 0, _width, _height),\n _scissor = new Vector4(0, 0, _width, _height),\n _scissorTest = false,\n // frustum\n _frustum = new Frustum(),\n // clipping\n _clipping = new WebGLClipping(),\n _clippingEnabled = false,\n _localClippingEnabled = false,\n // camera matrices cache\n _projScreenMatrix = new Matrix4(),\n _vector3 = new Vector3();\n\n function getTargetPixelRatio() {\n return _currentRenderTarget === null ? _pixelRatio : 1;\n } // initialize\n\n\n var _gl;\n\n try {\n var contextAttributes = {\n alpha: _alpha,\n depth: _depth,\n stencil: _stencil,\n antialias: _antialias,\n premultipliedAlpha: _premultipliedAlpha,\n preserveDrawingBuffer: _preserveDrawingBuffer,\n powerPreference: _powerPreference,\n failIfMajorPerformanceCaveat: _failIfMajorPerformanceCaveat,\n xrCompatible: true\n }; // event listeners must be registered before WebGL context is created, see #12753\n\n _canvas.addEventListener('webglcontextlost', onContextLost, false);\n\n _canvas.addEventListener('webglcontextrestored', onContextRestore, false);\n\n _gl = _context || _canvas.getContext('webgl', contextAttributes) || _canvas.getContext('experimental-webgl', contextAttributes);\n\n if (_gl === null) {\n if (_canvas.getContext('webgl') !== null) {\n throw new Error('Error creating WebGL context with your selected attributes.');\n } else {\n throw new Error('Error creating WebGL context.');\n }\n } // Some experimental-webgl implementations do not have getShaderPrecisionFormat\n\n\n if (_gl.getShaderPrecisionFormat === undefined) {\n _gl.getShaderPrecisionFormat = function () {\n return {\n 'rangeMin': 1,\n 'rangeMax': 1,\n 'precision': 1\n };\n };\n }\n } catch (error) {\n console.error('THREE.WebGLRenderer: ' + error.message);\n throw error;\n }\n\n var extensions, capabilities, state, info;\n var properties, textures, attributes, geometries, objects;\n var programCache, renderLists, renderStates;\n var background, morphtargets, bufferRenderer, indexedBufferRenderer;\n var utils;\n\n function initGLContext() {\n extensions = new WebGLExtensions(_gl);\n capabilities = new WebGLCapabilities(_gl, extensions, parameters);\n\n if (capabilities.isWebGL2 === false) {\n extensions.get('WEBGL_depth_texture');\n extensions.get('OES_texture_float');\n extensions.get('OES_texture_half_float');\n extensions.get('OES_texture_half_float_linear');\n extensions.get('OES_standard_derivatives');\n extensions.get('OES_element_index_uint');\n extensions.get('ANGLE_instanced_arrays');\n }\n\n extensions.get('OES_texture_float_linear');\n utils = new WebGLUtils(_gl, extensions, capabilities);\n state = new WebGLState(_gl, extensions, capabilities);\n state.scissor(_currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).floor());\n state.viewport(_currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).floor());\n info = new WebGLInfo(_gl);\n properties = new WebGLProperties();\n textures = new WebGLTextures(_gl, extensions, state, properties, capabilities, utils, info);\n attributes = new WebGLAttributes(_gl);\n geometries = new WebGLGeometries(_gl, attributes, info);\n objects = new WebGLObjects(_gl, geometries, attributes, info);\n morphtargets = new WebGLMorphtargets(_gl);\n programCache = new WebGLPrograms(_this, extensions, capabilities);\n renderLists = new WebGLRenderLists();\n renderStates = new WebGLRenderStates();\n background = new WebGLBackground(_this, state, objects, _premultipliedAlpha);\n bufferRenderer = new WebGLBufferRenderer(_gl, extensions, info, capabilities);\n indexedBufferRenderer = new WebGLIndexedBufferRenderer(_gl, extensions, info, capabilities);\n info.programs = programCache.programs;\n _this.capabilities = capabilities;\n _this.extensions = extensions;\n _this.properties = properties;\n _this.renderLists = renderLists;\n _this.state = state;\n _this.info = info;\n }\n\n initGLContext(); // vr\n\n var vr = typeof navigator !== 'undefined' && 'xr' in navigator && 'isSessionSupported' in navigator.xr ? new WebXRManager(_this, _gl) : new WebVRManager(_this);\n this.vr = vr; // Multiview\n\n var multiview = new WebGLMultiview(_this, _gl); // shadow map\n\n var shadowMap = new WebGLShadowMap(_this, objects, capabilities.maxTextureSize);\n this.shadowMap = shadowMap; // API\n\n this.getContext = function () {\n return _gl;\n };\n\n this.getContextAttributes = function () {\n return _gl.getContextAttributes();\n };\n\n this.forceContextLoss = function () {\n var extension = extensions.get('WEBGL_lose_context');\n if (extension) extension.loseContext();\n };\n\n this.forceContextRestore = function () {\n var extension = extensions.get('WEBGL_lose_context');\n if (extension) extension.restoreContext();\n };\n\n this.getPixelRatio = function () {\n return _pixelRatio;\n };\n\n this.setPixelRatio = function (value) {\n if (value === undefined) return;\n _pixelRatio = value;\n this.setSize(_width, _height, false);\n };\n\n this.getSize = function (target) {\n if (target === undefined) {\n console.warn('WebGLRenderer: .getsize() now requires a Vector2 as an argument');\n target = new Vector2();\n }\n\n return target.set(_width, _height);\n };\n\n this.setSize = function (width, height, updateStyle) {\n if (vr.isPresenting()) {\n console.warn('THREE.WebGLRenderer: Can\\'t change size while VR device is presenting.');\n return;\n }\n\n _width = width;\n _height = height;\n _canvas.width = Math.floor(width * _pixelRatio);\n _canvas.height = Math.floor(height * _pixelRatio);\n\n if (updateStyle !== false) {\n _canvas.style.width = width + 'px';\n _canvas.style.height = height + 'px';\n }\n\n this.setViewport(0, 0, width, height);\n };\n\n this.getDrawingBufferSize = function (target) {\n if (target === undefined) {\n console.warn('WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument');\n target = new Vector2();\n }\n\n return target.set(_width * _pixelRatio, _height * _pixelRatio).floor();\n };\n\n this.setDrawingBufferSize = function (width, height, pixelRatio) {\n _width = width;\n _height = height;\n _pixelRatio = pixelRatio;\n _canvas.width = Math.floor(width * pixelRatio);\n _canvas.height = Math.floor(height * pixelRatio);\n this.setViewport(0, 0, width, height);\n };\n\n this.getCurrentViewport = function (target) {\n if (target === undefined) {\n console.warn('WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument');\n target = new Vector4();\n }\n\n return target.copy(_currentViewport);\n };\n\n this.getViewport = function (target) {\n return target.copy(_viewport);\n };\n\n this.setViewport = function (x, y, width, height) {\n if (x.isVector4) {\n _viewport.set(x.x, x.y, x.z, x.w);\n } else {\n _viewport.set(x, y, width, height);\n }\n\n state.viewport(_currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).floor());\n };\n\n this.getScissor = function (target) {\n return target.copy(_scissor);\n };\n\n this.setScissor = function (x, y, width, height) {\n if (x.isVector4) {\n _scissor.set(x.x, x.y, x.z, x.w);\n } else {\n _scissor.set(x, y, width, height);\n }\n\n state.scissor(_currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).floor());\n };\n\n this.getScissorTest = function () {\n return _scissorTest;\n };\n\n this.setScissorTest = function (boolean) {\n state.setScissorTest(_scissorTest = boolean);\n }; // Clearing\n\n\n this.getClearColor = function () {\n return background.getClearColor();\n };\n\n this.setClearColor = function () {\n background.setClearColor.apply(background, arguments);\n };\n\n this.getClearAlpha = function () {\n return background.getClearAlpha();\n };\n\n this.setClearAlpha = function () {\n background.setClearAlpha.apply(background, arguments);\n };\n\n this.clear = function (color, depth, stencil) {\n var bits = 0;\n if (color === undefined || color) bits |= 16384;\n if (depth === undefined || depth) bits |= 256;\n if (stencil === undefined || stencil) bits |= 1024;\n\n _gl.clear(bits);\n };\n\n this.clearColor = function () {\n this.clear(true, false, false);\n };\n\n this.clearDepth = function () {\n this.clear(false, true, false);\n };\n\n this.clearStencil = function () {\n this.clear(false, false, true);\n }; //\n\n\n this.dispose = function () {\n _canvas.removeEventListener('webglcontextlost', onContextLost, false);\n\n _canvas.removeEventListener('webglcontextrestored', onContextRestore, false);\n\n renderLists.dispose();\n renderStates.dispose();\n properties.dispose();\n objects.dispose();\n vr.dispose();\n animation.stop();\n }; // Events\n\n\n function onContextLost(event) {\n event.preventDefault();\n console.log('THREE.WebGLRenderer: Context Lost.');\n _isContextLost = true;\n }\n\n function onContextRestore()\n /* event */\n {\n console.log('THREE.WebGLRenderer: Context Restored.');\n _isContextLost = false;\n initGLContext();\n }\n\n function onMaterialDispose(event) {\n var material = event.target;\n material.removeEventListener('dispose', onMaterialDispose);\n deallocateMaterial(material);\n } // Buffer deallocation\n\n\n function deallocateMaterial(material) {\n releaseMaterialProgramReference(material);\n properties.remove(material);\n }\n\n function releaseMaterialProgramReference(material) {\n var programInfo = properties.get(material).program;\n material.program = undefined;\n\n if (programInfo !== undefined) {\n programCache.releaseProgram(programInfo);\n }\n } // Buffer rendering\n\n\n function renderObjectImmediate(object, program) {\n object.render(function (object) {\n _this.renderBufferImmediate(object, program);\n });\n }\n\n this.renderBufferImmediate = function (object, program) {\n state.initAttributes();\n var buffers = properties.get(object);\n if (object.hasPositions && !buffers.position) buffers.position = _gl.createBuffer();\n if (object.hasNormals && !buffers.normal) buffers.normal = _gl.createBuffer();\n if (object.hasUvs && !buffers.uv) buffers.uv = _gl.createBuffer();\n if (object.hasColors && !buffers.color) buffers.color = _gl.createBuffer();\n var programAttributes = program.getAttributes();\n\n if (object.hasPositions) {\n _gl.bindBuffer(34962, buffers.position);\n\n _gl.bufferData(34962, object.positionArray, 35048);\n\n state.enableAttribute(programAttributes.position);\n\n _gl.vertexAttribPointer(programAttributes.position, 3, 5126, false, 0, 0);\n }\n\n if (object.hasNormals) {\n _gl.bindBuffer(34962, buffers.normal);\n\n _gl.bufferData(34962, object.normalArray, 35048);\n\n state.enableAttribute(programAttributes.normal);\n\n _gl.vertexAttribPointer(programAttributes.normal, 3, 5126, false, 0, 0);\n }\n\n if (object.hasUvs) {\n _gl.bindBuffer(34962, buffers.uv);\n\n _gl.bufferData(34962, object.uvArray, 35048);\n\n state.enableAttribute(programAttributes.uv);\n\n _gl.vertexAttribPointer(programAttributes.uv, 2, 5126, false, 0, 0);\n }\n\n if (object.hasColors) {\n _gl.bindBuffer(34962, buffers.color);\n\n _gl.bufferData(34962, object.colorArray, 35048);\n\n state.enableAttribute(programAttributes.color);\n\n _gl.vertexAttribPointer(programAttributes.color, 3, 5126, false, 0, 0);\n }\n\n state.disableUnusedAttributes();\n\n _gl.drawArrays(4, 0, object.count);\n\n object.count = 0;\n };\n\n this.renderBufferDirect = function (camera, fog, geometry, material, object, group) {\n var frontFaceCW = object.isMesh && object.matrixWorld.determinant() < 0;\n state.setMaterial(material, frontFaceCW);\n var program = setProgram(camera, fog, material, object);\n var updateBuffers = false;\n\n if (_currentGeometryProgram.geometry !== geometry.id || _currentGeometryProgram.program !== program.id || _currentGeometryProgram.wireframe !== (material.wireframe === true)) {\n _currentGeometryProgram.geometry = geometry.id;\n _currentGeometryProgram.program = program.id;\n _currentGeometryProgram.wireframe = material.wireframe === true;\n updateBuffers = true;\n }\n\n if (object.morphTargetInfluences) {\n morphtargets.update(object, geometry, material, program);\n updateBuffers = true;\n } //\n\n\n var index = geometry.index;\n var position = geometry.attributes.position;\n var rangeFactor = 1;\n\n if (material.wireframe === true) {\n index = geometries.getWireframeAttribute(geometry);\n rangeFactor = 2;\n }\n\n var attribute;\n var renderer = bufferRenderer;\n\n if (index !== null) {\n attribute = attributes.get(index);\n renderer = indexedBufferRenderer;\n renderer.setIndex(attribute);\n }\n\n if (updateBuffers) {\n setupVertexAttributes(object, geometry, material, program);\n\n if (index !== null) {\n _gl.bindBuffer(34963, attribute.buffer);\n }\n } //\n\n\n var dataCount = Infinity;\n\n if (index !== null) {\n dataCount = index.count;\n } else if (position !== undefined) {\n dataCount = position.count;\n }\n\n var rangeStart = geometry.drawRange.start * rangeFactor;\n var rangeCount = geometry.drawRange.count * rangeFactor;\n var groupStart = group !== null ? group.start * rangeFactor : 0;\n var groupCount = group !== null ? group.count * rangeFactor : Infinity;\n var drawStart = Math.max(rangeStart, groupStart);\n var drawEnd = Math.min(dataCount, rangeStart + rangeCount, groupStart + groupCount) - 1;\n var drawCount = Math.max(0, drawEnd - drawStart + 1);\n if (drawCount === 0) return; //\n\n if (object.isMesh) {\n if (material.wireframe === true) {\n state.setLineWidth(material.wireframeLinewidth * getTargetPixelRatio());\n renderer.setMode(1);\n } else {\n switch (object.drawMode) {\n case TrianglesDrawMode:\n renderer.setMode(4);\n break;\n\n case TriangleStripDrawMode:\n renderer.setMode(5);\n break;\n\n case TriangleFanDrawMode:\n renderer.setMode(6);\n break;\n }\n }\n } else if (object.isLine) {\n var lineWidth = material.linewidth;\n if (lineWidth === undefined) lineWidth = 1; // Not using Line*Material\n\n state.setLineWidth(lineWidth * getTargetPixelRatio());\n\n if (object.isLineSegments) {\n renderer.setMode(1);\n } else if (object.isLineLoop) {\n renderer.setMode(2);\n } else {\n renderer.setMode(3);\n }\n } else if (object.isPoints) {\n renderer.setMode(0);\n } else if (object.isSprite) {\n renderer.setMode(4);\n }\n\n if (object.isInstancedMesh) {\n renderer.renderInstances(geometry, drawStart, drawCount, object.count);\n } else if (geometry.isInstancedBufferGeometry) {\n renderer.renderInstances(geometry, drawStart, drawCount, geometry.maxInstancedCount);\n } else {\n renderer.render(drawStart, drawCount);\n }\n };\n\n function setupVertexAttributes(object, geometry, material, program) {\n if (capabilities.isWebGL2 === false && (object.isInstancedMesh || geometry.isInstancedBufferGeometry)) {\n if (extensions.get('ANGLE_instanced_arrays') === null) return;\n }\n\n state.initAttributes();\n var geometryAttributes = geometry.attributes;\n var programAttributes = program.getAttributes();\n var materialDefaultAttributeValues = material.defaultAttributeValues;\n\n for (var name in programAttributes) {\n var programAttribute = programAttributes[name];\n\n if (programAttribute >= 0) {\n var geometryAttribute = geometryAttributes[name];\n\n if (geometryAttribute !== undefined) {\n var normalized = geometryAttribute.normalized;\n var size = geometryAttribute.itemSize;\n var attribute = attributes.get(geometryAttribute); // TODO Attribute may not be available on context restore\n\n if (attribute === undefined) continue;\n var buffer = attribute.buffer;\n var type = attribute.type;\n var bytesPerElement = attribute.bytesPerElement;\n\n if (geometryAttribute.isInterleavedBufferAttribute) {\n var data = geometryAttribute.data;\n var stride = data.stride;\n var offset = geometryAttribute.offset;\n\n if (data && data.isInstancedInterleavedBuffer) {\n state.enableAttributeAndDivisor(programAttribute, data.meshPerAttribute);\n\n if (geometry.maxInstancedCount === undefined) {\n geometry.maxInstancedCount = data.meshPerAttribute * data.count;\n }\n } else {\n state.enableAttribute(programAttribute);\n }\n\n _gl.bindBuffer(34962, buffer);\n\n _gl.vertexAttribPointer(programAttribute, size, type, normalized, stride * bytesPerElement, offset * bytesPerElement);\n } else {\n if (geometryAttribute.isInstancedBufferAttribute) {\n state.enableAttributeAndDivisor(programAttribute, geometryAttribute.meshPerAttribute);\n\n if (geometry.maxInstancedCount === undefined) {\n geometry.maxInstancedCount = geometryAttribute.meshPerAttribute * geometryAttribute.count;\n }\n } else {\n state.enableAttribute(programAttribute);\n }\n\n _gl.bindBuffer(34962, buffer);\n\n _gl.vertexAttribPointer(programAttribute, size, type, normalized, 0, 0);\n }\n } else if (name === 'instanceMatrix') {\n var attribute = attributes.get(object.instanceMatrix); // TODO Attribute may not be available on context restore\n\n if (attribute === undefined) continue;\n var buffer = attribute.buffer;\n var type = attribute.type;\n state.enableAttributeAndDivisor(programAttribute + 0, 1);\n state.enableAttributeAndDivisor(programAttribute + 1, 1);\n state.enableAttributeAndDivisor(programAttribute + 2, 1);\n state.enableAttributeAndDivisor(programAttribute + 3, 1);\n\n _gl.bindBuffer(34962, buffer);\n\n _gl.vertexAttribPointer(programAttribute + 0, 4, type, false, 64, 0);\n\n _gl.vertexAttribPointer(programAttribute + 1, 4, type, false, 64, 16);\n\n _gl.vertexAttribPointer(programAttribute + 2, 4, type, false, 64, 32);\n\n _gl.vertexAttribPointer(programAttribute + 3, 4, type, false, 64, 48);\n } else if (materialDefaultAttributeValues !== undefined) {\n var value = materialDefaultAttributeValues[name];\n\n if (value !== undefined) {\n switch (value.length) {\n case 2:\n _gl.vertexAttrib2fv(programAttribute, value);\n\n break;\n\n case 3:\n _gl.vertexAttrib3fv(programAttribute, value);\n\n break;\n\n case 4:\n _gl.vertexAttrib4fv(programAttribute, value);\n\n break;\n\n default:\n _gl.vertexAttrib1fv(programAttribute, value);\n\n }\n }\n }\n }\n }\n\n state.disableUnusedAttributes();\n } // Compile\n\n\n this.compile = function (scene, camera) {\n currentRenderState = renderStates.get(scene, camera);\n currentRenderState.init();\n scene.traverse(function (object) {\n if (object.isLight) {\n currentRenderState.pushLight(object);\n\n if (object.castShadow) {\n currentRenderState.pushShadow(object);\n }\n }\n });\n currentRenderState.setupLights(camera);\n scene.traverse(function (object) {\n if (object.material) {\n if (Array.isArray(object.material)) {\n for (var i = 0; i < object.material.length; i++) {\n initMaterial(object.material[i], scene.fog, object);\n }\n } else {\n initMaterial(object.material, scene.fog, object);\n }\n }\n });\n }; // Animation Loop\n\n\n var onAnimationFrameCallback = null;\n\n function onAnimationFrame(time) {\n if (vr.isPresenting()) return;\n if (onAnimationFrameCallback) onAnimationFrameCallback(time);\n }\n\n var animation = new WebGLAnimation();\n animation.setAnimationLoop(onAnimationFrame);\n if (typeof window !== 'undefined') animation.setContext(window);\n\n this.setAnimationLoop = function (callback) {\n onAnimationFrameCallback = callback;\n vr.setAnimationLoop(callback);\n animation.start();\n }; // Rendering\n\n\n this.render = function (scene, camera) {\n var renderTarget, forceClear;\n\n if (arguments[2] !== undefined) {\n console.warn('THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead.');\n renderTarget = arguments[2];\n }\n\n if (arguments[3] !== undefined) {\n console.warn('THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead.');\n forceClear = arguments[3];\n }\n\n if (!(camera && camera.isCamera)) {\n console.error('THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.');\n return;\n }\n\n if (_isContextLost) return; // reset caching for this frame\n\n _currentGeometryProgram.geometry = null;\n _currentGeometryProgram.program = null;\n _currentGeometryProgram.wireframe = false;\n _currentMaterialId = -1;\n _currentCamera = null; // update scene graph\n\n if (scene.autoUpdate === true) scene.updateMatrixWorld(); // update camera matrices and frustum\n\n if (camera.parent === null) camera.updateMatrixWorld();\n\n if (vr.enabled) {\n camera = vr.getCamera(camera);\n } //\n\n\n currentRenderState = renderStates.get(scene, camera);\n currentRenderState.init();\n scene.onBeforeRender(_this, scene, camera, renderTarget || _currentRenderTarget);\n\n _projScreenMatrix.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse);\n\n _frustum.setFromMatrix(_projScreenMatrix);\n\n _localClippingEnabled = this.localClippingEnabled;\n _clippingEnabled = _clipping.init(this.clippingPlanes, _localClippingEnabled, camera);\n currentRenderList = renderLists.get(scene, camera);\n currentRenderList.init();\n projectObject(scene, camera, 0, _this.sortObjects);\n\n if (_this.sortObjects === true) {\n currentRenderList.sort();\n } //\n\n\n if (_clippingEnabled) _clipping.beginShadows();\n var shadowsArray = currentRenderState.state.shadowsArray;\n shadowMap.render(shadowsArray, scene, camera);\n currentRenderState.setupLights(camera);\n if (_clippingEnabled) _clipping.endShadows(); //\n\n if (this.info.autoReset) this.info.reset();\n\n if (renderTarget !== undefined) {\n this.setRenderTarget(renderTarget);\n }\n\n if (vr.enabled && multiview.isAvailable()) {\n multiview.attachCamera(camera);\n } //\n\n\n background.render(currentRenderList, scene, camera, forceClear); // render scene\n\n var opaqueObjects = currentRenderList.opaque;\n var transparentObjects = currentRenderList.transparent;\n\n if (scene.overrideMaterial) {\n var overrideMaterial = scene.overrideMaterial;\n if (opaqueObjects.length) renderObjects(opaqueObjects, scene, camera, overrideMaterial);\n if (transparentObjects.length) renderObjects(transparentObjects, scene, camera, overrideMaterial);\n } else {\n // opaque pass (front-to-back order)\n if (opaqueObjects.length) renderObjects(opaqueObjects, scene, camera); // transparent pass (back-to-front order)\n\n if (transparentObjects.length) renderObjects(transparentObjects, scene, camera);\n } //\n\n\n scene.onAfterRender(_this, scene, camera); //\n\n if (_currentRenderTarget !== null) {\n // Generate mipmap if we're using any kind of mipmap filtering\n textures.updateRenderTargetMipmap(_currentRenderTarget); // resolve multisample renderbuffers to a single-sample texture if necessary\n\n textures.updateMultisampleRenderTarget(_currentRenderTarget);\n } // Ensure depth buffer writing is enabled so it can be cleared on next render\n\n\n state.buffers.depth.setTest(true);\n state.buffers.depth.setMask(true);\n state.buffers.color.setMask(true);\n state.setPolygonOffset(false);\n\n if (vr.enabled) {\n if (multiview.isAvailable()) {\n multiview.detachCamera(camera);\n }\n\n vr.submitFrame();\n } // _gl.finish();\n\n\n currentRenderList = null;\n currentRenderState = null;\n };\n\n function projectObject(object, camera, groupOrder, sortObjects) {\n if (object.visible === false) return;\n var visible = object.layers.test(camera.layers);\n\n if (visible) {\n if (object.isGroup) {\n groupOrder = object.renderOrder;\n } else if (object.isLOD) {\n if (object.autoUpdate === true) object.update(camera);\n } else if (object.isLight) {\n currentRenderState.pushLight(object);\n\n if (object.castShadow) {\n currentRenderState.pushShadow(object);\n }\n } else if (object.isSprite) {\n if (!object.frustumCulled || _frustum.intersectsSprite(object)) {\n if (sortObjects) {\n _vector3.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix);\n }\n\n var geometry = objects.update(object);\n var material = object.material;\n\n if (material.visible) {\n currentRenderList.push(object, geometry, material, groupOrder, _vector3.z, null);\n }\n }\n } else if (object.isImmediateRenderObject) {\n if (sortObjects) {\n _vector3.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix);\n }\n\n currentRenderList.push(object, null, object.material, groupOrder, _vector3.z, null);\n } else if (object.isMesh || object.isLine || object.isPoints) {\n if (object.isSkinnedMesh) {\n // update skeleton only once in a frame\n if (object.skeleton.frame !== info.render.frame) {\n object.skeleton.update();\n object.skeleton.frame = info.render.frame;\n }\n }\n\n if (!object.frustumCulled || _frustum.intersectsObject(object)) {\n if (sortObjects) {\n _vector3.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix);\n }\n\n var geometry = objects.update(object);\n var material = object.material;\n\n if (Array.isArray(material)) {\n var groups = geometry.groups;\n\n for (var i = 0, l = groups.length; i < l; i++) {\n var group = groups[i];\n var groupMaterial = material[group.materialIndex];\n\n if (groupMaterial && groupMaterial.visible) {\n currentRenderList.push(object, geometry, groupMaterial, groupOrder, _vector3.z, group);\n }\n }\n } else if (material.visible) {\n currentRenderList.push(object, geometry, material, groupOrder, _vector3.z, null);\n }\n }\n }\n }\n\n var children = object.children;\n\n for (var i = 0, l = children.length; i < l; i++) {\n projectObject(children[i], camera, groupOrder, sortObjects);\n }\n }\n\n function renderObjects(renderList, scene, camera, overrideMaterial) {\n for (var i = 0, l = renderList.length; i < l; i++) {\n var renderItem = renderList[i];\n var object = renderItem.object;\n var geometry = renderItem.geometry;\n var material = overrideMaterial === undefined ? renderItem.material : overrideMaterial;\n var group = renderItem.group;\n\n if (camera.isArrayCamera) {\n _currentArrayCamera = camera;\n\n if (vr.enabled && multiview.isAvailable()) {\n renderObject(object, scene, camera, geometry, material, group);\n } else {\n var cameras = camera.cameras;\n\n for (var j = 0, jl = cameras.length; j < jl; j++) {\n var camera2 = cameras[j];\n\n if (object.layers.test(camera2.layers)) {\n state.viewport(_currentViewport.copy(camera2.viewport));\n currentRenderState.setupLights(camera2);\n renderObject(object, scene, camera2, geometry, material, group);\n }\n }\n }\n } else {\n _currentArrayCamera = null;\n renderObject(object, scene, camera, geometry, material, group);\n }\n }\n }\n\n function renderObject(object, scene, camera, geometry, material, group) {\n object.onBeforeRender(_this, scene, camera, geometry, material, group);\n currentRenderState = renderStates.get(scene, _currentArrayCamera || camera);\n object.modelViewMatrix.multiplyMatrices(camera.matrixWorldInverse, object.matrixWorld);\n object.normalMatrix.getNormalMatrix(object.modelViewMatrix);\n\n if (object.isImmediateRenderObject) {\n state.setMaterial(material);\n var program = setProgram(camera, scene.fog, material, object);\n _currentGeometryProgram.geometry = null;\n _currentGeometryProgram.program = null;\n _currentGeometryProgram.wireframe = false;\n renderObjectImmediate(object, program);\n } else {\n _this.renderBufferDirect(camera, scene.fog, geometry, material, object, group);\n }\n\n object.onAfterRender(_this, scene, camera, geometry, material, group);\n currentRenderState = renderStates.get(scene, _currentArrayCamera || camera);\n }\n\n function initMaterial(material, fog, object) {\n var materialProperties = properties.get(material);\n var lights = currentRenderState.state.lights;\n var shadowsArray = currentRenderState.state.shadowsArray;\n var lightsStateVersion = lights.state.version;\n var parameters = programCache.getParameters(material, lights.state, shadowsArray, fog, _clipping.numPlanes, _clipping.numIntersection, object);\n var programCacheKey = programCache.getProgramCacheKey(material, parameters);\n var program = materialProperties.program;\n var programChange = true;\n\n if (program === undefined) {\n // new material\n material.addEventListener('dispose', onMaterialDispose);\n } else if (program.cacheKey !== programCacheKey) {\n // changed glsl or parameters\n releaseMaterialProgramReference(material);\n } else if (materialProperties.lightsStateVersion !== lightsStateVersion) {\n materialProperties.lightsStateVersion = lightsStateVersion;\n programChange = false;\n } else if (parameters.shaderID !== undefined) {\n // same glsl and uniform list\n return;\n } else {\n // only rebuild uniform list\n programChange = false;\n }\n\n if (programChange) {\n if (parameters.shaderID) {\n var shader = ShaderLib[parameters.shaderID];\n materialProperties.shader = {\n name: material.type,\n uniforms: cloneUniforms(shader.uniforms),\n vertexShader: shader.vertexShader,\n fragmentShader: shader.fragmentShader\n };\n } else {\n materialProperties.shader = {\n name: material.type,\n uniforms: material.uniforms,\n vertexShader: material.vertexShader,\n fragmentShader: material.fragmentShader\n };\n }\n\n material.onBeforeCompile(materialProperties.shader, _this); // Computing cache key again as onBeforeCompile may have changed the shaders\n\n programCacheKey = programCache.getProgramCacheKey(material, parameters);\n program = programCache.acquireProgram(material, materialProperties.shader, parameters, programCacheKey);\n materialProperties.program = program;\n material.program = program;\n }\n\n var programAttributes = program.getAttributes();\n\n if (material.morphTargets) {\n material.numSupportedMorphTargets = 0;\n\n for (var i = 0; i < _this.maxMorphTargets; i++) {\n if (programAttributes['morphTarget' + i] >= 0) {\n material.numSupportedMorphTargets++;\n }\n }\n }\n\n if (material.morphNormals) {\n material.numSupportedMorphNormals = 0;\n\n for (var i = 0; i < _this.maxMorphNormals; i++) {\n if (programAttributes['morphNormal' + i] >= 0) {\n material.numSupportedMorphNormals++;\n }\n }\n }\n\n var uniforms = materialProperties.shader.uniforms;\n\n if (!material.isShaderMaterial && !material.isRawShaderMaterial || material.clipping === true) {\n materialProperties.numClippingPlanes = _clipping.numPlanes;\n materialProperties.numIntersection = _clipping.numIntersection;\n uniforms.clippingPlanes = _clipping.uniform;\n }\n\n materialProperties.fog = fog; // store the light setup it was created for\n\n materialProperties.needsLights = materialNeedsLights(material);\n materialProperties.lightsStateVersion = lightsStateVersion;\n\n if (materialProperties.needsLights) {\n // wire up the material to this renderer's lighting state\n uniforms.ambientLightColor.value = lights.state.ambient;\n uniforms.lightProbe.value = lights.state.probe;\n uniforms.directionalLights.value = lights.state.directional;\n uniforms.spotLights.value = lights.state.spot;\n uniforms.rectAreaLights.value = lights.state.rectArea;\n uniforms.pointLights.value = lights.state.point;\n uniforms.hemisphereLights.value = lights.state.hemi;\n uniforms.directionalShadowMap.value = lights.state.directionalShadowMap;\n uniforms.directionalShadowMatrix.value = lights.state.directionalShadowMatrix;\n uniforms.spotShadowMap.value = lights.state.spotShadowMap;\n uniforms.spotShadowMatrix.value = lights.state.spotShadowMatrix;\n uniforms.pointShadowMap.value = lights.state.pointShadowMap;\n uniforms.pointShadowMatrix.value = lights.state.pointShadowMatrix; // TODO (abelnation): add area lights shadow info to uniforms\n }\n\n var progUniforms = materialProperties.program.getUniforms(),\n uniformsList = WebGLUniforms.seqWithValue(progUniforms.seq, uniforms);\n materialProperties.uniformsList = uniformsList;\n }\n\n function setProgram(camera, fog, material, object) {\n textures.resetTextureUnits();\n var materialProperties = properties.get(material);\n var lights = currentRenderState.state.lights;\n\n if (_clippingEnabled) {\n if (_localClippingEnabled || camera !== _currentCamera) {\n var useCache = camera === _currentCamera && material.id === _currentMaterialId; // we might want to call this function with some ClippingGroup\n // object instead of the material, once it becomes feasible\n // (#8465, #8379)\n\n _clipping.setState(material.clippingPlanes, material.clipIntersection, material.clipShadows, camera, materialProperties, useCache);\n }\n }\n\n if (material.needsUpdate === false) {\n if (materialProperties.program === undefined) {\n material.needsUpdate = true;\n } else if (material.fog && materialProperties.fog !== fog) {\n material.needsUpdate = true;\n } else if (materialProperties.needsLights && materialProperties.lightsStateVersion !== lights.state.version) {\n material.needsUpdate = true;\n } else if (materialProperties.numClippingPlanes !== undefined && (materialProperties.numClippingPlanes !== _clipping.numPlanes || materialProperties.numIntersection !== _clipping.numIntersection)) {\n material.needsUpdate = true;\n }\n }\n\n if (material.needsUpdate) {\n initMaterial(material, fog, object);\n material.needsUpdate = false;\n }\n\n var refreshProgram = false;\n var refreshMaterial = false;\n var refreshLights = false;\n var program = materialProperties.program,\n p_uniforms = program.getUniforms(),\n m_uniforms = materialProperties.shader.uniforms;\n\n if (state.useProgram(program.program)) {\n refreshProgram = true;\n refreshMaterial = true;\n refreshLights = true;\n }\n\n if (material.id !== _currentMaterialId) {\n _currentMaterialId = material.id;\n refreshMaterial = true;\n }\n\n if (refreshProgram || _currentCamera !== camera) {\n if (program.numMultiviewViews > 0) {\n multiview.updateCameraProjectionMatricesUniform(camera, p_uniforms);\n } else {\n p_uniforms.setValue(_gl, 'projectionMatrix', camera.projectionMatrix);\n }\n\n if (capabilities.logarithmicDepthBuffer) {\n p_uniforms.setValue(_gl, 'logDepthBufFC', 2.0 / (Math.log(camera.far + 1.0) / Math.LN2));\n }\n\n if (_currentCamera !== camera) {\n _currentCamera = camera; // lighting uniforms depend on the camera so enforce an update\n // now, in case this material supports lights - or later, when\n // the next material that does gets activated:\n\n refreshMaterial = true; // set to true on material change\n\n refreshLights = true; // remains set until update done\n } // load material specific uniforms\n // (shader material also gets them for the sake of genericity)\n\n\n if (material.isShaderMaterial || material.isMeshPhongMaterial || material.isMeshStandardMaterial || material.envMap) {\n var uCamPos = p_uniforms.map.cameraPosition;\n\n if (uCamPos !== undefined) {\n uCamPos.setValue(_gl, _vector3.setFromMatrixPosition(camera.matrixWorld));\n }\n }\n\n if (material.isMeshPhongMaterial || material.isMeshLambertMaterial || material.isMeshBasicMaterial || material.isMeshStandardMaterial || material.isShaderMaterial) {\n p_uniforms.setValue(_gl, 'isOrthographic', camera.isOrthographicCamera === true);\n }\n\n if (material.isMeshPhongMaterial || material.isMeshLambertMaterial || material.isMeshBasicMaterial || material.isMeshStandardMaterial || material.isShaderMaterial || material.skinning) {\n if (program.numMultiviewViews > 0) {\n multiview.updateCameraViewMatricesUniform(camera, p_uniforms);\n } else {\n p_uniforms.setValue(_gl, 'viewMatrix', camera.matrixWorldInverse);\n }\n }\n } // skinning uniforms must be set even if material didn't change\n // auto-setting of texture unit for bone texture must go before other textures\n // not sure why, but otherwise weird things happen\n\n\n if (material.skinning) {\n p_uniforms.setOptional(_gl, object, 'bindMatrix');\n p_uniforms.setOptional(_gl, object, 'bindMatrixInverse');\n var skeleton = object.skeleton;\n\n if (skeleton) {\n var bones = skeleton.bones;\n\n if (capabilities.floatVertexTextures) {\n if (skeleton.boneTexture === undefined) {\n // layout (1 matrix = 4 pixels)\n // RGBA RGBA RGBA RGBA (=> column1, column2, column3, column4)\n // with 8x8 pixel texture max 16 bones * 4 pixels = (8 * 8)\n // 16x16 pixel texture max 64 bones * 4 pixels = (16 * 16)\n // 32x32 pixel texture max 256 bones * 4 pixels = (32 * 32)\n // 64x64 pixel texture max 1024 bones * 4 pixels = (64 * 64)\n var size = Math.sqrt(bones.length * 4); // 4 pixels needed for 1 matrix\n\n size = _Math.ceilPowerOfTwo(size);\n size = Math.max(size, 4);\n var boneMatrices = new Float32Array(size * size * 4); // 4 floats per RGBA pixel\n\n boneMatrices.set(skeleton.boneMatrices); // copy current values\n\n var boneTexture = new DataTexture(boneMatrices, size, size, RGBAFormat, FloatType);\n skeleton.boneMatrices = boneMatrices;\n skeleton.boneTexture = boneTexture;\n skeleton.boneTextureSize = size;\n }\n\n p_uniforms.setValue(_gl, 'boneTexture', skeleton.boneTexture, textures);\n p_uniforms.setValue(_gl, 'boneTextureSize', skeleton.boneTextureSize);\n } else {\n p_uniforms.setOptional(_gl, skeleton, 'boneMatrices');\n }\n }\n }\n\n if (refreshMaterial || materialProperties.receiveShadow !== object.receiveShadow) {\n materialProperties.receiveShadow = object.receiveShadow;\n p_uniforms.setValue(_gl, 'receiveShadow', object.receiveShadow);\n }\n\n if (refreshMaterial) {\n p_uniforms.setValue(_gl, 'toneMappingExposure', _this.toneMappingExposure);\n p_uniforms.setValue(_gl, 'toneMappingWhitePoint', _this.toneMappingWhitePoint);\n\n if (materialProperties.needsLights) {\n // the current material requires lighting info\n // note: all lighting uniforms are always set correctly\n // they simply reference the renderer's state for their\n // values\n //\n // use the current material's .needsUpdate flags to set\n // the GL state when required\n markUniformsLightsNeedsUpdate(m_uniforms, refreshLights);\n } // refresh uniforms common to several materials\n\n\n if (fog && material.fog) {\n refreshUniformsFog(m_uniforms, fog);\n }\n\n if (material.isMeshBasicMaterial) {\n refreshUniformsCommon(m_uniforms, material);\n } else if (material.isMeshLambertMaterial) {\n refreshUniformsCommon(m_uniforms, material);\n refreshUniformsLambert(m_uniforms, material);\n } else if (material.isMeshPhongMaterial) {\n refreshUniformsCommon(m_uniforms, material);\n\n if (material.isMeshToonMaterial) {\n refreshUniformsToon(m_uniforms, material);\n } else {\n refreshUniformsPhong(m_uniforms, material);\n }\n } else if (material.isMeshStandardMaterial) {\n refreshUniformsCommon(m_uniforms, material);\n\n if (material.isMeshPhysicalMaterial) {\n refreshUniformsPhysical(m_uniforms, material);\n } else {\n refreshUniformsStandard(m_uniforms, material);\n }\n } else if (material.isMeshMatcapMaterial) {\n refreshUniformsCommon(m_uniforms, material);\n refreshUniformsMatcap(m_uniforms, material);\n } else if (material.isMeshDepthMaterial) {\n refreshUniformsCommon(m_uniforms, material);\n refreshUniformsDepth(m_uniforms, material);\n } else if (material.isMeshDistanceMaterial) {\n refreshUniformsCommon(m_uniforms, material);\n refreshUniformsDistance(m_uniforms, material);\n } else if (material.isMeshNormalMaterial) {\n refreshUniformsCommon(m_uniforms, material);\n refreshUniformsNormal(m_uniforms, material);\n } else if (material.isLineBasicMaterial) {\n refreshUniformsLine(m_uniforms, material);\n\n if (material.isLineDashedMaterial) {\n refreshUniformsDash(m_uniforms, material);\n }\n } else if (material.isPointsMaterial) {\n refreshUniformsPoints(m_uniforms, material);\n } else if (material.isSpriteMaterial) {\n refreshUniformsSprites(m_uniforms, material);\n } else if (material.isShadowMaterial) {\n m_uniforms.color.value.copy(material.color);\n m_uniforms.opacity.value = material.opacity;\n } // RectAreaLight Texture\n // TODO (mrdoob): Find a nicer implementation\n\n\n if (m_uniforms.ltc_1 !== undefined) m_uniforms.ltc_1.value = UniformsLib.LTC_1;\n if (m_uniforms.ltc_2 !== undefined) m_uniforms.ltc_2.value = UniformsLib.LTC_2;\n WebGLUniforms.upload(_gl, materialProperties.uniformsList, m_uniforms, textures);\n\n if (material.isShaderMaterial) {\n material.uniformsNeedUpdate = false; // #15581\n }\n }\n\n if (material.isShaderMaterial && material.uniformsNeedUpdate === true) {\n WebGLUniforms.upload(_gl, materialProperties.uniformsList, m_uniforms, textures);\n material.uniformsNeedUpdate = false;\n }\n\n if (material.isSpriteMaterial) {\n p_uniforms.setValue(_gl, 'center', object.center);\n } // common matrices\n\n\n if (program.numMultiviewViews > 0) {\n multiview.updateObjectMatricesUniforms(object, camera, p_uniforms);\n } else {\n p_uniforms.setValue(_gl, 'modelViewMatrix', object.modelViewMatrix);\n p_uniforms.setValue(_gl, 'normalMatrix', object.normalMatrix);\n }\n\n p_uniforms.setValue(_gl, 'modelMatrix', object.matrixWorld);\n return program;\n } // Uniforms (refresh uniforms objects)\n\n\n function refreshUniformsCommon(uniforms, material) {\n uniforms.opacity.value = material.opacity;\n\n if (material.color) {\n uniforms.diffuse.value.copy(material.color);\n }\n\n if (material.emissive) {\n uniforms.emissive.value.copy(material.emissive).multiplyScalar(material.emissiveIntensity);\n }\n\n if (material.map) {\n uniforms.map.value = material.map;\n }\n\n if (material.alphaMap) {\n uniforms.alphaMap.value = material.alphaMap;\n }\n\n if (material.specularMap) {\n uniforms.specularMap.value = material.specularMap;\n }\n\n if (material.envMap) {\n uniforms.envMap.value = material.envMap; // don't flip CubeTexture envMaps, flip everything else:\n // WebGLRenderTargetCube will be flipped for backwards compatibility\n // WebGLRenderTargetCube.texture will be flipped because it's a Texture and NOT a CubeTexture\n // this check must be handled differently, or removed entirely, if WebGLRenderTargetCube uses a CubeTexture in the future\n\n uniforms.flipEnvMap.value = material.envMap.isCubeTexture ? -1 : 1;\n uniforms.reflectivity.value = material.reflectivity;\n uniforms.refractionRatio.value = material.refractionRatio;\n uniforms.maxMipLevel.value = properties.get(material.envMap).__maxMipLevel;\n }\n\n if (material.lightMap) {\n uniforms.lightMap.value = material.lightMap;\n uniforms.lightMapIntensity.value = material.lightMapIntensity;\n }\n\n if (material.aoMap) {\n uniforms.aoMap.value = material.aoMap;\n uniforms.aoMapIntensity.value = material.aoMapIntensity;\n } // uv repeat and offset setting priorities\n // 1. color map\n // 2. specular map\n // 3. normal map\n // 4. bump map\n // 5. alpha map\n // 6. emissive map\n\n\n var uvScaleMap;\n\n if (material.map) {\n uvScaleMap = material.map;\n } else if (material.specularMap) {\n uvScaleMap = material.specularMap;\n } else if (material.displacementMap) {\n uvScaleMap = material.displacementMap;\n } else if (material.normalMap) {\n uvScaleMap = material.normalMap;\n } else if (material.bumpMap) {\n uvScaleMap = material.bumpMap;\n } else if (material.roughnessMap) {\n uvScaleMap = material.roughnessMap;\n } else if (material.metalnessMap) {\n uvScaleMap = material.metalnessMap;\n } else if (material.alphaMap) {\n uvScaleMap = material.alphaMap;\n } else if (material.emissiveMap) {\n uvScaleMap = material.emissiveMap;\n }\n\n if (uvScaleMap !== undefined) {\n // backwards compatibility\n if (uvScaleMap.isWebGLRenderTarget) {\n uvScaleMap = uvScaleMap.texture;\n }\n\n if (uvScaleMap.matrixAutoUpdate === true) {\n uvScaleMap.updateMatrix();\n }\n\n uniforms.uvTransform.value.copy(uvScaleMap.matrix);\n }\n }\n\n function refreshUniformsLine(uniforms, material) {\n uniforms.diffuse.value.copy(material.color);\n uniforms.opacity.value = material.opacity;\n }\n\n function refreshUniformsDash(uniforms, material) {\n uniforms.dashSize.value = material.dashSize;\n uniforms.totalSize.value = material.dashSize + material.gapSize;\n uniforms.scale.value = material.scale;\n }\n\n function refreshUniformsPoints(uniforms, material) {\n uniforms.diffuse.value.copy(material.color);\n uniforms.opacity.value = material.opacity;\n uniforms.size.value = material.size * _pixelRatio;\n uniforms.scale.value = _height * 0.5;\n\n if (material.map) {\n uniforms.map.value = material.map;\n }\n\n if (material.alphaMap) {\n uniforms.alphaMap.value = material.alphaMap;\n } // uv repeat and offset setting priorities\n // 1. color map\n // 2. alpha map\n\n\n var uvScaleMap;\n\n if (material.map) {\n uvScaleMap = material.map;\n } else if (material.alphaMap) {\n uvScaleMap = material.alphaMap;\n }\n\n if (uvScaleMap !== undefined) {\n if (uvScaleMap.matrixAutoUpdate === true) {\n uvScaleMap.updateMatrix();\n }\n\n uniforms.uvTransform.value.copy(uvScaleMap.matrix);\n }\n }\n\n function refreshUniformsSprites(uniforms, material) {\n uniforms.diffuse.value.copy(material.color);\n uniforms.opacity.value = material.opacity;\n uniforms.rotation.value = material.rotation;\n\n if (material.map) {\n uniforms.map.value = material.map;\n }\n\n if (material.alphaMap) {\n uniforms.alphaMap.value = material.alphaMap;\n } // uv repeat and offset setting priorities\n // 1. color map\n // 2. alpha map\n\n\n var uvScaleMap;\n\n if (material.map) {\n uvScaleMap = material.map;\n } else if (material.alphaMap) {\n uvScaleMap = material.alphaMap;\n }\n\n if (uvScaleMap !== undefined) {\n if (uvScaleMap.matrixAutoUpdate === true) {\n uvScaleMap.updateMatrix();\n }\n\n uniforms.uvTransform.value.copy(uvScaleMap.matrix);\n }\n }\n\n function refreshUniformsFog(uniforms, fog) {\n uniforms.fogColor.value.copy(fog.color);\n\n if (fog.isFog) {\n uniforms.fogNear.value = fog.near;\n uniforms.fogFar.value = fog.far;\n } else if (fog.isFogExp2) {\n uniforms.fogDensity.value = fog.density;\n }\n }\n\n function refreshUniformsLambert(uniforms, material) {\n if (material.emissiveMap) {\n uniforms.emissiveMap.value = material.emissiveMap;\n }\n }\n\n function refreshUniformsPhong(uniforms, material) {\n uniforms.specular.value.copy(material.specular);\n uniforms.shininess.value = Math.max(material.shininess, 1e-4); // to prevent pow( 0.0, 0.0 )\n\n if (material.emissiveMap) {\n uniforms.emissiveMap.value = material.emissiveMap;\n }\n\n if (material.bumpMap) {\n uniforms.bumpMap.value = material.bumpMap;\n uniforms.bumpScale.value = material.bumpScale;\n if (material.side === BackSide) uniforms.bumpScale.value *= -1;\n }\n\n if (material.normalMap) {\n uniforms.normalMap.value = material.normalMap;\n uniforms.normalScale.value.copy(material.normalScale);\n if (material.side === BackSide) uniforms.normalScale.value.negate();\n }\n\n if (material.displacementMap) {\n uniforms.displacementMap.value = material.displacementMap;\n uniforms.displacementScale.value = material.displacementScale;\n uniforms.displacementBias.value = material.displacementBias;\n }\n }\n\n function refreshUniformsToon(uniforms, material) {\n refreshUniformsPhong(uniforms, material);\n\n if (material.gradientMap) {\n uniforms.gradientMap.value = material.gradientMap;\n }\n }\n\n function refreshUniformsStandard(uniforms, material) {\n uniforms.roughness.value = material.roughness;\n uniforms.metalness.value = material.metalness;\n\n if (material.roughnessMap) {\n uniforms.roughnessMap.value = material.roughnessMap;\n }\n\n if (material.metalnessMap) {\n uniforms.metalnessMap.value = material.metalnessMap;\n }\n\n if (material.emissiveMap) {\n uniforms.emissiveMap.value = material.emissiveMap;\n }\n\n if (material.bumpMap) {\n uniforms.bumpMap.value = material.bumpMap;\n uniforms.bumpScale.value = material.bumpScale;\n if (material.side === BackSide) uniforms.bumpScale.value *= -1;\n }\n\n if (material.normalMap) {\n uniforms.normalMap.value = material.normalMap;\n uniforms.normalScale.value.copy(material.normalScale);\n if (material.side === BackSide) uniforms.normalScale.value.negate();\n }\n\n if (material.displacementMap) {\n uniforms.displacementMap.value = material.displacementMap;\n uniforms.displacementScale.value = material.displacementScale;\n uniforms.displacementBias.value = material.displacementBias;\n }\n\n if (material.envMap) {\n //uniforms.envMap.value = material.envMap; // part of uniforms common\n uniforms.envMapIntensity.value = material.envMapIntensity;\n }\n }\n\n function refreshUniformsPhysical(uniforms, material) {\n refreshUniformsStandard(uniforms, material);\n uniforms.reflectivity.value = material.reflectivity; // also part of uniforms common\n\n uniforms.clearcoat.value = material.clearcoat;\n uniforms.clearcoatRoughness.value = material.clearcoatRoughness;\n if (material.sheen) uniforms.sheen.value.copy(material.sheen);\n\n if (material.clearcoatNormalMap) {\n uniforms.clearcoatNormalScale.value.copy(material.clearcoatNormalScale);\n uniforms.clearcoatNormalMap.value = material.clearcoatNormalMap;\n\n if (material.side === BackSide) {\n uniforms.clearcoatNormalScale.value.negate();\n }\n }\n\n uniforms.transparency.value = material.transparency;\n }\n\n function refreshUniformsMatcap(uniforms, material) {\n if (material.matcap) {\n uniforms.matcap.value = material.matcap;\n }\n\n if (material.bumpMap) {\n uniforms.bumpMap.value = material.bumpMap;\n uniforms.bumpScale.value = material.bumpScale;\n if (material.side === BackSide) uniforms.bumpScale.value *= -1;\n }\n\n if (material.normalMap) {\n uniforms.normalMap.value = material.normalMap;\n uniforms.normalScale.value.copy(material.normalScale);\n if (material.side === BackSide) uniforms.normalScale.value.negate();\n }\n\n if (material.displacementMap) {\n uniforms.displacementMap.value = material.displacementMap;\n uniforms.displacementScale.value = material.displacementScale;\n uniforms.displacementBias.value = material.displacementBias;\n }\n }\n\n function refreshUniformsDepth(uniforms, material) {\n if (material.displacementMap) {\n uniforms.displacementMap.value = material.displacementMap;\n uniforms.displacementScale.value = material.displacementScale;\n uniforms.displacementBias.value = material.displacementBias;\n }\n }\n\n function refreshUniformsDistance(uniforms, material) {\n if (material.displacementMap) {\n uniforms.displacementMap.value = material.displacementMap;\n uniforms.displacementScale.value = material.displacementScale;\n uniforms.displacementBias.value = material.displacementBias;\n }\n\n uniforms.referencePosition.value.copy(material.referencePosition);\n uniforms.nearDistance.value = material.nearDistance;\n uniforms.farDistance.value = material.farDistance;\n }\n\n function refreshUniformsNormal(uniforms, material) {\n if (material.bumpMap) {\n uniforms.bumpMap.value = material.bumpMap;\n uniforms.bumpScale.value = material.bumpScale;\n if (material.side === BackSide) uniforms.bumpScale.value *= -1;\n }\n\n if (material.normalMap) {\n uniforms.normalMap.value = material.normalMap;\n uniforms.normalScale.value.copy(material.normalScale);\n if (material.side === BackSide) uniforms.normalScale.value.negate();\n }\n\n if (material.displacementMap) {\n uniforms.displacementMap.value = material.displacementMap;\n uniforms.displacementScale.value = material.displacementScale;\n uniforms.displacementBias.value = material.displacementBias;\n }\n } // If uniforms are marked as clean, they don't need to be loaded to the GPU.\n\n\n function markUniformsLightsNeedsUpdate(uniforms, value) {\n uniforms.ambientLightColor.needsUpdate = value;\n uniforms.lightProbe.needsUpdate = value;\n uniforms.directionalLights.needsUpdate = value;\n uniforms.pointLights.needsUpdate = value;\n uniforms.spotLights.needsUpdate = value;\n uniforms.rectAreaLights.needsUpdate = value;\n uniforms.hemisphereLights.needsUpdate = value;\n }\n\n function materialNeedsLights(material) {\n return material.isMeshLambertMaterial || material.isMeshPhongMaterial || material.isMeshStandardMaterial || material.isShadowMaterial || material.isShaderMaterial && material.lights === true;\n } //\n\n\n this.setFramebuffer = function (value) {\n if (_framebuffer !== value && _currentRenderTarget === null) _gl.bindFramebuffer(36160, value);\n _framebuffer = value;\n };\n\n this.getActiveCubeFace = function () {\n return _currentActiveCubeFace;\n };\n\n this.getActiveMipmapLevel = function () {\n return _currentActiveMipmapLevel;\n };\n\n this.getRenderTarget = function () {\n return _currentRenderTarget;\n };\n\n this.setRenderTarget = function (renderTarget, activeCubeFace, activeMipmapLevel) {\n _currentRenderTarget = renderTarget;\n _currentActiveCubeFace = activeCubeFace;\n _currentActiveMipmapLevel = activeMipmapLevel;\n\n if (renderTarget && properties.get(renderTarget).__webglFramebuffer === undefined) {\n textures.setupRenderTarget(renderTarget);\n }\n\n var framebuffer = _framebuffer;\n var isCube = false;\n\n if (renderTarget) {\n var __webglFramebuffer = properties.get(renderTarget).__webglFramebuffer;\n\n if (renderTarget.isWebGLRenderTargetCube) {\n framebuffer = __webglFramebuffer[activeCubeFace || 0];\n isCube = true;\n } else if (renderTarget.isWebGLMultisampleRenderTarget) {\n framebuffer = properties.get(renderTarget).__webglMultisampledFramebuffer;\n } else {\n framebuffer = __webglFramebuffer;\n }\n\n _currentViewport.copy(renderTarget.viewport);\n\n _currentScissor.copy(renderTarget.scissor);\n\n _currentScissorTest = renderTarget.scissorTest;\n } else {\n _currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).floor();\n\n _currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).floor();\n\n _currentScissorTest = _scissorTest;\n }\n\n if (_currentFramebuffer !== framebuffer) {\n _gl.bindFramebuffer(36160, framebuffer);\n\n _currentFramebuffer = framebuffer;\n }\n\n state.viewport(_currentViewport);\n state.scissor(_currentScissor);\n state.setScissorTest(_currentScissorTest);\n\n if (isCube) {\n var textureProperties = properties.get(renderTarget.texture);\n\n _gl.framebufferTexture2D(36160, 36064, 34069 + (activeCubeFace || 0), textureProperties.__webglTexture, activeMipmapLevel || 0);\n }\n };\n\n this.readRenderTargetPixels = function (renderTarget, x, y, width, height, buffer, activeCubeFaceIndex) {\n if (!(renderTarget && renderTarget.isWebGLRenderTarget)) {\n console.error('THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.');\n return;\n }\n\n var framebuffer = properties.get(renderTarget).__webglFramebuffer;\n\n if (renderTarget.isWebGLRenderTargetCube && activeCubeFaceIndex !== undefined) {\n framebuffer = framebuffer[activeCubeFaceIndex];\n }\n\n if (framebuffer) {\n var restore = false;\n\n if (framebuffer !== _currentFramebuffer) {\n _gl.bindFramebuffer(36160, framebuffer);\n\n restore = true;\n }\n\n try {\n var texture = renderTarget.texture;\n var textureFormat = texture.format;\n var textureType = texture.type;\n\n if (textureFormat !== RGBAFormat && utils.convert(textureFormat) !== _gl.getParameter(35739)) {\n console.error('THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.');\n return;\n }\n\n if (textureType !== UnsignedByteType && utils.convert(textureType) !== _gl.getParameter(35738) && // IE11, Edge and Chrome Mac < 52 (#9513)\n !(textureType === FloatType && (capabilities.isWebGL2 || extensions.get('OES_texture_float') || extensions.get('WEBGL_color_buffer_float'))) && // Chrome Mac >= 52 and Firefox\n !(textureType === HalfFloatType && (capabilities.isWebGL2 ? extensions.get('EXT_color_buffer_float') : extensions.get('EXT_color_buffer_half_float')))) {\n console.error('THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.');\n return;\n }\n\n if (_gl.checkFramebufferStatus(36160) === 36053) {\n // the following if statement ensures valid read requests (no out-of-bounds pixels, see #8604)\n if (x >= 0 && x <= renderTarget.width - width && y >= 0 && y <= renderTarget.height - height) {\n _gl.readPixels(x, y, width, height, utils.convert(textureFormat), utils.convert(textureType), buffer);\n }\n } else {\n console.error('THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.');\n }\n } finally {\n if (restore) {\n _gl.bindFramebuffer(36160, _currentFramebuffer);\n }\n }\n }\n };\n\n this.copyFramebufferToTexture = function (position, texture, level) {\n if (level === undefined) level = 0;\n var levelScale = Math.pow(2, -level);\n var width = Math.floor(texture.image.width * levelScale);\n var height = Math.floor(texture.image.height * levelScale);\n var glFormat = utils.convert(texture.format);\n textures.setTexture2D(texture, 0);\n\n _gl.copyTexImage2D(3553, level, glFormat, position.x, position.y, width, height, 0);\n\n state.unbindTexture();\n };\n\n this.copyTextureToTexture = function (position, srcTexture, dstTexture, level) {\n var width = srcTexture.image.width;\n var height = srcTexture.image.height;\n var glFormat = utils.convert(dstTexture.format);\n var glType = utils.convert(dstTexture.type);\n textures.setTexture2D(dstTexture, 0);\n\n if (srcTexture.isDataTexture) {\n _gl.texSubImage2D(3553, level || 0, position.x, position.y, width, height, glFormat, glType, srcTexture.image.data);\n } else {\n _gl.texSubImage2D(3553, level || 0, position.x, position.y, glFormat, glType, srcTexture.image);\n }\n\n state.unbindTexture();\n };\n\n this.initTexture = function (texture) {\n textures.setTexture2D(texture, 0);\n state.unbindTexture();\n };\n\n if (typeof __THREE_DEVTOOLS__ !== 'undefined') {\n __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent('observe', {\n detail: this\n })); // eslint-disable-line no-undef\n\n }\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author alteredq / http://alteredqualia.com/\n */\n\n\nfunction FogExp2(color, density) {\n this.name = '';\n this.color = new Color(color);\n this.density = density !== undefined ? density : 0.00025;\n}\n\nObject.assign(FogExp2.prototype, {\n isFogExp2: true,\n clone: function clone() {\n return new FogExp2(this.color, this.density);\n },\n toJSON: function toJSON()\n /* meta */\n {\n return {\n type: 'FogExp2',\n color: this.color.getHex(),\n density: this.density\n };\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author alteredq / http://alteredqualia.com/\n */\n\nfunction Fog(color, near, far) {\n this.name = '';\n this.color = new Color(color);\n this.near = near !== undefined ? near : 1;\n this.far = far !== undefined ? far : 1000;\n}\n\nObject.assign(Fog.prototype, {\n isFog: true,\n clone: function clone() {\n return new Fog(this.color, this.near, this.far);\n },\n toJSON: function toJSON()\n /* meta */\n {\n return {\n type: 'Fog',\n color: this.color.getHex(),\n near: this.near,\n far: this.far\n };\n }\n});\n/**\n * @author benaadams / https://twitter.com/ben_a_adams\n */\n\nfunction InterleavedBuffer(array, stride) {\n this.array = array;\n this.stride = stride;\n this.count = array !== undefined ? array.length / stride : 0;\n this.usage = StaticDrawUsage;\n this.updateRange = {\n offset: 0,\n count: -1\n };\n this.version = 0;\n}\n\nObject.defineProperty(InterleavedBuffer.prototype, 'needsUpdate', {\n set: function set(value) {\n if (value === true) this.version++;\n }\n});\nObject.assign(InterleavedBuffer.prototype, {\n isInterleavedBuffer: true,\n onUploadCallback: function onUploadCallback() {},\n setUsage: function setUsage(value) {\n this.usage = value;\n return this;\n },\n copy: function copy(source) {\n this.array = new source.array.constructor(source.array);\n this.count = source.count;\n this.stride = source.stride;\n this.usage = source.usage;\n return this;\n },\n copyAt: function copyAt(index1, attribute, index2) {\n index1 *= this.stride;\n index2 *= attribute.stride;\n\n for (var i = 0, l = this.stride; i < l; i++) {\n this.array[index1 + i] = attribute.array[index2 + i];\n }\n\n return this;\n },\n set: function set(value, offset) {\n if (offset === undefined) offset = 0;\n this.array.set(value, offset);\n return this;\n },\n clone: function clone() {\n return new this.constructor().copy(this);\n },\n onUpload: function onUpload(callback) {\n this.onUploadCallback = callback;\n return this;\n }\n});\n/**\n * @author benaadams / https://twitter.com/ben_a_adams\n */\n\nfunction InterleavedBufferAttribute(interleavedBuffer, itemSize, offset, normalized) {\n this.data = interleavedBuffer;\n this.itemSize = itemSize;\n this.offset = offset;\n this.normalized = normalized === true;\n}\n\nObject.defineProperties(InterleavedBufferAttribute.prototype, {\n count: {\n get: function get() {\n return this.data.count;\n }\n },\n array: {\n get: function get() {\n return this.data.array;\n }\n }\n});\nObject.assign(InterleavedBufferAttribute.prototype, {\n isInterleavedBufferAttribute: true,\n setX: function setX(index, x) {\n this.data.array[index * this.data.stride + this.offset] = x;\n return this;\n },\n setY: function setY(index, y) {\n this.data.array[index * this.data.stride + this.offset + 1] = y;\n return this;\n },\n setZ: function setZ(index, z) {\n this.data.array[index * this.data.stride + this.offset + 2] = z;\n return this;\n },\n setW: function setW(index, w) {\n this.data.array[index * this.data.stride + this.offset + 3] = w;\n return this;\n },\n getX: function getX(index) {\n return this.data.array[index * this.data.stride + this.offset];\n },\n getY: function getY(index) {\n return this.data.array[index * this.data.stride + this.offset + 1];\n },\n getZ: function getZ(index) {\n return this.data.array[index * this.data.stride + this.offset + 2];\n },\n getW: function getW(index) {\n return this.data.array[index * this.data.stride + this.offset + 3];\n },\n setXY: function setXY(index, x, y) {\n index = index * this.data.stride + this.offset;\n this.data.array[index + 0] = x;\n this.data.array[index + 1] = y;\n return this;\n },\n setXYZ: function setXYZ(index, x, y, z) {\n index = index * this.data.stride + this.offset;\n this.data.array[index + 0] = x;\n this.data.array[index + 1] = y;\n this.data.array[index + 2] = z;\n return this;\n },\n setXYZW: function setXYZW(index, x, y, z, w) {\n index = index * this.data.stride + this.offset;\n this.data.array[index + 0] = x;\n this.data.array[index + 1] = y;\n this.data.array[index + 2] = z;\n this.data.array[index + 3] = w;\n return this;\n }\n});\n/**\n * @author alteredq / http://alteredqualia.com/\n *\n * parameters = {\n * color: ,\n * map: new THREE.Texture( ),\n * alphaMap: new THREE.Texture( ),\n * rotation: ,\n * sizeAttenuation: \n * }\n */\n\nfunction SpriteMaterial(parameters) {\n Material.call(this);\n this.type = 'SpriteMaterial';\n this.color = new Color(0xffffff);\n this.map = null;\n this.alphaMap = null;\n this.rotation = 0;\n this.sizeAttenuation = true;\n this.transparent = true;\n this.setValues(parameters);\n}\n\nSpriteMaterial.prototype = Object.create(Material.prototype);\nSpriteMaterial.prototype.constructor = SpriteMaterial;\nSpriteMaterial.prototype.isSpriteMaterial = true;\n\nSpriteMaterial.prototype.copy = function (source) {\n Material.prototype.copy.call(this, source);\n this.color.copy(source.color);\n this.map = source.map;\n this.alphaMap = source.alphaMap;\n this.rotation = source.rotation;\n this.sizeAttenuation = source.sizeAttenuation;\n return this;\n};\n/**\n * @author mikael emtinger / http://gomo.se/\n * @author alteredq / http://alteredqualia.com/\n */\n\n\nvar _geometry;\n\nvar _intersectPoint = new Vector3();\n\nvar _worldScale = new Vector3();\n\nvar _mvPosition = new Vector3();\n\nvar _alignedPosition = new Vector2();\n\nvar _rotatedPosition = new Vector2();\n\nvar _viewWorldMatrix = new Matrix4();\n\nvar _vA$1 = new Vector3();\n\nvar _vB$1 = new Vector3();\n\nvar _vC$1 = new Vector3();\n\nvar _uvA$1 = new Vector2();\n\nvar _uvB$1 = new Vector2();\n\nvar _uvC$1 = new Vector2();\n\nfunction Sprite(material) {\n Object3D.call(this);\n this.type = 'Sprite';\n\n if (_geometry === undefined) {\n _geometry = new BufferGeometry();\n var float32Array = new Float32Array([-0.5, -0.5, 0, 0, 0, 0.5, -0.5, 0, 1, 0, 0.5, 0.5, 0, 1, 1, -0.5, 0.5, 0, 0, 1]);\n var interleavedBuffer = new InterleavedBuffer(float32Array, 5);\n\n _geometry.setIndex([0, 1, 2, 0, 2, 3]);\n\n _geometry.setAttribute('position', new InterleavedBufferAttribute(interleavedBuffer, 3, 0, false));\n\n _geometry.setAttribute('uv', new InterleavedBufferAttribute(interleavedBuffer, 2, 3, false));\n }\n\n this.geometry = _geometry;\n this.material = material !== undefined ? material : new SpriteMaterial();\n this.center = new Vector2(0.5, 0.5);\n}\n\nSprite.prototype = Object.assign(Object.create(Object3D.prototype), {\n constructor: Sprite,\n isSprite: true,\n raycast: function raycast(raycaster, intersects) {\n if (raycaster.camera === null) {\n console.error('THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.');\n }\n\n _worldScale.setFromMatrixScale(this.matrixWorld);\n\n _viewWorldMatrix.copy(raycaster.camera.matrixWorld);\n\n this.modelViewMatrix.multiplyMatrices(raycaster.camera.matrixWorldInverse, this.matrixWorld);\n\n _mvPosition.setFromMatrixPosition(this.modelViewMatrix);\n\n if (raycaster.camera.isPerspectiveCamera && this.material.sizeAttenuation === false) {\n _worldScale.multiplyScalar(-_mvPosition.z);\n }\n\n var rotation = this.material.rotation;\n var sin, cos;\n\n if (rotation !== 0) {\n cos = Math.cos(rotation);\n sin = Math.sin(rotation);\n }\n\n var center = this.center;\n transformVertex(_vA$1.set(-0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos);\n transformVertex(_vB$1.set(0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos);\n transformVertex(_vC$1.set(0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos);\n\n _uvA$1.set(0, 0);\n\n _uvB$1.set(1, 0);\n\n _uvC$1.set(1, 1); // check first triangle\n\n\n var intersect = raycaster.ray.intersectTriangle(_vA$1, _vB$1, _vC$1, false, _intersectPoint);\n\n if (intersect === null) {\n // check second triangle\n transformVertex(_vB$1.set(-0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos);\n\n _uvB$1.set(0, 1);\n\n intersect = raycaster.ray.intersectTriangle(_vA$1, _vC$1, _vB$1, false, _intersectPoint);\n\n if (intersect === null) {\n return;\n }\n }\n\n var distance = raycaster.ray.origin.distanceTo(_intersectPoint);\n if (distance < raycaster.near || distance > raycaster.far) return;\n intersects.push({\n distance: distance,\n point: _intersectPoint.clone(),\n uv: Triangle.getUV(_intersectPoint, _vA$1, _vB$1, _vC$1, _uvA$1, _uvB$1, _uvC$1, new Vector2()),\n face: null,\n object: this\n });\n },\n clone: function clone() {\n return new this.constructor(this.material).copy(this);\n },\n copy: function copy(source) {\n Object3D.prototype.copy.call(this, source);\n if (source.center !== undefined) this.center.copy(source.center);\n return this;\n }\n});\n\nfunction transformVertex(vertexPosition, mvPosition, center, scale, sin, cos) {\n // compute position in camera space\n _alignedPosition.subVectors(vertexPosition, center).addScalar(0.5).multiply(scale); // to check if rotation is not zero\n\n\n if (sin !== undefined) {\n _rotatedPosition.x = cos * _alignedPosition.x - sin * _alignedPosition.y;\n _rotatedPosition.y = sin * _alignedPosition.x + cos * _alignedPosition.y;\n } else {\n _rotatedPosition.copy(_alignedPosition);\n }\n\n vertexPosition.copy(mvPosition);\n vertexPosition.x += _rotatedPosition.x;\n vertexPosition.y += _rotatedPosition.y; // transform to world space\n\n vertexPosition.applyMatrix4(_viewWorldMatrix);\n}\n/**\n * @author mikael emtinger / http://gomo.se/\n * @author alteredq / http://alteredqualia.com/\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nvar _v1$4 = new Vector3();\n\nvar _v2$2 = new Vector3();\n\nfunction LOD() {\n Object3D.call(this);\n this.type = 'LOD';\n Object.defineProperties(this, {\n levels: {\n enumerable: true,\n value: []\n }\n });\n this.autoUpdate = true;\n}\n\nLOD.prototype = Object.assign(Object.create(Object3D.prototype), {\n constructor: LOD,\n isLOD: true,\n copy: function copy(source) {\n Object3D.prototype.copy.call(this, source, false);\n var levels = source.levels;\n\n for (var i = 0, l = levels.length; i < l; i++) {\n var level = levels[i];\n this.addLevel(level.object.clone(), level.distance);\n }\n\n return this;\n },\n addLevel: function addLevel(object, distance) {\n if (distance === undefined) distance = 0;\n distance = Math.abs(distance);\n var levels = this.levels;\n\n for (var l = 0; l < levels.length; l++) {\n if (distance < levels[l].distance) {\n break;\n }\n }\n\n levels.splice(l, 0, {\n distance: distance,\n object: object\n });\n this.add(object);\n return this;\n },\n getObjectForDistance: function getObjectForDistance(distance) {\n var levels = this.levels;\n\n for (var i = 1, l = levels.length; i < l; i++) {\n if (distance < levels[i].distance) {\n break;\n }\n }\n\n return levels[i - 1].object;\n },\n raycast: function raycast(raycaster, intersects) {\n _v1$4.setFromMatrixPosition(this.matrixWorld);\n\n var distance = raycaster.ray.origin.distanceTo(_v1$4);\n this.getObjectForDistance(distance).raycast(raycaster, intersects);\n },\n update: function update(camera) {\n var levels = this.levels;\n\n if (levels.length > 1) {\n _v1$4.setFromMatrixPosition(camera.matrixWorld);\n\n _v2$2.setFromMatrixPosition(this.matrixWorld);\n\n var distance = _v1$4.distanceTo(_v2$2);\n\n levels[0].object.visible = true;\n\n for (var i = 1, l = levels.length; i < l; i++) {\n if (distance >= levels[i].distance) {\n levels[i - 1].object.visible = false;\n levels[i].object.visible = true;\n } else {\n break;\n }\n }\n\n for (; i < l; i++) {\n levels[i].object.visible = false;\n }\n }\n },\n toJSON: function toJSON(meta) {\n var data = Object3D.prototype.toJSON.call(this, meta);\n data.object.levels = [];\n var levels = this.levels;\n\n for (var i = 0, l = levels.length; i < l; i++) {\n var level = levels[i];\n data.object.levels.push({\n object: level.object.uuid,\n distance: level.distance\n });\n }\n\n return data;\n }\n});\n/**\n * @author mikael emtinger / http://gomo.se/\n * @author alteredq / http://alteredqualia.com/\n * @author ikerr / http://verold.com\n */\n\nfunction SkinnedMesh(geometry, material) {\n if (geometry && geometry.isGeometry) {\n console.error('THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.');\n }\n\n Mesh.call(this, geometry, material);\n this.type = 'SkinnedMesh';\n this.bindMode = 'attached';\n this.bindMatrix = new Matrix4();\n this.bindMatrixInverse = new Matrix4();\n}\n\nSkinnedMesh.prototype = Object.assign(Object.create(Mesh.prototype), {\n constructor: SkinnedMesh,\n isSkinnedMesh: true,\n bind: function bind(skeleton, bindMatrix) {\n this.skeleton = skeleton;\n\n if (bindMatrix === undefined) {\n this.updateMatrixWorld(true);\n this.skeleton.calculateInverses();\n bindMatrix = this.matrixWorld;\n }\n\n this.bindMatrix.copy(bindMatrix);\n this.bindMatrixInverse.getInverse(bindMatrix);\n },\n pose: function pose() {\n this.skeleton.pose();\n },\n normalizeSkinWeights: function normalizeSkinWeights() {\n var vector = new Vector4();\n var skinWeight = this.geometry.attributes.skinWeight;\n\n for (var i = 0, l = skinWeight.count; i < l; i++) {\n vector.x = skinWeight.getX(i);\n vector.y = skinWeight.getY(i);\n vector.z = skinWeight.getZ(i);\n vector.w = skinWeight.getW(i);\n var scale = 1.0 / vector.manhattanLength();\n\n if (scale !== Infinity) {\n vector.multiplyScalar(scale);\n } else {\n vector.set(1, 0, 0, 0); // do something reasonable\n }\n\n skinWeight.setXYZW(i, vector.x, vector.y, vector.z, vector.w);\n }\n },\n updateMatrixWorld: function updateMatrixWorld(force) {\n Mesh.prototype.updateMatrixWorld.call(this, force);\n\n if (this.bindMode === 'attached') {\n this.bindMatrixInverse.getInverse(this.matrixWorld);\n } else if (this.bindMode === 'detached') {\n this.bindMatrixInverse.getInverse(this.bindMatrix);\n } else {\n console.warn('THREE.SkinnedMesh: Unrecognized bindMode: ' + this.bindMode);\n }\n },\n clone: function clone() {\n return new this.constructor(this.geometry, this.material).copy(this);\n }\n});\n/**\n * @author mikael emtinger / http://gomo.se/\n * @author alteredq / http://alteredqualia.com/\n * @author michael guerrero / http://realitymeltdown.com\n * @author ikerr / http://verold.com\n */\n\nvar _offsetMatrix = new Matrix4();\n\nvar _identityMatrix = new Matrix4();\n\nfunction Skeleton(bones, boneInverses) {\n // copy the bone array\n bones = bones || [];\n this.bones = bones.slice(0);\n this.boneMatrices = new Float32Array(this.bones.length * 16);\n this.frame = -1; // use the supplied bone inverses or calculate the inverses\n\n if (boneInverses === undefined) {\n this.calculateInverses();\n } else {\n if (this.bones.length === boneInverses.length) {\n this.boneInverses = boneInverses.slice(0);\n } else {\n console.warn('THREE.Skeleton boneInverses is the wrong length.');\n this.boneInverses = [];\n\n for (var i = 0, il = this.bones.length; i < il; i++) {\n this.boneInverses.push(new Matrix4());\n }\n }\n }\n}\n\nObject.assign(Skeleton.prototype, {\n calculateInverses: function calculateInverses() {\n this.boneInverses = [];\n\n for (var i = 0, il = this.bones.length; i < il; i++) {\n var inverse = new Matrix4();\n\n if (this.bones[i]) {\n inverse.getInverse(this.bones[i].matrixWorld);\n }\n\n this.boneInverses.push(inverse);\n }\n },\n pose: function pose() {\n var bone, i, il; // recover the bind-time world matrices\n\n for (i = 0, il = this.bones.length; i < il; i++) {\n bone = this.bones[i];\n\n if (bone) {\n bone.matrixWorld.getInverse(this.boneInverses[i]);\n }\n } // compute the local matrices, positions, rotations and scales\n\n\n for (i = 0, il = this.bones.length; i < il; i++) {\n bone = this.bones[i];\n\n if (bone) {\n if (bone.parent && bone.parent.isBone) {\n bone.matrix.getInverse(bone.parent.matrixWorld);\n bone.matrix.multiply(bone.matrixWorld);\n } else {\n bone.matrix.copy(bone.matrixWorld);\n }\n\n bone.matrix.decompose(bone.position, bone.quaternion, bone.scale);\n }\n }\n },\n update: function update() {\n var bones = this.bones;\n var boneInverses = this.boneInverses;\n var boneMatrices = this.boneMatrices;\n var boneTexture = this.boneTexture; // flatten bone matrices to array\n\n for (var i = 0, il = bones.length; i < il; i++) {\n // compute the offset between the current and the original transform\n var matrix = bones[i] ? bones[i].matrixWorld : _identityMatrix;\n\n _offsetMatrix.multiplyMatrices(matrix, boneInverses[i]);\n\n _offsetMatrix.toArray(boneMatrices, i * 16);\n }\n\n if (boneTexture !== undefined) {\n boneTexture.needsUpdate = true;\n }\n },\n clone: function clone() {\n return new Skeleton(this.bones, this.boneInverses);\n },\n getBoneByName: function getBoneByName(name) {\n for (var i = 0, il = this.bones.length; i < il; i++) {\n var bone = this.bones[i];\n\n if (bone.name === name) {\n return bone;\n }\n }\n\n return undefined;\n }\n});\n/**\n * @author mikael emtinger / http://gomo.se/\n * @author alteredq / http://alteredqualia.com/\n * @author ikerr / http://verold.com\n */\n\nfunction Bone() {\n Object3D.call(this);\n this.type = 'Bone';\n}\n\nBone.prototype = Object.assign(Object.create(Object3D.prototype), {\n constructor: Bone,\n isBone: true\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction InstancedMesh(geometry, material, count) {\n Mesh.call(this, geometry, material);\n this.instanceMatrix = new BufferAttribute(new Float32Array(count * 16), 16);\n this.count = count;\n}\n\nInstancedMesh.prototype = Object.assign(Object.create(Mesh.prototype), {\n constructor: InstancedMesh,\n isInstancedMesh: true,\n raycast: function raycast() {},\n setMatrixAt: function setMatrixAt(index, matrix) {\n matrix.toArray(this.instanceMatrix.array, index * 16);\n },\n updateMorphTargets: function updateMorphTargets() {}\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author alteredq / http://alteredqualia.com/\n *\n * parameters = {\n * color: ,\n * opacity: ,\n *\n * linewidth: ,\n * linecap: \"round\",\n * linejoin: \"round\"\n * }\n */\n\nfunction LineBasicMaterial(parameters) {\n Material.call(this);\n this.type = 'LineBasicMaterial';\n this.color = new Color(0xffffff);\n this.linewidth = 1;\n this.linecap = 'round';\n this.linejoin = 'round';\n this.setValues(parameters);\n}\n\nLineBasicMaterial.prototype = Object.create(Material.prototype);\nLineBasicMaterial.prototype.constructor = LineBasicMaterial;\nLineBasicMaterial.prototype.isLineBasicMaterial = true;\n\nLineBasicMaterial.prototype.copy = function (source) {\n Material.prototype.copy.call(this, source);\n this.color.copy(source.color);\n this.linewidth = source.linewidth;\n this.linecap = source.linecap;\n this.linejoin = source.linejoin;\n return this;\n};\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nvar _start = new Vector3();\n\nvar _end = new Vector3();\n\nvar _inverseMatrix$1 = new Matrix4();\n\nvar _ray$1 = new Ray();\n\nvar _sphere$2 = new Sphere();\n\nfunction Line(geometry, material, mode) {\n if (mode === 1) {\n console.error('THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead.');\n }\n\n Object3D.call(this);\n this.type = 'Line';\n this.geometry = geometry !== undefined ? geometry : new BufferGeometry();\n this.material = material !== undefined ? material : new LineBasicMaterial({\n color: Math.random() * 0xffffff\n });\n}\n\nLine.prototype = Object.assign(Object.create(Object3D.prototype), {\n constructor: Line,\n isLine: true,\n computeLineDistances: function computeLineDistances() {\n var geometry = this.geometry;\n\n if (geometry.isBufferGeometry) {\n // we assume non-indexed geometry\n if (geometry.index === null) {\n var positionAttribute = geometry.attributes.position;\n var lineDistances = [0];\n\n for (var i = 1, l = positionAttribute.count; i < l; i++) {\n _start.fromBufferAttribute(positionAttribute, i - 1);\n\n _end.fromBufferAttribute(positionAttribute, i);\n\n lineDistances[i] = lineDistances[i - 1];\n lineDistances[i] += _start.distanceTo(_end);\n }\n\n geometry.setAttribute('lineDistance', new Float32BufferAttribute(lineDistances, 1));\n } else {\n console.warn('THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.');\n }\n } else if (geometry.isGeometry) {\n var vertices = geometry.vertices;\n var lineDistances = geometry.lineDistances;\n lineDistances[0] = 0;\n\n for (var i = 1, l = vertices.length; i < l; i++) {\n lineDistances[i] = lineDistances[i - 1];\n lineDistances[i] += vertices[i - 1].distanceTo(vertices[i]);\n }\n }\n\n return this;\n },\n raycast: function raycast(raycaster, intersects) {\n var precision = raycaster.linePrecision;\n var geometry = this.geometry;\n var matrixWorld = this.matrixWorld; // Checking boundingSphere distance to ray\n\n if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n\n _sphere$2.copy(geometry.boundingSphere);\n\n _sphere$2.applyMatrix4(matrixWorld);\n\n _sphere$2.radius += precision;\n if (raycaster.ray.intersectsSphere(_sphere$2) === false) return; //\n\n _inverseMatrix$1.getInverse(matrixWorld);\n\n _ray$1.copy(raycaster.ray).applyMatrix4(_inverseMatrix$1);\n\n var localPrecision = precision / ((this.scale.x + this.scale.y + this.scale.z) / 3);\n var localPrecisionSq = localPrecision * localPrecision;\n var vStart = new Vector3();\n var vEnd = new Vector3();\n var interSegment = new Vector3();\n var interRay = new Vector3();\n var step = this && this.isLineSegments ? 2 : 1;\n\n if (geometry.isBufferGeometry) {\n var index = geometry.index;\n var attributes = geometry.attributes;\n var positions = attributes.position.array;\n\n if (index !== null) {\n var indices = index.array;\n\n for (var i = 0, l = indices.length - 1; i < l; i += step) {\n var a = indices[i];\n var b = indices[i + 1];\n vStart.fromArray(positions, a * 3);\n vEnd.fromArray(positions, b * 3);\n\n var distSq = _ray$1.distanceSqToSegment(vStart, vEnd, interRay, interSegment);\n\n if (distSq > localPrecisionSq) continue;\n interRay.applyMatrix4(this.matrixWorld); //Move back to world space for distance calculation\n\n var distance = raycaster.ray.origin.distanceTo(interRay);\n if (distance < raycaster.near || distance > raycaster.far) continue;\n intersects.push({\n distance: distance,\n // What do we want? intersection point on the ray or on the segment??\n // point: raycaster.ray.at( distance ),\n point: interSegment.clone().applyMatrix4(this.matrixWorld),\n index: i,\n face: null,\n faceIndex: null,\n object: this\n });\n }\n } else {\n for (var i = 0, l = positions.length / 3 - 1; i < l; i += step) {\n vStart.fromArray(positions, 3 * i);\n vEnd.fromArray(positions, 3 * i + 3);\n\n var distSq = _ray$1.distanceSqToSegment(vStart, vEnd, interRay, interSegment);\n\n if (distSq > localPrecisionSq) continue;\n interRay.applyMatrix4(this.matrixWorld); //Move back to world space for distance calculation\n\n var distance = raycaster.ray.origin.distanceTo(interRay);\n if (distance < raycaster.near || distance > raycaster.far) continue;\n intersects.push({\n distance: distance,\n // What do we want? intersection point on the ray or on the segment??\n // point: raycaster.ray.at( distance ),\n point: interSegment.clone().applyMatrix4(this.matrixWorld),\n index: i,\n face: null,\n faceIndex: null,\n object: this\n });\n }\n }\n } else if (geometry.isGeometry) {\n var vertices = geometry.vertices;\n var nbVertices = vertices.length;\n\n for (var i = 0; i < nbVertices - 1; i += step) {\n var distSq = _ray$1.distanceSqToSegment(vertices[i], vertices[i + 1], interRay, interSegment);\n\n if (distSq > localPrecisionSq) continue;\n interRay.applyMatrix4(this.matrixWorld); //Move back to world space for distance calculation\n\n var distance = raycaster.ray.origin.distanceTo(interRay);\n if (distance < raycaster.near || distance > raycaster.far) continue;\n intersects.push({\n distance: distance,\n // What do we want? intersection point on the ray or on the segment??\n // point: raycaster.ray.at( distance ),\n point: interSegment.clone().applyMatrix4(this.matrixWorld),\n index: i,\n face: null,\n faceIndex: null,\n object: this\n });\n }\n }\n },\n clone: function clone() {\n return new this.constructor(this.geometry, this.material).copy(this);\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nvar _start$1 = new Vector3();\n\nvar _end$1 = new Vector3();\n\nfunction LineSegments(geometry, material) {\n Line.call(this, geometry, material);\n this.type = 'LineSegments';\n}\n\nLineSegments.prototype = Object.assign(Object.create(Line.prototype), {\n constructor: LineSegments,\n isLineSegments: true,\n computeLineDistances: function computeLineDistances() {\n var geometry = this.geometry;\n\n if (geometry.isBufferGeometry) {\n // we assume non-indexed geometry\n if (geometry.index === null) {\n var positionAttribute = geometry.attributes.position;\n var lineDistances = [];\n\n for (var i = 0, l = positionAttribute.count; i < l; i += 2) {\n _start$1.fromBufferAttribute(positionAttribute, i);\n\n _end$1.fromBufferAttribute(positionAttribute, i + 1);\n\n lineDistances[i] = i === 0 ? 0 : lineDistances[i - 1];\n lineDistances[i + 1] = lineDistances[i] + _start$1.distanceTo(_end$1);\n }\n\n geometry.setAttribute('lineDistance', new Float32BufferAttribute(lineDistances, 1));\n } else {\n console.warn('THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.');\n }\n } else if (geometry.isGeometry) {\n var vertices = geometry.vertices;\n var lineDistances = geometry.lineDistances;\n\n for (var i = 0, l = vertices.length; i < l; i += 2) {\n _start$1.copy(vertices[i]);\n\n _end$1.copy(vertices[i + 1]);\n\n lineDistances[i] = i === 0 ? 0 : lineDistances[i - 1];\n lineDistances[i + 1] = lineDistances[i] + _start$1.distanceTo(_end$1);\n }\n }\n\n return this;\n }\n});\n/**\n * @author mgreter / http://github.com/mgreter\n */\n\nfunction LineLoop(geometry, material) {\n Line.call(this, geometry, material);\n this.type = 'LineLoop';\n}\n\nLineLoop.prototype = Object.assign(Object.create(Line.prototype), {\n constructor: LineLoop,\n isLineLoop: true\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author alteredq / http://alteredqualia.com/\n *\n * parameters = {\n * color: ,\n * opacity: ,\n * map: new THREE.Texture( ),\n * alphaMap: new THREE.Texture( ),\n *\n * size: ,\n * sizeAttenuation: \n *\n * morphTargets: \n * }\n */\n\nfunction PointsMaterial(parameters) {\n Material.call(this);\n this.type = 'PointsMaterial';\n this.color = new Color(0xffffff);\n this.map = null;\n this.alphaMap = null;\n this.size = 1;\n this.sizeAttenuation = true;\n this.morphTargets = false;\n this.setValues(parameters);\n}\n\nPointsMaterial.prototype = Object.create(Material.prototype);\nPointsMaterial.prototype.constructor = PointsMaterial;\nPointsMaterial.prototype.isPointsMaterial = true;\n\nPointsMaterial.prototype.copy = function (source) {\n Material.prototype.copy.call(this, source);\n this.color.copy(source.color);\n this.map = source.map;\n this.alphaMap = source.alphaMap;\n this.size = source.size;\n this.sizeAttenuation = source.sizeAttenuation;\n this.morphTargets = source.morphTargets;\n return this;\n};\n/**\n * @author alteredq / http://alteredqualia.com/\n */\n\n\nvar _inverseMatrix$2 = new Matrix4();\n\nvar _ray$2 = new Ray();\n\nvar _sphere$3 = new Sphere();\n\nvar _position$1 = new Vector3();\n\nfunction Points(geometry, material) {\n Object3D.call(this);\n this.type = 'Points';\n this.geometry = geometry !== undefined ? geometry : new BufferGeometry();\n this.material = material !== undefined ? material : new PointsMaterial({\n color: Math.random() * 0xffffff\n });\n this.updateMorphTargets();\n}\n\nPoints.prototype = Object.assign(Object.create(Object3D.prototype), {\n constructor: Points,\n isPoints: true,\n raycast: function raycast(raycaster, intersects) {\n var geometry = this.geometry;\n var matrixWorld = this.matrixWorld;\n var threshold = raycaster.params.Points.threshold; // Checking boundingSphere distance to ray\n\n if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n\n _sphere$3.copy(geometry.boundingSphere);\n\n _sphere$3.applyMatrix4(matrixWorld);\n\n _sphere$3.radius += threshold;\n if (raycaster.ray.intersectsSphere(_sphere$3) === false) return; //\n\n _inverseMatrix$2.getInverse(matrixWorld);\n\n _ray$2.copy(raycaster.ray).applyMatrix4(_inverseMatrix$2);\n\n var localThreshold = threshold / ((this.scale.x + this.scale.y + this.scale.z) / 3);\n var localThresholdSq = localThreshold * localThreshold;\n\n if (geometry.isBufferGeometry) {\n var index = geometry.index;\n var attributes = geometry.attributes;\n var positions = attributes.position.array;\n\n if (index !== null) {\n var indices = index.array;\n\n for (var i = 0, il = indices.length; i < il; i++) {\n var a = indices[i];\n\n _position$1.fromArray(positions, a * 3);\n\n testPoint(_position$1, a, localThresholdSq, matrixWorld, raycaster, intersects, this);\n }\n } else {\n for (var i = 0, l = positions.length / 3; i < l; i++) {\n _position$1.fromArray(positions, i * 3);\n\n testPoint(_position$1, i, localThresholdSq, matrixWorld, raycaster, intersects, this);\n }\n }\n } else {\n var vertices = geometry.vertices;\n\n for (var i = 0, l = vertices.length; i < l; i++) {\n testPoint(vertices[i], i, localThresholdSq, matrixWorld, raycaster, intersects, this);\n }\n }\n },\n updateMorphTargets: function updateMorphTargets() {\n var geometry = this.geometry;\n var m, ml, name;\n\n if (geometry.isBufferGeometry) {\n var morphAttributes = geometry.morphAttributes;\n var keys = Object.keys(morphAttributes);\n\n if (keys.length > 0) {\n var morphAttribute = morphAttributes[keys[0]];\n\n if (morphAttribute !== undefined) {\n this.morphTargetInfluences = [];\n this.morphTargetDictionary = {};\n\n for (m = 0, ml = morphAttribute.length; m < ml; m++) {\n name = morphAttribute[m].name || String(m);\n this.morphTargetInfluences.push(0);\n this.morphTargetDictionary[name] = m;\n }\n }\n }\n } else {\n var morphTargets = geometry.morphTargets;\n\n if (morphTargets !== undefined && morphTargets.length > 0) {\n console.error('THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.');\n }\n }\n },\n clone: function clone() {\n return new this.constructor(this.geometry, this.material).copy(this);\n }\n});\n\nfunction testPoint(point, index, localThresholdSq, matrixWorld, raycaster, intersects, object) {\n var rayPointDistanceSq = _ray$2.distanceSqToPoint(point);\n\n if (rayPointDistanceSq < localThresholdSq) {\n var intersectPoint = new Vector3();\n\n _ray$2.closestPointToPoint(point, intersectPoint);\n\n intersectPoint.applyMatrix4(matrixWorld);\n var distance = raycaster.ray.origin.distanceTo(intersectPoint);\n if (distance < raycaster.near || distance > raycaster.far) return;\n intersects.push({\n distance: distance,\n distanceToRay: Math.sqrt(rayPointDistanceSq),\n point: intersectPoint,\n index: index,\n face: null,\n object: object\n });\n }\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction VideoTexture(video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy) {\n Texture.call(this, video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy);\n this.format = format !== undefined ? format : RGBFormat;\n this.minFilter = minFilter !== undefined ? minFilter : LinearFilter;\n this.magFilter = magFilter !== undefined ? magFilter : LinearFilter;\n this.generateMipmaps = false;\n}\n\nVideoTexture.prototype = Object.assign(Object.create(Texture.prototype), {\n constructor: VideoTexture,\n isVideoTexture: true,\n update: function update() {\n var video = this.image;\n\n if (video.readyState >= video.HAVE_CURRENT_DATA) {\n this.needsUpdate = true;\n }\n }\n});\n/**\n * @author alteredq / http://alteredqualia.com/\n */\n\nfunction CompressedTexture(mipmaps, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, encoding) {\n Texture.call(this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding);\n this.image = {\n width: width,\n height: height\n };\n this.mipmaps = mipmaps; // no flipping for cube textures\n // (also flipping doesn't work for compressed textures )\n\n this.flipY = false; // can't generate mipmaps for compressed textures\n // mips must be embedded in DDS files\n\n this.generateMipmaps = false;\n}\n\nCompressedTexture.prototype = Object.create(Texture.prototype);\nCompressedTexture.prototype.constructor = CompressedTexture;\nCompressedTexture.prototype.isCompressedTexture = true;\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction CanvasTexture(canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy) {\n Texture.call(this, canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy);\n this.needsUpdate = true;\n}\n\nCanvasTexture.prototype = Object.create(Texture.prototype);\nCanvasTexture.prototype.constructor = CanvasTexture;\nCanvasTexture.prototype.isCanvasTexture = true;\n/**\n * @author Matt DesLauriers / @mattdesl\n * @author atix / arthursilber.de\n */\n\nfunction DepthTexture(width, height, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, format) {\n format = format !== undefined ? format : DepthFormat;\n\n if (format !== DepthFormat && format !== DepthStencilFormat) {\n throw new Error('DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat');\n }\n\n if (type === undefined && format === DepthFormat) type = UnsignedShortType;\n if (type === undefined && format === DepthStencilFormat) type = UnsignedInt248Type;\n Texture.call(this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy);\n this.image = {\n width: width,\n height: height\n };\n this.magFilter = magFilter !== undefined ? magFilter : NearestFilter;\n this.minFilter = minFilter !== undefined ? minFilter : NearestFilter;\n this.flipY = false;\n this.generateMipmaps = false;\n}\n\nDepthTexture.prototype = Object.create(Texture.prototype);\nDepthTexture.prototype.constructor = DepthTexture;\nDepthTexture.prototype.isDepthTexture = true;\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author Mugen87 / https://github.com/Mugen87\n */\n\nfunction WireframeGeometry(geometry) {\n BufferGeometry.call(this);\n this.type = 'WireframeGeometry'; // buffer\n\n var vertices = []; // helper variables\n\n var i, j, l, o, ol;\n var edge = [0, 0],\n edges = {},\n e,\n edge1,\n edge2;\n var key,\n keys = ['a', 'b', 'c'];\n var vertex; // different logic for Geometry and BufferGeometry\n\n if (geometry && geometry.isGeometry) {\n // create a data structure that contains all edges without duplicates\n var faces = geometry.faces;\n\n for (i = 0, l = faces.length; i < l; i++) {\n var face = faces[i];\n\n for (j = 0; j < 3; j++) {\n edge1 = face[keys[j]];\n edge2 = face[keys[(j + 1) % 3]];\n edge[0] = Math.min(edge1, edge2); // sorting prevents duplicates\n\n edge[1] = Math.max(edge1, edge2);\n key = edge[0] + ',' + edge[1];\n\n if (edges[key] === undefined) {\n edges[key] = {\n index1: edge[0],\n index2: edge[1]\n };\n }\n }\n } // generate vertices\n\n\n for (key in edges) {\n e = edges[key];\n vertex = geometry.vertices[e.index1];\n vertices.push(vertex.x, vertex.y, vertex.z);\n vertex = geometry.vertices[e.index2];\n vertices.push(vertex.x, vertex.y, vertex.z);\n }\n } else if (geometry && geometry.isBufferGeometry) {\n var position, indices, groups;\n var group, start, count;\n var index1, index2;\n vertex = new Vector3();\n\n if (geometry.index !== null) {\n // indexed BufferGeometry\n position = geometry.attributes.position;\n indices = geometry.index;\n groups = geometry.groups;\n\n if (groups.length === 0) {\n groups = [{\n start: 0,\n count: indices.count,\n materialIndex: 0\n }];\n } // create a data structure that contains all eges without duplicates\n\n\n for (o = 0, ol = groups.length; o < ol; ++o) {\n group = groups[o];\n start = group.start;\n count = group.count;\n\n for (i = start, l = start + count; i < l; i += 3) {\n for (j = 0; j < 3; j++) {\n edge1 = indices.getX(i + j);\n edge2 = indices.getX(i + (j + 1) % 3);\n edge[0] = Math.min(edge1, edge2); // sorting prevents duplicates\n\n edge[1] = Math.max(edge1, edge2);\n key = edge[0] + ',' + edge[1];\n\n if (edges[key] === undefined) {\n edges[key] = {\n index1: edge[0],\n index2: edge[1]\n };\n }\n }\n }\n } // generate vertices\n\n\n for (key in edges) {\n e = edges[key];\n vertex.fromBufferAttribute(position, e.index1);\n vertices.push(vertex.x, vertex.y, vertex.z);\n vertex.fromBufferAttribute(position, e.index2);\n vertices.push(vertex.x, vertex.y, vertex.z);\n }\n } else {\n // non-indexed BufferGeometry\n position = geometry.attributes.position;\n\n for (i = 0, l = position.count / 3; i < l; i++) {\n for (j = 0; j < 3; j++) {\n // three edges per triangle, an edge is represented as (index1, index2)\n // e.g. the first triangle has the following edges: (0,1),(1,2),(2,0)\n index1 = 3 * i + j;\n vertex.fromBufferAttribute(position, index1);\n vertices.push(vertex.x, vertex.y, vertex.z);\n index2 = 3 * i + (j + 1) % 3;\n vertex.fromBufferAttribute(position, index2);\n vertices.push(vertex.x, vertex.y, vertex.z);\n }\n }\n }\n } // build geometry\n\n\n this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n}\n\nWireframeGeometry.prototype = Object.create(BufferGeometry.prototype);\nWireframeGeometry.prototype.constructor = WireframeGeometry;\n/**\n * @author zz85 / https://github.com/zz85\n * @author Mugen87 / https://github.com/Mugen87\n *\n * Parametric Surfaces Geometry\n * based on the brilliant article by @prideout http://prideout.net/blog/?p=44\n */\n// ParametricGeometry\n\nfunction ParametricGeometry(func, slices, stacks) {\n Geometry.call(this);\n this.type = 'ParametricGeometry';\n this.parameters = {\n func: func,\n slices: slices,\n stacks: stacks\n };\n this.fromBufferGeometry(new ParametricBufferGeometry(func, slices, stacks));\n this.mergeVertices();\n}\n\nParametricGeometry.prototype = Object.create(Geometry.prototype);\nParametricGeometry.prototype.constructor = ParametricGeometry; // ParametricBufferGeometry\n\nfunction ParametricBufferGeometry(func, slices, stacks) {\n BufferGeometry.call(this);\n this.type = 'ParametricBufferGeometry';\n this.parameters = {\n func: func,\n slices: slices,\n stacks: stacks\n }; // buffers\n\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = [];\n var EPS = 0.00001;\n var normal = new Vector3();\n var p0 = new Vector3(),\n p1 = new Vector3();\n var pu = new Vector3(),\n pv = new Vector3();\n var i, j;\n\n if (func.length < 3) {\n console.error('THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.');\n } // generate vertices, normals and uvs\n\n\n var sliceCount = slices + 1;\n\n for (i = 0; i <= stacks; i++) {\n var v = i / stacks;\n\n for (j = 0; j <= slices; j++) {\n var u = j / slices; // vertex\n\n func(u, v, p0);\n vertices.push(p0.x, p0.y, p0.z); // normal\n // approximate tangent vectors via finite differences\n\n if (u - EPS >= 0) {\n func(u - EPS, v, p1);\n pu.subVectors(p0, p1);\n } else {\n func(u + EPS, v, p1);\n pu.subVectors(p1, p0);\n }\n\n if (v - EPS >= 0) {\n func(u, v - EPS, p1);\n pv.subVectors(p0, p1);\n } else {\n func(u, v + EPS, p1);\n pv.subVectors(p1, p0);\n } // cross product of tangent vectors returns surface normal\n\n\n normal.crossVectors(pu, pv).normalize();\n normals.push(normal.x, normal.y, normal.z); // uv\n\n uvs.push(u, v);\n }\n } // generate indices\n\n\n for (i = 0; i < stacks; i++) {\n for (j = 0; j < slices; j++) {\n var a = i * sliceCount + j;\n var b = i * sliceCount + j + 1;\n var c = (i + 1) * sliceCount + j + 1;\n var d = (i + 1) * sliceCount + j; // faces one and two\n\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n } // build geometry\n\n\n this.setIndex(indices);\n this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n this.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n this.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\n}\n\nParametricBufferGeometry.prototype = Object.create(BufferGeometry.prototype);\nParametricBufferGeometry.prototype.constructor = ParametricBufferGeometry;\n/**\n * @author clockworkgeek / https://github.com/clockworkgeek\n * @author timothypratley / https://github.com/timothypratley\n * @author WestLangley / http://github.com/WestLangley\n * @author Mugen87 / https://github.com/Mugen87\n */\n// PolyhedronGeometry\n\nfunction PolyhedronGeometry(vertices, indices, radius, detail) {\n Geometry.call(this);\n this.type = 'PolyhedronGeometry';\n this.parameters = {\n vertices: vertices,\n indices: indices,\n radius: radius,\n detail: detail\n };\n this.fromBufferGeometry(new PolyhedronBufferGeometry(vertices, indices, radius, detail));\n this.mergeVertices();\n}\n\nPolyhedronGeometry.prototype = Object.create(Geometry.prototype);\nPolyhedronGeometry.prototype.constructor = PolyhedronGeometry; // PolyhedronBufferGeometry\n\nfunction PolyhedronBufferGeometry(vertices, indices, radius, detail) {\n BufferGeometry.call(this);\n this.type = 'PolyhedronBufferGeometry';\n this.parameters = {\n vertices: vertices,\n indices: indices,\n radius: radius,\n detail: detail\n };\n radius = radius || 1;\n detail = detail || 0; // default buffer data\n\n var vertexBuffer = [];\n var uvBuffer = []; // the subdivision creates the vertex buffer data\n\n subdivide(detail); // all vertices should lie on a conceptual sphere with a given radius\n\n applyRadius(radius); // finally, create the uv data\n\n generateUVs(); // build non-indexed geometry\n\n this.setAttribute('position', new Float32BufferAttribute(vertexBuffer, 3));\n this.setAttribute('normal', new Float32BufferAttribute(vertexBuffer.slice(), 3));\n this.setAttribute('uv', new Float32BufferAttribute(uvBuffer, 2));\n\n if (detail === 0) {\n this.computeVertexNormals(); // flat normals\n } else {\n this.normalizeNormals(); // smooth normals\n } // helper functions\n\n\n function subdivide(detail) {\n var a = new Vector3();\n var b = new Vector3();\n var c = new Vector3(); // iterate over all faces and apply a subdivison with the given detail value\n\n for (var i = 0; i < indices.length; i += 3) {\n // get the vertices of the face\n getVertexByIndex(indices[i + 0], a);\n getVertexByIndex(indices[i + 1], b);\n getVertexByIndex(indices[i + 2], c); // perform subdivision\n\n subdivideFace(a, b, c, detail);\n }\n }\n\n function subdivideFace(a, b, c, detail) {\n var cols = Math.pow(2, detail); // we use this multidimensional array as a data structure for creating the subdivision\n\n var v = [];\n var i, j; // construct all of the vertices for this subdivision\n\n for (i = 0; i <= cols; i++) {\n v[i] = [];\n var aj = a.clone().lerp(c, i / cols);\n var bj = b.clone().lerp(c, i / cols);\n var rows = cols - i;\n\n for (j = 0; j <= rows; j++) {\n if (j === 0 && i === cols) {\n v[i][j] = aj;\n } else {\n v[i][j] = aj.clone().lerp(bj, j / rows);\n }\n }\n } // construct all of the faces\n\n\n for (i = 0; i < cols; i++) {\n for (j = 0; j < 2 * (cols - i) - 1; j++) {\n var k = Math.floor(j / 2);\n\n if (j % 2 === 0) {\n pushVertex(v[i][k + 1]);\n pushVertex(v[i + 1][k]);\n pushVertex(v[i][k]);\n } else {\n pushVertex(v[i][k + 1]);\n pushVertex(v[i + 1][k + 1]);\n pushVertex(v[i + 1][k]);\n }\n }\n }\n }\n\n function applyRadius(radius) {\n var vertex = new Vector3(); // iterate over the entire buffer and apply the radius to each vertex\n\n for (var i = 0; i < vertexBuffer.length; i += 3) {\n vertex.x = vertexBuffer[i + 0];\n vertex.y = vertexBuffer[i + 1];\n vertex.z = vertexBuffer[i + 2];\n vertex.normalize().multiplyScalar(radius);\n vertexBuffer[i + 0] = vertex.x;\n vertexBuffer[i + 1] = vertex.y;\n vertexBuffer[i + 2] = vertex.z;\n }\n }\n\n function generateUVs() {\n var vertex = new Vector3();\n\n for (var i = 0; i < vertexBuffer.length; i += 3) {\n vertex.x = vertexBuffer[i + 0];\n vertex.y = vertexBuffer[i + 1];\n vertex.z = vertexBuffer[i + 2];\n var u = azimuth(vertex) / 2 / Math.PI + 0.5;\n var v = inclination(vertex) / Math.PI + 0.5;\n uvBuffer.push(u, 1 - v);\n }\n\n correctUVs();\n correctSeam();\n }\n\n function correctSeam() {\n // handle case when face straddles the seam, see #3269\n for (var i = 0; i < uvBuffer.length; i += 6) {\n // uv data of a single face\n var x0 = uvBuffer[i + 0];\n var x1 = uvBuffer[i + 2];\n var x2 = uvBuffer[i + 4];\n var max = Math.max(x0, x1, x2);\n var min = Math.min(x0, x1, x2); // 0.9 is somewhat arbitrary\n\n if (max > 0.9 && min < 0.1) {\n if (x0 < 0.2) uvBuffer[i + 0] += 1;\n if (x1 < 0.2) uvBuffer[i + 2] += 1;\n if (x2 < 0.2) uvBuffer[i + 4] += 1;\n }\n }\n }\n\n function pushVertex(vertex) {\n vertexBuffer.push(vertex.x, vertex.y, vertex.z);\n }\n\n function getVertexByIndex(index, vertex) {\n var stride = index * 3;\n vertex.x = vertices[stride + 0];\n vertex.y = vertices[stride + 1];\n vertex.z = vertices[stride + 2];\n }\n\n function correctUVs() {\n var a = new Vector3();\n var b = new Vector3();\n var c = new Vector3();\n var centroid = new Vector3();\n var uvA = new Vector2();\n var uvB = new Vector2();\n var uvC = new Vector2();\n\n for (var i = 0, j = 0; i < vertexBuffer.length; i += 9, j += 6) {\n a.set(vertexBuffer[i + 0], vertexBuffer[i + 1], vertexBuffer[i + 2]);\n b.set(vertexBuffer[i + 3], vertexBuffer[i + 4], vertexBuffer[i + 5]);\n c.set(vertexBuffer[i + 6], vertexBuffer[i + 7], vertexBuffer[i + 8]);\n uvA.set(uvBuffer[j + 0], uvBuffer[j + 1]);\n uvB.set(uvBuffer[j + 2], uvBuffer[j + 3]);\n uvC.set(uvBuffer[j + 4], uvBuffer[j + 5]);\n centroid.copy(a).add(b).add(c).divideScalar(3);\n var azi = azimuth(centroid);\n correctUV(uvA, j + 0, a, azi);\n correctUV(uvB, j + 2, b, azi);\n correctUV(uvC, j + 4, c, azi);\n }\n }\n\n function correctUV(uv, stride, vector, azimuth) {\n if (azimuth < 0 && uv.x === 1) {\n uvBuffer[stride] = uv.x - 1;\n }\n\n if (vector.x === 0 && vector.z === 0) {\n uvBuffer[stride] = azimuth / 2 / Math.PI + 0.5;\n }\n } // Angle around the Y axis, counter-clockwise when looking from above.\n\n\n function azimuth(vector) {\n return Math.atan2(vector.z, -vector.x);\n } // Angle above the XZ plane.\n\n\n function inclination(vector) {\n return Math.atan2(-vector.y, Math.sqrt(vector.x * vector.x + vector.z * vector.z));\n }\n}\n\nPolyhedronBufferGeometry.prototype = Object.create(BufferGeometry.prototype);\nPolyhedronBufferGeometry.prototype.constructor = PolyhedronBufferGeometry;\n/**\n * @author timothypratley / https://github.com/timothypratley\n * @author Mugen87 / https://github.com/Mugen87\n */\n// TetrahedronGeometry\n\nfunction TetrahedronGeometry(radius, detail) {\n Geometry.call(this);\n this.type = 'TetrahedronGeometry';\n this.parameters = {\n radius: radius,\n detail: detail\n };\n this.fromBufferGeometry(new TetrahedronBufferGeometry(radius, detail));\n this.mergeVertices();\n}\n\nTetrahedronGeometry.prototype = Object.create(Geometry.prototype);\nTetrahedronGeometry.prototype.constructor = TetrahedronGeometry; // TetrahedronBufferGeometry\n\nfunction TetrahedronBufferGeometry(radius, detail) {\n var vertices = [1, 1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1];\n var indices = [2, 1, 0, 0, 3, 2, 1, 3, 0, 2, 3, 1];\n PolyhedronBufferGeometry.call(this, vertices, indices, radius, detail);\n this.type = 'TetrahedronBufferGeometry';\n this.parameters = {\n radius: radius,\n detail: detail\n };\n}\n\nTetrahedronBufferGeometry.prototype = Object.create(PolyhedronBufferGeometry.prototype);\nTetrahedronBufferGeometry.prototype.constructor = TetrahedronBufferGeometry;\n/**\n * @author timothypratley / https://github.com/timothypratley\n * @author Mugen87 / https://github.com/Mugen87\n */\n// OctahedronGeometry\n\nfunction OctahedronGeometry(radius, detail) {\n Geometry.call(this);\n this.type = 'OctahedronGeometry';\n this.parameters = {\n radius: radius,\n detail: detail\n };\n this.fromBufferGeometry(new OctahedronBufferGeometry(radius, detail));\n this.mergeVertices();\n}\n\nOctahedronGeometry.prototype = Object.create(Geometry.prototype);\nOctahedronGeometry.prototype.constructor = OctahedronGeometry; // OctahedronBufferGeometry\n\nfunction OctahedronBufferGeometry(radius, detail) {\n var vertices = [1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1];\n var indices = [0, 2, 4, 0, 4, 3, 0, 3, 5, 0, 5, 2, 1, 2, 5, 1, 5, 3, 1, 3, 4, 1, 4, 2];\n PolyhedronBufferGeometry.call(this, vertices, indices, radius, detail);\n this.type = 'OctahedronBufferGeometry';\n this.parameters = {\n radius: radius,\n detail: detail\n };\n}\n\nOctahedronBufferGeometry.prototype = Object.create(PolyhedronBufferGeometry.prototype);\nOctahedronBufferGeometry.prototype.constructor = OctahedronBufferGeometry;\n/**\n * @author timothypratley / https://github.com/timothypratley\n * @author Mugen87 / https://github.com/Mugen87\n */\n// IcosahedronGeometry\n\nfunction IcosahedronGeometry(radius, detail) {\n Geometry.call(this);\n this.type = 'IcosahedronGeometry';\n this.parameters = {\n radius: radius,\n detail: detail\n };\n this.fromBufferGeometry(new IcosahedronBufferGeometry(radius, detail));\n this.mergeVertices();\n}\n\nIcosahedronGeometry.prototype = Object.create(Geometry.prototype);\nIcosahedronGeometry.prototype.constructor = IcosahedronGeometry; // IcosahedronBufferGeometry\n\nfunction IcosahedronBufferGeometry(radius, detail) {\n var t = (1 + Math.sqrt(5)) / 2;\n var vertices = [-1, t, 0, 1, t, 0, -1, -t, 0, 1, -t, 0, 0, -1, t, 0, 1, t, 0, -1, -t, 0, 1, -t, t, 0, -1, t, 0, 1, -t, 0, -1, -t, 0, 1];\n var indices = [0, 11, 5, 0, 5, 1, 0, 1, 7, 0, 7, 10, 0, 10, 11, 1, 5, 9, 5, 11, 4, 11, 10, 2, 10, 7, 6, 7, 1, 8, 3, 9, 4, 3, 4, 2, 3, 2, 6, 3, 6, 8, 3, 8, 9, 4, 9, 5, 2, 4, 11, 6, 2, 10, 8, 6, 7, 9, 8, 1];\n PolyhedronBufferGeometry.call(this, vertices, indices, radius, detail);\n this.type = 'IcosahedronBufferGeometry';\n this.parameters = {\n radius: radius,\n detail: detail\n };\n}\n\nIcosahedronBufferGeometry.prototype = Object.create(PolyhedronBufferGeometry.prototype);\nIcosahedronBufferGeometry.prototype.constructor = IcosahedronBufferGeometry;\n/**\n * @author Abe Pazos / https://hamoid.com\n * @author Mugen87 / https://github.com/Mugen87\n */\n// DodecahedronGeometry\n\nfunction DodecahedronGeometry(radius, detail) {\n Geometry.call(this);\n this.type = 'DodecahedronGeometry';\n this.parameters = {\n radius: radius,\n detail: detail\n };\n this.fromBufferGeometry(new DodecahedronBufferGeometry(radius, detail));\n this.mergeVertices();\n}\n\nDodecahedronGeometry.prototype = Object.create(Geometry.prototype);\nDodecahedronGeometry.prototype.constructor = DodecahedronGeometry; // DodecahedronBufferGeometry\n\nfunction DodecahedronBufferGeometry(radius, detail) {\n var t = (1 + Math.sqrt(5)) / 2;\n var r = 1 / t;\n var vertices = [// (±1, ±1, ±1)\n -1, -1, -1, -1, -1, 1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 1, 1, 1, -1, 1, 1, 1, // (0, ±1/φ, ±φ)\n 0, -r, -t, 0, -r, t, 0, r, -t, 0, r, t, // (±1/φ, ±φ, 0)\n -r, -t, 0, -r, t, 0, r, -t, 0, r, t, 0, // (±φ, 0, ±1/φ)\n -t, 0, -r, t, 0, -r, -t, 0, r, t, 0, r];\n var indices = [3, 11, 7, 3, 7, 15, 3, 15, 13, 7, 19, 17, 7, 17, 6, 7, 6, 15, 17, 4, 8, 17, 8, 10, 17, 10, 6, 8, 0, 16, 8, 16, 2, 8, 2, 10, 0, 12, 1, 0, 1, 18, 0, 18, 16, 6, 10, 2, 6, 2, 13, 6, 13, 15, 2, 16, 18, 2, 18, 3, 2, 3, 13, 18, 1, 9, 18, 9, 11, 18, 11, 3, 4, 14, 12, 4, 12, 0, 4, 0, 8, 11, 9, 5, 11, 5, 19, 11, 19, 7, 19, 5, 14, 19, 14, 4, 19, 4, 17, 1, 12, 14, 1, 14, 5, 1, 5, 9];\n PolyhedronBufferGeometry.call(this, vertices, indices, radius, detail);\n this.type = 'DodecahedronBufferGeometry';\n this.parameters = {\n radius: radius,\n detail: detail\n };\n}\n\nDodecahedronBufferGeometry.prototype = Object.create(PolyhedronBufferGeometry.prototype);\nDodecahedronBufferGeometry.prototype.constructor = DodecahedronBufferGeometry;\n/**\n * @author oosmoxiecode / https://github.com/oosmoxiecode\n * @author WestLangley / https://github.com/WestLangley\n * @author zz85 / https://github.com/zz85\n * @author miningold / https://github.com/miningold\n * @author jonobr1 / https://github.com/jonobr1\n * @author Mugen87 / https://github.com/Mugen87\n *\n */\n// TubeGeometry\n\nfunction TubeGeometry(path, tubularSegments, radius, radialSegments, closed, taper) {\n Geometry.call(this);\n this.type = 'TubeGeometry';\n this.parameters = {\n path: path,\n tubularSegments: tubularSegments,\n radius: radius,\n radialSegments: radialSegments,\n closed: closed\n };\n if (taper !== undefined) console.warn('THREE.TubeGeometry: taper has been removed.');\n var bufferGeometry = new TubeBufferGeometry(path, tubularSegments, radius, radialSegments, closed); // expose internals\n\n this.tangents = bufferGeometry.tangents;\n this.normals = bufferGeometry.normals;\n this.binormals = bufferGeometry.binormals; // create geometry\n\n this.fromBufferGeometry(bufferGeometry);\n this.mergeVertices();\n}\n\nTubeGeometry.prototype = Object.create(Geometry.prototype);\nTubeGeometry.prototype.constructor = TubeGeometry; // TubeBufferGeometry\n\nfunction TubeBufferGeometry(path, tubularSegments, radius, radialSegments, closed) {\n BufferGeometry.call(this);\n this.type = 'TubeBufferGeometry';\n this.parameters = {\n path: path,\n tubularSegments: tubularSegments,\n radius: radius,\n radialSegments: radialSegments,\n closed: closed\n };\n tubularSegments = tubularSegments || 64;\n radius = radius || 1;\n radialSegments = radialSegments || 8;\n closed = closed || false;\n var frames = path.computeFrenetFrames(tubularSegments, closed); // expose internals\n\n this.tangents = frames.tangents;\n this.normals = frames.normals;\n this.binormals = frames.binormals; // helper variables\n\n var vertex = new Vector3();\n var normal = new Vector3();\n var uv = new Vector2();\n var P = new Vector3();\n var i, j; // buffer\n\n var vertices = [];\n var normals = [];\n var uvs = [];\n var indices = []; // create buffer data\n\n generateBufferData(); // build geometry\n\n this.setIndex(indices);\n this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n this.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n this.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); // functions\n\n function generateBufferData() {\n for (i = 0; i < tubularSegments; i++) {\n generateSegment(i);\n } // if the geometry is not closed, generate the last row of vertices and normals\n // at the regular position on the given path\n //\n // if the geometry is closed, duplicate the first row of vertices and normals (uvs will differ)\n\n\n generateSegment(closed === false ? tubularSegments : 0); // uvs are generated in a separate function.\n // this makes it easy compute correct values for closed geometries\n\n generateUVs(); // finally create faces\n\n generateIndices();\n }\n\n function generateSegment(i) {\n // we use getPointAt to sample evenly distributed points from the given path\n P = path.getPointAt(i / tubularSegments, P); // retrieve corresponding normal and binormal\n\n var N = frames.normals[i];\n var B = frames.binormals[i]; // generate normals and vertices for the current segment\n\n for (j = 0; j <= radialSegments; j++) {\n var v = j / radialSegments * Math.PI * 2;\n var sin = Math.sin(v);\n var cos = -Math.cos(v); // normal\n\n normal.x = cos * N.x + sin * B.x;\n normal.y = cos * N.y + sin * B.y;\n normal.z = cos * N.z + sin * B.z;\n normal.normalize();\n normals.push(normal.x, normal.y, normal.z); // vertex\n\n vertex.x = P.x + radius * normal.x;\n vertex.y = P.y + radius * normal.y;\n vertex.z = P.z + radius * normal.z;\n vertices.push(vertex.x, vertex.y, vertex.z);\n }\n }\n\n function generateIndices() {\n for (j = 1; j <= tubularSegments; j++) {\n for (i = 1; i <= radialSegments; i++) {\n var a = (radialSegments + 1) * (j - 1) + (i - 1);\n var b = (radialSegments + 1) * j + (i - 1);\n var c = (radialSegments + 1) * j + i;\n var d = (radialSegments + 1) * (j - 1) + i; // faces\n\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n }\n }\n\n function generateUVs() {\n for (i = 0; i <= tubularSegments; i++) {\n for (j = 0; j <= radialSegments; j++) {\n uv.x = i / tubularSegments;\n uv.y = j / radialSegments;\n uvs.push(uv.x, uv.y);\n }\n }\n }\n}\n\nTubeBufferGeometry.prototype = Object.create(BufferGeometry.prototype);\nTubeBufferGeometry.prototype.constructor = TubeBufferGeometry;\n\nTubeBufferGeometry.prototype.toJSON = function () {\n var data = BufferGeometry.prototype.toJSON.call(this);\n data.path = this.parameters.path.toJSON();\n return data;\n};\n/**\n * @author oosmoxiecode\n * @author Mugen87 / https://github.com/Mugen87\n *\n * based on http://www.blackpawn.com/texts/pqtorus/\n */\n// TorusKnotGeometry\n\n\nfunction TorusKnotGeometry(radius, tube, tubularSegments, radialSegments, p, q, heightScale) {\n Geometry.call(this);\n this.type = 'TorusKnotGeometry';\n this.parameters = {\n radius: radius,\n tube: tube,\n tubularSegments: tubularSegments,\n radialSegments: radialSegments,\n p: p,\n q: q\n };\n if (heightScale !== undefined) console.warn('THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.');\n this.fromBufferGeometry(new TorusKnotBufferGeometry(radius, tube, tubularSegments, radialSegments, p, q));\n this.mergeVertices();\n}\n\nTorusKnotGeometry.prototype = Object.create(Geometry.prototype);\nTorusKnotGeometry.prototype.constructor = TorusKnotGeometry; // TorusKnotBufferGeometry\n\nfunction TorusKnotBufferGeometry(radius, tube, tubularSegments, radialSegments, p, q) {\n BufferGeometry.call(this);\n this.type = 'TorusKnotBufferGeometry';\n this.parameters = {\n radius: radius,\n tube: tube,\n tubularSegments: tubularSegments,\n radialSegments: radialSegments,\n p: p,\n q: q\n };\n radius = radius || 1;\n tube = tube || 0.4;\n tubularSegments = Math.floor(tubularSegments) || 64;\n radialSegments = Math.floor(radialSegments) || 8;\n p = p || 2;\n q = q || 3; // buffers\n\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = []; // helper variables\n\n var i, j;\n var vertex = new Vector3();\n var normal = new Vector3();\n var P1 = new Vector3();\n var P2 = new Vector3();\n var B = new Vector3();\n var T = new Vector3();\n var N = new Vector3(); // generate vertices, normals and uvs\n\n for (i = 0; i <= tubularSegments; ++i) {\n // the radian \"u\" is used to calculate the position on the torus curve of the current tubular segement\n var u = i / tubularSegments * p * Math.PI * 2; // now we calculate two points. P1 is our current position on the curve, P2 is a little farther ahead.\n // these points are used to create a special \"coordinate space\", which is necessary to calculate the correct vertex positions\n\n calculatePositionOnCurve(u, p, q, radius, P1);\n calculatePositionOnCurve(u + 0.01, p, q, radius, P2); // calculate orthonormal basis\n\n T.subVectors(P2, P1);\n N.addVectors(P2, P1);\n B.crossVectors(T, N);\n N.crossVectors(B, T); // normalize B, N. T can be ignored, we don't use it\n\n B.normalize();\n N.normalize();\n\n for (j = 0; j <= radialSegments; ++j) {\n // now calculate the vertices. they are nothing more than an extrusion of the torus curve.\n // because we extrude a shape in the xy-plane, there is no need to calculate a z-value.\n var v = j / radialSegments * Math.PI * 2;\n var cx = -tube * Math.cos(v);\n var cy = tube * Math.sin(v); // now calculate the final vertex position.\n // first we orient the extrusion with our basis vectos, then we add it to the current position on the curve\n\n vertex.x = P1.x + (cx * N.x + cy * B.x);\n vertex.y = P1.y + (cx * N.y + cy * B.y);\n vertex.z = P1.z + (cx * N.z + cy * B.z);\n vertices.push(vertex.x, vertex.y, vertex.z); // normal (P1 is always the center/origin of the extrusion, thus we can use it to calculate the normal)\n\n normal.subVectors(vertex, P1).normalize();\n normals.push(normal.x, normal.y, normal.z); // uv\n\n uvs.push(i / tubularSegments);\n uvs.push(j / radialSegments);\n }\n } // generate indices\n\n\n for (j = 1; j <= tubularSegments; j++) {\n for (i = 1; i <= radialSegments; i++) {\n // indices\n var a = (radialSegments + 1) * (j - 1) + (i - 1);\n var b = (radialSegments + 1) * j + (i - 1);\n var c = (radialSegments + 1) * j + i;\n var d = (radialSegments + 1) * (j - 1) + i; // faces\n\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n } // build geometry\n\n\n this.setIndex(indices);\n this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n this.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n this.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); // this function calculates the current position on the torus curve\n\n function calculatePositionOnCurve(u, p, q, radius, position) {\n var cu = Math.cos(u);\n var su = Math.sin(u);\n var quOverP = q / p * u;\n var cs = Math.cos(quOverP);\n position.x = radius * (2 + cs) * 0.5 * cu;\n position.y = radius * (2 + cs) * su * 0.5;\n position.z = radius * Math.sin(quOverP) * 0.5;\n }\n}\n\nTorusKnotBufferGeometry.prototype = Object.create(BufferGeometry.prototype);\nTorusKnotBufferGeometry.prototype.constructor = TorusKnotBufferGeometry;\n/**\n * @author oosmoxiecode\n * @author mrdoob / http://mrdoob.com/\n * @author Mugen87 / https://github.com/Mugen87\n */\n// TorusGeometry\n\nfunction TorusGeometry(radius, tube, radialSegments, tubularSegments, arc) {\n Geometry.call(this);\n this.type = 'TorusGeometry';\n this.parameters = {\n radius: radius,\n tube: tube,\n radialSegments: radialSegments,\n tubularSegments: tubularSegments,\n arc: arc\n };\n this.fromBufferGeometry(new TorusBufferGeometry(radius, tube, radialSegments, tubularSegments, arc));\n this.mergeVertices();\n}\n\nTorusGeometry.prototype = Object.create(Geometry.prototype);\nTorusGeometry.prototype.constructor = TorusGeometry; // TorusBufferGeometry\n\nfunction TorusBufferGeometry(radius, tube, radialSegments, tubularSegments, arc) {\n BufferGeometry.call(this);\n this.type = 'TorusBufferGeometry';\n this.parameters = {\n radius: radius,\n tube: tube,\n radialSegments: radialSegments,\n tubularSegments: tubularSegments,\n arc: arc\n };\n radius = radius || 1;\n tube = tube || 0.4;\n radialSegments = Math.floor(radialSegments) || 8;\n tubularSegments = Math.floor(tubularSegments) || 6;\n arc = arc || Math.PI * 2; // buffers\n\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = []; // helper variables\n\n var center = new Vector3();\n var vertex = new Vector3();\n var normal = new Vector3();\n var j, i; // generate vertices, normals and uvs\n\n for (j = 0; j <= radialSegments; j++) {\n for (i = 0; i <= tubularSegments; i++) {\n var u = i / tubularSegments * arc;\n var v = j / radialSegments * Math.PI * 2; // vertex\n\n vertex.x = (radius + tube * Math.cos(v)) * Math.cos(u);\n vertex.y = (radius + tube * Math.cos(v)) * Math.sin(u);\n vertex.z = tube * Math.sin(v);\n vertices.push(vertex.x, vertex.y, vertex.z); // normal\n\n center.x = radius * Math.cos(u);\n center.y = radius * Math.sin(u);\n normal.subVectors(vertex, center).normalize();\n normals.push(normal.x, normal.y, normal.z); // uv\n\n uvs.push(i / tubularSegments);\n uvs.push(j / radialSegments);\n }\n } // generate indices\n\n\n for (j = 1; j <= radialSegments; j++) {\n for (i = 1; i <= tubularSegments; i++) {\n // indices\n var a = (tubularSegments + 1) * j + i - 1;\n var b = (tubularSegments + 1) * (j - 1) + i - 1;\n var c = (tubularSegments + 1) * (j - 1) + i;\n var d = (tubularSegments + 1) * j + i; // faces\n\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n } // build geometry\n\n\n this.setIndex(indices);\n this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n this.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n this.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\n}\n\nTorusBufferGeometry.prototype = Object.create(BufferGeometry.prototype);\nTorusBufferGeometry.prototype.constructor = TorusBufferGeometry;\n/**\n * @author Mugen87 / https://github.com/Mugen87\n * Port from https://github.com/mapbox/earcut (v2.1.5)\n */\n\nvar Earcut = {\n triangulate: function triangulate(data, holeIndices, dim) {\n dim = dim || 2;\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 if (!outerNode || outerNode.next === outerNode.prev) return triangles;\n var minX, minY, maxX, maxY, x, y, invSize;\n if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim); // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n\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 } // minX, minY and invSize are later used to transform coords into integers for z-order calculation\n\n\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 return triangles;\n }\n}; // create a circular doubly linked list from polygon points in the specified winding order\n\nfunction 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) {\n last = insertNode(i, data[i], data[i + 1], last);\n }\n } else {\n for (i = end - dim; i >= start; i -= dim) {\n last = insertNode(i, data[i], data[i + 1], last);\n }\n }\n\n if (last && equals(last, last.next)) {\n removeNode(last);\n last = last.next;\n }\n\n return last;\n} // eliminate colinear or duplicate points\n\n\nfunction filterPoints(start, end) {\n if (!start) return start;\n if (!end) end = start;\n var p = start,\n again;\n\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 } else {\n p = p.next;\n }\n } while (again || p !== end);\n\n return end;\n} // main ear slicing loop which triangulates a polygon (given as a linked list)\n\n\nfunction earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {\n if (!ear) return; // interlink polygon nodes in z-order\n\n if (!pass && invSize) indexCurve(ear, minX, minY, invSize);\n var stop = ear,\n prev,\n next; // iterate through ears, slicing them one by one\n\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 removeNode(ear); // skipping the next vertex leads to less sliver triangles\n\n ear = next.next;\n stop = next.next;\n continue;\n }\n\n ear = next; // if we looped through the whole remaining polygon and can't find any more ears\n\n if (ear === stop) {\n // try filtering points and slicing again\n if (!pass) {\n earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1); // if this didn't work, try curing all small self-intersections locally\n } else if (pass === 1) {\n ear = cureLocalIntersections(ear, triangles, dim);\n earcutLinked(ear, triangles, dim, minX, minY, invSize, 2); // 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} // check whether a polygon node forms a valid ear with adjacent nodes\n\n\nfunction isEar(ear) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n // now make sure we don't have other points inside the potential ear\n\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) && area(p.prev, p, p.next) >= 0) return false;\n p = p.next;\n }\n\n return true;\n}\n\nfunction isEarHashed(ear, minX, minY, invSize) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n // triangle bbox; min & max are calculated like this for speed\n\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; // z-order range for the current triangle bbox;\n\n var minZ = zOrder(minTX, minTY, minX, minY, invSize),\n maxZ = zOrder(maxTX, maxTY, minX, minY, invSize);\n var p = ear.prevZ,\n n = ear.nextZ; // look for points inside the triangle in both directions\n\n while (p && p.z >= minZ && n && n.z <= maxZ) {\n if (p !== ear.prev && p !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n if (n !== ear.prev && n !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n } // look for remaining points in decreasing z-order\n\n\n while (p && p.z >= minZ) {\n if (p !== ear.prev && p !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n } // look for remaining points in increasing z-order\n\n\n while (n && n.z <= maxZ) {\n if (n !== ear.prev && n !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n return true;\n} // go through all polygon nodes and cure small local self-intersections\n\n\nfunction cureLocalIntersections(start, triangles, dim) {\n var p = start;\n\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 triangles.push(a.i / dim);\n triangles.push(p.i / dim);\n triangles.push(b.i / dim); // remove two nodes involved\n\n removeNode(p);\n removeNode(p.next);\n p = start = b;\n }\n\n p = p.next;\n } while (p !== start);\n\n return p;\n} // try splitting polygon into two and triangulate them independently\n\n\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\n do {\n var b = a.next.next;\n\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); // filter colinear points around the cuts\n\n a = filterPoints(a, a.next);\n c = filterPoints(c, c.next); // run earcut on each half\n\n earcutLinked(a, triangles, dim, minX, minY, invSize);\n earcutLinked(c, triangles, dim, minX, minY, invSize);\n return;\n }\n\n b = b.next;\n }\n\n a = a.next;\n } while (a !== start);\n} // link every hole into the outer loop, producing a single-ring polygon without holes\n\n\nfunction eliminateHoles(data, holeIndices, outerNode, dim) {\n var queue = [],\n i,\n len,\n start,\n end,\n 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); // process holes from left to right\n\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} // find a bridge between vertices that connects hole with an outer ring and and link it\n\n\nfunction eliminateHole(hole, outerNode) {\n outerNode = findHoleBridge(hole, outerNode);\n\n if (outerNode) {\n var b = splitPolygon(outerNode, hole);\n filterPoints(b, b.next);\n }\n} // David Eberly's algorithm for finding a bridge between hole and outer polygon\n\n\nfunction findHoleBridge(hole, outerNode) {\n var p = outerNode,\n hx = hole.x,\n hy = hole.y,\n qx = -Infinity,\n m; // 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\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\n if (x <= hx && x > qx) {\n qx = x;\n\n if (x === hx) {\n if (hy === p.y) return p;\n if (hy === p.next.y) return p.next;\n }\n\n m = p.x < p.next.x ? p : p.next;\n }\n }\n\n p = p.next;\n } while (p !== outerNode);\n\n if (!m) return null;\n if (hx === qx) return m.prev; // hole touches outer segment; pick lower endpoint\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 p = m.next;\n\n while (p !== stop) {\n if (hx >= p.x && p.x >= mx && hx !== p.x && pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n tan = Math.abs(hy - p.y) / (hx - p.x); // tangential\n\n if ((tan < tanMin || tan === tanMin && p.x > m.x) && locallyInside(p, hole)) {\n m = p;\n tanMin = tan;\n }\n }\n\n p = p.next;\n }\n\n return m;\n} // interlink polygon nodes in z-order\n\n\nfunction indexCurve(start, minX, minY, invSize) {\n var p = start;\n\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 sortLinked(p);\n} // Simon Tatham's linked list merge sort algorithm\n// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\n\n\nfunction sortLinked(list) {\n var i,\n p,\n q,\n e,\n tail,\n numMerges,\n pSize,\n 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\n for (i = 0; i < inSize; i++) {\n pSize++;\n q = q.nextZ;\n if (!q) break;\n }\n\n qSize = inSize;\n\n while (pSize > 0 || qSize > 0 && q) {\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;else list = e;\n e.prevZ = tail;\n tail = e;\n }\n\n p = q;\n }\n\n tail.nextZ = null;\n inSize *= 2;\n } while (numMerges > 1);\n\n return list;\n} // z-order of a point given coords and inverse of the longer side of data bbox\n\n\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 x = (x | x << 8) & 0x00FF00FF;\n x = (x | x << 4) & 0x0F0F0F0F;\n x = (x | x << 2) & 0x33333333;\n x = (x | x << 1) & 0x55555555;\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 return x | y << 1;\n} // find the leftmost node of a polygon ring\n\n\nfunction getLeftmost(start) {\n var p = start,\n leftmost = start;\n\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} // check if a point lies within a convex triangle\n\n\nfunction pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\n return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 && (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 && (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;\n} // check if a diagonal between two polygon nodes is valid (lies in polygon interior)\n\n\nfunction isValidDiagonal(a, b) {\n return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b);\n} // signed area of a triangle\n\n\nfunction area(p, q, r) {\n return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n} // check if two points are equal\n\n\nfunction equals(p1, p2) {\n return p1.x === p2.x && p1.y === p2.y;\n} // check if two segments intersect\n\n\nfunction intersects(p1, q1, p2, q2) {\n if (equals(p1, p2) && equals(q1, q2) || equals(p1, q2) && equals(p2, q1)) return true;\n return area(p1, q1, p2) > 0 !== area(p1, q1, q2) > 0 && area(p2, q2, p1) > 0 !== area(p2, q2, q1) > 0;\n} // check if a polygon diagonal intersects any polygon segments\n\n\nfunction intersectsPolygon(a, b) {\n var p = a;\n\n do {\n if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i && intersects(p, p.next, a, b)) return true;\n p = p.next;\n } while (p !== a);\n\n return false;\n} // check if a polygon diagonal is locally inside the polygon\n\n\nfunction locallyInside(a, b) {\n return area(a.prev, a, a.next) < 0 ? area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 : area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n} // check if the middle point of a polygon diagonal is inside the polygon\n\n\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\n do {\n if (p.y > py !== p.next.y > py && p.next.y !== p.y && px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x) inside = !inside;\n p = p.next;\n } while (p !== a);\n\n return inside;\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\n\n\nfunction 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 a.next = b;\n b.prev = a;\n a2.next = an;\n an.prev = a2;\n b2.next = a2;\n a2.prev = b2;\n bp.next = b2;\n b2.prev = bp;\n return b2;\n} // create a node and optionally link it with previous one (in a circular doubly linked list)\n\n\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 } else {\n p.next = last.next;\n p.prev = last;\n last.next.prev = p;\n last.next = p;\n }\n\n return p;\n}\n\nfunction removeNode(p) {\n p.next.prev = p.prev;\n p.prev.next = p.next;\n if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n}\n\nfunction Node(i, x, y) {\n // vertex index in coordinates array\n this.i = i; // vertex coordinates\n\n this.x = x;\n this.y = y; // previous and next vertex nodes in a polygon ring\n\n this.prev = null;\n this.next = null; // z-order curve value\n\n this.z = null; // previous and next nodes in z-order\n\n this.prevZ = null;\n this.nextZ = null; // indicates whether this is a steiner point\n\n this.steiner = false;\n}\n\nfunction signedArea(data, start, end, dim) {\n var sum = 0;\n\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\n return sum;\n}\n/**\n * @author zz85 / http://www.lab4games.net/zz85/blog\n */\n\n\nvar ShapeUtils = {\n // calculate area of the contour polygon\n area: function area(contour) {\n var n = contour.length;\n var a = 0.0;\n\n for (var p = n - 1, q = 0; q < n; p = q++) {\n a += contour[p].x * contour[q].y - contour[q].x * contour[p].y;\n }\n\n return a * 0.5;\n },\n isClockWise: function isClockWise(pts) {\n return ShapeUtils.area(pts) < 0;\n },\n triangulateShape: function triangulateShape(contour, holes) {\n var vertices = []; // flat array of vertices like [ x0,y0, x1,y1, x2,y2, ... ]\n\n var holeIndices = []; // array of hole indices\n\n var faces = []; // final array of vertex indices like [ [ a,b,d ], [ b,c,d ] ]\n\n removeDupEndPts(contour);\n addContour(vertices, contour); //\n\n var holeIndex = contour.length;\n holes.forEach(removeDupEndPts);\n\n for (var i = 0; i < holes.length; i++) {\n holeIndices.push(holeIndex);\n holeIndex += holes[i].length;\n addContour(vertices, holes[i]);\n } //\n\n\n var triangles = Earcut.triangulate(vertices, holeIndices); //\n\n for (var i = 0; i < triangles.length; i += 3) {\n faces.push(triangles.slice(i, i + 3));\n }\n\n return faces;\n }\n};\n\nfunction removeDupEndPts(points) {\n var l = points.length;\n\n if (l > 2 && points[l - 1].equals(points[0])) {\n points.pop();\n }\n}\n\nfunction addContour(vertices, contour) {\n for (var i = 0; i < contour.length; i++) {\n vertices.push(contour[i].x);\n vertices.push(contour[i].y);\n }\n}\n/**\n * @author zz85 / http://www.lab4games.net/zz85/blog\n *\n * Creates extruded geometry from a path shape.\n *\n * parameters = {\n *\n * curveSegments: , // number of points on the curves\n * steps: , // number of points for z-side extrusions / used for subdividing segments of extrude spline too\n * depth: , // Depth to extrude the shape\n *\n * bevelEnabled: , // turn on bevel\n * bevelThickness: , // how deep into the original shape bevel goes\n * bevelSize: , // how far from shape outline (including bevelOffset) is bevel\n * bevelOffset: , // how far from shape outline does bevel start\n * bevelSegments: , // number of bevel layers\n *\n * extrudePath: // curve to extrude shape along\n *\n * UVGenerator: // object that provides UV generator functions\n *\n * }\n */\n// ExtrudeGeometry\n\n\nfunction ExtrudeGeometry(shapes, options) {\n Geometry.call(this);\n this.type = 'ExtrudeGeometry';\n this.parameters = {\n shapes: shapes,\n options: options\n };\n this.fromBufferGeometry(new ExtrudeBufferGeometry(shapes, options));\n this.mergeVertices();\n}\n\nExtrudeGeometry.prototype = Object.create(Geometry.prototype);\nExtrudeGeometry.prototype.constructor = ExtrudeGeometry;\n\nExtrudeGeometry.prototype.toJSON = function () {\n var data = Geometry.prototype.toJSON.call(this);\n var shapes = this.parameters.shapes;\n var options = this.parameters.options;\n return toJSON(shapes, options, data);\n}; // ExtrudeBufferGeometry\n\n\nfunction ExtrudeBufferGeometry(shapes, options) {\n BufferGeometry.call(this);\n this.type = 'ExtrudeBufferGeometry';\n this.parameters = {\n shapes: shapes,\n options: options\n };\n shapes = Array.isArray(shapes) ? shapes : [shapes];\n var scope = this;\n var verticesArray = [];\n var uvArray = [];\n\n for (var i = 0, l = shapes.length; i < l; i++) {\n var shape = shapes[i];\n addShape(shape);\n } // build geometry\n\n\n this.setAttribute('position', new Float32BufferAttribute(verticesArray, 3));\n this.setAttribute('uv', new Float32BufferAttribute(uvArray, 2));\n this.computeVertexNormals(); // functions\n\n function addShape(shape) {\n var placeholder = []; // options\n\n var curveSegments = options.curveSegments !== undefined ? options.curveSegments : 12;\n var steps = options.steps !== undefined ? options.steps : 1;\n var depth = options.depth !== undefined ? options.depth : 100;\n var bevelEnabled = options.bevelEnabled !== undefined ? options.bevelEnabled : true;\n var bevelThickness = options.bevelThickness !== undefined ? options.bevelThickness : 6;\n var bevelSize = options.bevelSize !== undefined ? options.bevelSize : bevelThickness - 2;\n var bevelOffset = options.bevelOffset !== undefined ? options.bevelOffset : 0;\n var bevelSegments = options.bevelSegments !== undefined ? options.bevelSegments : 3;\n var extrudePath = options.extrudePath;\n var uvgen = options.UVGenerator !== undefined ? options.UVGenerator : WorldUVGenerator; // deprecated options\n\n if (options.amount !== undefined) {\n console.warn('THREE.ExtrudeBufferGeometry: amount has been renamed to depth.');\n depth = options.amount;\n } //\n\n\n var extrudePts,\n extrudeByPath = false;\n var splineTube, binormal, normal, position2;\n\n if (extrudePath) {\n extrudePts = extrudePath.getSpacedPoints(steps);\n extrudeByPath = true;\n bevelEnabled = false; // bevels not supported for path extrusion\n // SETUP TNB variables\n // TODO1 - have a .isClosed in spline?\n\n splineTube = extrudePath.computeFrenetFrames(steps, false); // console.log(splineTube, 'splineTube', splineTube.normals.length, 'steps', steps, 'extrudePts', extrudePts.length);\n\n binormal = new Vector3();\n normal = new Vector3();\n position2 = new Vector3();\n } // Safeguards if bevels are not enabled\n\n\n if (!bevelEnabled) {\n bevelSegments = 0;\n bevelThickness = 0;\n bevelSize = 0;\n bevelOffset = 0;\n } // Variables initialization\n\n\n var ahole, h, hl; // looping of holes\n\n var shapePoints = shape.extractPoints(curveSegments);\n var vertices = shapePoints.shape;\n var holes = shapePoints.holes;\n var reverse = !ShapeUtils.isClockWise(vertices);\n\n if (reverse) {\n vertices = vertices.reverse(); // Maybe we should also check if holes are in the opposite direction, just to be safe ...\n\n for (h = 0, hl = holes.length; h < hl; h++) {\n ahole = holes[h];\n\n if (ShapeUtils.isClockWise(ahole)) {\n holes[h] = ahole.reverse();\n }\n }\n }\n\n var faces = ShapeUtils.triangulateShape(vertices, holes);\n /* Vertices */\n\n var contour = vertices; // vertices has all points but contour has only points of circumference\n\n for (h = 0, hl = holes.length; h < hl; h++) {\n ahole = holes[h];\n vertices = vertices.concat(ahole);\n }\n\n function scalePt2(pt, vec, size) {\n if (!vec) console.error(\"THREE.ExtrudeGeometry: vec does not exist\");\n return vec.clone().multiplyScalar(size).add(pt);\n }\n\n var b,\n bs,\n t,\n z,\n vert,\n vlen = vertices.length,\n face,\n flen = faces.length; // Find directions for point movement\n\n function getBevelVec(inPt, inPrev, inNext) {\n // computes for inPt the corresponding point inPt' on a new contour\n // shifted by 1 unit (length of normalized vector) to the left\n // if we walk along contour clockwise, this new contour is outside the old one\n //\n // inPt' is the intersection of the two lines parallel to the two\n // adjacent edges of inPt at a distance of 1 unit on the left side.\n var v_trans_x, v_trans_y, shrink_by; // resulting translation vector for inPt\n // good reading for geometry algorithms (here: line-line intersection)\n // http://geomalgorithms.com/a05-_intersect-1.html\n\n var v_prev_x = inPt.x - inPrev.x,\n v_prev_y = inPt.y - inPrev.y;\n var v_next_x = inNext.x - inPt.x,\n v_next_y = inNext.y - inPt.y;\n var v_prev_lensq = v_prev_x * v_prev_x + v_prev_y * v_prev_y; // check for collinear edges\n\n var collinear0 = v_prev_x * v_next_y - v_prev_y * v_next_x;\n\n if (Math.abs(collinear0) > Number.EPSILON) {\n // not collinear\n // length of vectors for normalizing\n var v_prev_len = Math.sqrt(v_prev_lensq);\n var v_next_len = Math.sqrt(v_next_x * v_next_x + v_next_y * v_next_y); // shift adjacent points by unit vectors to the left\n\n var ptPrevShift_x = inPrev.x - v_prev_y / v_prev_len;\n var ptPrevShift_y = inPrev.y + v_prev_x / v_prev_len;\n var ptNextShift_x = inNext.x - v_next_y / v_next_len;\n var ptNextShift_y = inNext.y + v_next_x / v_next_len; // scaling factor for v_prev to intersection point\n\n var sf = ((ptNextShift_x - ptPrevShift_x) * v_next_y - (ptNextShift_y - ptPrevShift_y) * v_next_x) / (v_prev_x * v_next_y - v_prev_y * v_next_x); // vector from inPt to intersection point\n\n v_trans_x = ptPrevShift_x + v_prev_x * sf - inPt.x;\n v_trans_y = ptPrevShift_y + v_prev_y * sf - inPt.y; // Don't normalize!, otherwise sharp corners become ugly\n // but prevent crazy spikes\n\n var v_trans_lensq = v_trans_x * v_trans_x + v_trans_y * v_trans_y;\n\n if (v_trans_lensq <= 2) {\n return new Vector2(v_trans_x, v_trans_y);\n } else {\n shrink_by = Math.sqrt(v_trans_lensq / 2);\n }\n } else {\n // handle special case of collinear edges\n var direction_eq = false; // assumes: opposite\n\n if (v_prev_x > Number.EPSILON) {\n if (v_next_x > Number.EPSILON) {\n direction_eq = true;\n }\n } else {\n if (v_prev_x < -Number.EPSILON) {\n if (v_next_x < -Number.EPSILON) {\n direction_eq = true;\n }\n } else {\n if (Math.sign(v_prev_y) === Math.sign(v_next_y)) {\n direction_eq = true;\n }\n }\n }\n\n if (direction_eq) {\n // console.log(\"Warning: lines are a straight sequence\");\n v_trans_x = -v_prev_y;\n v_trans_y = v_prev_x;\n shrink_by = Math.sqrt(v_prev_lensq);\n } else {\n // console.log(\"Warning: lines are a straight spike\");\n v_trans_x = v_prev_x;\n v_trans_y = v_prev_y;\n shrink_by = Math.sqrt(v_prev_lensq / 2);\n }\n }\n\n return new Vector2(v_trans_x / shrink_by, v_trans_y / shrink_by);\n }\n\n var contourMovements = [];\n\n for (var i = 0, il = contour.length, j = il - 1, k = i + 1; i < il; i++, j++, k++) {\n if (j === il) j = 0;\n if (k === il) k = 0; // (j)---(i)---(k)\n // console.log('i,j,k', i, j , k)\n\n contourMovements[i] = getBevelVec(contour[i], contour[j], contour[k]);\n }\n\n var holesMovements = [],\n oneHoleMovements,\n verticesMovements = contourMovements.concat();\n\n for (h = 0, hl = holes.length; h < hl; h++) {\n ahole = holes[h];\n oneHoleMovements = [];\n\n for (i = 0, il = ahole.length, j = il - 1, k = i + 1; i < il; i++, j++, k++) {\n if (j === il) j = 0;\n if (k === il) k = 0; // (j)---(i)---(k)\n\n oneHoleMovements[i] = getBevelVec(ahole[i], ahole[j], ahole[k]);\n }\n\n holesMovements.push(oneHoleMovements);\n verticesMovements = verticesMovements.concat(oneHoleMovements);\n } // Loop bevelSegments, 1 for the front, 1 for the back\n\n\n for (b = 0; b < bevelSegments; b++) {\n //for ( b = bevelSegments; b > 0; b -- ) {\n t = b / bevelSegments;\n z = bevelThickness * Math.cos(t * Math.PI / 2);\n bs = bevelSize * Math.sin(t * Math.PI / 2) + bevelOffset; // contract shape\n\n for (i = 0, il = contour.length; i < il; i++) {\n vert = scalePt2(contour[i], contourMovements[i], bs);\n v(vert.x, vert.y, -z);\n } // expand holes\n\n\n for (h = 0, hl = holes.length; h < hl; h++) {\n ahole = holes[h];\n oneHoleMovements = holesMovements[h];\n\n for (i = 0, il = ahole.length; i < il; i++) {\n vert = scalePt2(ahole[i], oneHoleMovements[i], bs);\n v(vert.x, vert.y, -z);\n }\n }\n }\n\n bs = bevelSize + bevelOffset; // Back facing vertices\n\n for (i = 0; i < vlen; i++) {\n vert = bevelEnabled ? scalePt2(vertices[i], verticesMovements[i], bs) : vertices[i];\n\n if (!extrudeByPath) {\n v(vert.x, vert.y, 0);\n } else {\n // v( vert.x, vert.y + extrudePts[ 0 ].y, extrudePts[ 0 ].x );\n normal.copy(splineTube.normals[0]).multiplyScalar(vert.x);\n binormal.copy(splineTube.binormals[0]).multiplyScalar(vert.y);\n position2.copy(extrudePts[0]).add(normal).add(binormal);\n v(position2.x, position2.y, position2.z);\n }\n } // Add stepped vertices...\n // Including front facing vertices\n\n\n var s;\n\n for (s = 1; s <= steps; s++) {\n for (i = 0; i < vlen; i++) {\n vert = bevelEnabled ? scalePt2(vertices[i], verticesMovements[i], bs) : vertices[i];\n\n if (!extrudeByPath) {\n v(vert.x, vert.y, depth / steps * s);\n } else {\n // v( vert.x, vert.y + extrudePts[ s - 1 ].y, extrudePts[ s - 1 ].x );\n normal.copy(splineTube.normals[s]).multiplyScalar(vert.x);\n binormal.copy(splineTube.binormals[s]).multiplyScalar(vert.y);\n position2.copy(extrudePts[s]).add(normal).add(binormal);\n v(position2.x, position2.y, position2.z);\n }\n }\n } // Add bevel segments planes\n //for ( b = 1; b <= bevelSegments; b ++ ) {\n\n\n for (b = bevelSegments - 1; b >= 0; b--) {\n t = b / bevelSegments;\n z = bevelThickness * Math.cos(t * Math.PI / 2);\n bs = bevelSize * Math.sin(t * Math.PI / 2) + bevelOffset; // contract shape\n\n for (i = 0, il = contour.length; i < il; i++) {\n vert = scalePt2(contour[i], contourMovements[i], bs);\n v(vert.x, vert.y, depth + z);\n } // expand holes\n\n\n for (h = 0, hl = holes.length; h < hl; h++) {\n ahole = holes[h];\n oneHoleMovements = holesMovements[h];\n\n for (i = 0, il = ahole.length; i < il; i++) {\n vert = scalePt2(ahole[i], oneHoleMovements[i], bs);\n\n if (!extrudeByPath) {\n v(vert.x, vert.y, depth + z);\n } else {\n v(vert.x, vert.y + extrudePts[steps - 1].y, extrudePts[steps - 1].x + z);\n }\n }\n }\n }\n /* Faces */\n // Top and bottom faces\n\n\n buildLidFaces(); // Sides faces\n\n buildSideFaces(); ///// Internal functions\n\n function buildLidFaces() {\n var start = verticesArray.length / 3;\n\n if (bevelEnabled) {\n var layer = 0; // steps + 1\n\n var offset = vlen * layer; // Bottom faces\n\n for (i = 0; i < flen; i++) {\n face = faces[i];\n f3(face[2] + offset, face[1] + offset, face[0] + offset);\n }\n\n layer = steps + bevelSegments * 2;\n offset = vlen * layer; // Top faces\n\n for (i = 0; i < flen; i++) {\n face = faces[i];\n f3(face[0] + offset, face[1] + offset, face[2] + offset);\n }\n } else {\n // Bottom faces\n for (i = 0; i < flen; i++) {\n face = faces[i];\n f3(face[2], face[1], face[0]);\n } // Top faces\n\n\n for (i = 0; i < flen; i++) {\n face = faces[i];\n f3(face[0] + vlen * steps, face[1] + vlen * steps, face[2] + vlen * steps);\n }\n }\n\n scope.addGroup(start, verticesArray.length / 3 - start, 0);\n } // Create faces for the z-sides of the shape\n\n\n function buildSideFaces() {\n var start = verticesArray.length / 3;\n var layeroffset = 0;\n sidewalls(contour, layeroffset);\n layeroffset += contour.length;\n\n for (h = 0, hl = holes.length; h < hl; h++) {\n ahole = holes[h];\n sidewalls(ahole, layeroffset); //, true\n\n layeroffset += ahole.length;\n }\n\n scope.addGroup(start, verticesArray.length / 3 - start, 1);\n }\n\n function sidewalls(contour, layeroffset) {\n var j, k;\n i = contour.length;\n\n while (--i >= 0) {\n j = i;\n k = i - 1;\n if (k < 0) k = contour.length - 1; //console.log('b', i,j, i-1, k,vertices.length);\n\n var s = 0,\n sl = steps + bevelSegments * 2;\n\n for (s = 0; s < sl; s++) {\n var slen1 = vlen * s;\n var slen2 = vlen * (s + 1);\n var a = layeroffset + j + slen1,\n b = layeroffset + k + slen1,\n c = layeroffset + k + slen2,\n d = layeroffset + j + slen2;\n f4(a, b, c, d);\n }\n }\n }\n\n function v(x, y, z) {\n placeholder.push(x);\n placeholder.push(y);\n placeholder.push(z);\n }\n\n function f3(a, b, c) {\n addVertex(a);\n addVertex(b);\n addVertex(c);\n var nextIndex = verticesArray.length / 3;\n var uvs = uvgen.generateTopUV(scope, verticesArray, nextIndex - 3, nextIndex - 2, nextIndex - 1);\n addUV(uvs[0]);\n addUV(uvs[1]);\n addUV(uvs[2]);\n }\n\n function f4(a, b, c, d) {\n addVertex(a);\n addVertex(b);\n addVertex(d);\n addVertex(b);\n addVertex(c);\n addVertex(d);\n var nextIndex = verticesArray.length / 3;\n var uvs = uvgen.generateSideWallUV(scope, verticesArray, nextIndex - 6, nextIndex - 3, nextIndex - 2, nextIndex - 1);\n addUV(uvs[0]);\n addUV(uvs[1]);\n addUV(uvs[3]);\n addUV(uvs[1]);\n addUV(uvs[2]);\n addUV(uvs[3]);\n }\n\n function addVertex(index) {\n verticesArray.push(placeholder[index * 3 + 0]);\n verticesArray.push(placeholder[index * 3 + 1]);\n verticesArray.push(placeholder[index * 3 + 2]);\n }\n\n function addUV(vector2) {\n uvArray.push(vector2.x);\n uvArray.push(vector2.y);\n }\n }\n}\n\nExtrudeBufferGeometry.prototype = Object.create(BufferGeometry.prototype);\nExtrudeBufferGeometry.prototype.constructor = ExtrudeBufferGeometry;\n\nExtrudeBufferGeometry.prototype.toJSON = function () {\n var data = BufferGeometry.prototype.toJSON.call(this);\n var shapes = this.parameters.shapes;\n var options = this.parameters.options;\n return toJSON(shapes, options, data);\n}; //\n\n\nvar WorldUVGenerator = {\n generateTopUV: function generateTopUV(geometry, vertices, indexA, indexB, indexC) {\n var a_x = vertices[indexA * 3];\n var a_y = vertices[indexA * 3 + 1];\n var b_x = vertices[indexB * 3];\n var b_y = vertices[indexB * 3 + 1];\n var c_x = vertices[indexC * 3];\n var c_y = vertices[indexC * 3 + 1];\n return [new Vector2(a_x, a_y), new Vector2(b_x, b_y), new Vector2(c_x, c_y)];\n },\n generateSideWallUV: function generateSideWallUV(geometry, vertices, indexA, indexB, indexC, indexD) {\n var a_x = vertices[indexA * 3];\n var a_y = vertices[indexA * 3 + 1];\n var a_z = vertices[indexA * 3 + 2];\n var b_x = vertices[indexB * 3];\n var b_y = vertices[indexB * 3 + 1];\n var b_z = vertices[indexB * 3 + 2];\n var c_x = vertices[indexC * 3];\n var c_y = vertices[indexC * 3 + 1];\n var c_z = vertices[indexC * 3 + 2];\n var d_x = vertices[indexD * 3];\n var d_y = vertices[indexD * 3 + 1];\n var d_z = vertices[indexD * 3 + 2];\n\n if (Math.abs(a_y - b_y) < 0.01) {\n return [new Vector2(a_x, 1 - a_z), new Vector2(b_x, 1 - b_z), new Vector2(c_x, 1 - c_z), new Vector2(d_x, 1 - d_z)];\n } else {\n return [new Vector2(a_y, 1 - a_z), new Vector2(b_y, 1 - b_z), new Vector2(c_y, 1 - c_z), new Vector2(d_y, 1 - d_z)];\n }\n }\n};\n\nfunction toJSON(shapes, options, data) {\n //\n data.shapes = [];\n\n if (Array.isArray(shapes)) {\n for (var i = 0, l = shapes.length; i < l; i++) {\n var shape = shapes[i];\n data.shapes.push(shape.uuid);\n }\n } else {\n data.shapes.push(shapes.uuid);\n } //\n\n\n if (options.extrudePath !== undefined) data.options.extrudePath = options.extrudePath.toJSON();\n return data;\n}\n/**\n * @author zz85 / http://www.lab4games.net/zz85/blog\n * @author alteredq / http://alteredqualia.com/\n *\n * Text = 3D Text\n *\n * parameters = {\n * font: , // font\n *\n * size: , // size of the text\n * height: , // thickness to extrude text\n * curveSegments: , // number of points on the curves\n *\n * bevelEnabled: , // turn on bevel\n * bevelThickness: , // how deep into text bevel goes\n * bevelSize: , // how far from text outline (including bevelOffset) is bevel\n * bevelOffset: // how far from text outline does bevel start\n * }\n */\n// TextGeometry\n\n\nfunction TextGeometry(text, parameters) {\n Geometry.call(this);\n this.type = 'TextGeometry';\n this.parameters = {\n text: text,\n parameters: parameters\n };\n this.fromBufferGeometry(new TextBufferGeometry(text, parameters));\n this.mergeVertices();\n}\n\nTextGeometry.prototype = Object.create(Geometry.prototype);\nTextGeometry.prototype.constructor = TextGeometry; // TextBufferGeometry\n\nfunction TextBufferGeometry(text, parameters) {\n parameters = parameters || {};\n var font = parameters.font;\n\n if (!(font && font.isFont)) {\n console.error('THREE.TextGeometry: font parameter is not an instance of THREE.Font.');\n return new Geometry();\n }\n\n var shapes = font.generateShapes(text, parameters.size); // translate parameters to ExtrudeGeometry API\n\n parameters.depth = parameters.height !== undefined ? parameters.height : 50; // defaults\n\n if (parameters.bevelThickness === undefined) parameters.bevelThickness = 10;\n if (parameters.bevelSize === undefined) parameters.bevelSize = 8;\n if (parameters.bevelEnabled === undefined) parameters.bevelEnabled = false;\n ExtrudeBufferGeometry.call(this, shapes, parameters);\n this.type = 'TextBufferGeometry';\n}\n\nTextBufferGeometry.prototype = Object.create(ExtrudeBufferGeometry.prototype);\nTextBufferGeometry.prototype.constructor = TextBufferGeometry;\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author benaadams / https://twitter.com/ben_a_adams\n * @author Mugen87 / https://github.com/Mugen87\n */\n// SphereGeometry\n\nfunction SphereGeometry(radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength) {\n Geometry.call(this);\n this.type = 'SphereGeometry';\n this.parameters = {\n radius: radius,\n widthSegments: widthSegments,\n heightSegments: heightSegments,\n phiStart: phiStart,\n phiLength: phiLength,\n thetaStart: thetaStart,\n thetaLength: thetaLength\n };\n this.fromBufferGeometry(new SphereBufferGeometry(radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength));\n this.mergeVertices();\n}\n\nSphereGeometry.prototype = Object.create(Geometry.prototype);\nSphereGeometry.prototype.constructor = SphereGeometry; // SphereBufferGeometry\n\nfunction SphereBufferGeometry(radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength) {\n BufferGeometry.call(this);\n this.type = 'SphereBufferGeometry';\n this.parameters = {\n radius: radius,\n widthSegments: widthSegments,\n heightSegments: heightSegments,\n phiStart: phiStart,\n phiLength: phiLength,\n thetaStart: thetaStart,\n thetaLength: thetaLength\n };\n radius = radius || 1;\n widthSegments = Math.max(3, Math.floor(widthSegments) || 8);\n heightSegments = Math.max(2, Math.floor(heightSegments) || 6);\n phiStart = phiStart !== undefined ? phiStart : 0;\n phiLength = phiLength !== undefined ? phiLength : Math.PI * 2;\n thetaStart = thetaStart !== undefined ? thetaStart : 0;\n thetaLength = thetaLength !== undefined ? thetaLength : Math.PI;\n var thetaEnd = Math.min(thetaStart + thetaLength, Math.PI);\n var ix, iy;\n var index = 0;\n var grid = [];\n var vertex = new Vector3();\n var normal = new Vector3(); // buffers\n\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = []; // generate vertices, normals and uvs\n\n for (iy = 0; iy <= heightSegments; iy++) {\n var verticesRow = [];\n var v = iy / heightSegments; // special case for the poles\n\n var uOffset = 0;\n\n if (iy == 0 && thetaStart == 0) {\n uOffset = 0.5 / widthSegments;\n } else if (iy == heightSegments && thetaEnd == Math.PI) {\n uOffset = -0.5 / widthSegments;\n }\n\n for (ix = 0; ix <= widthSegments; ix++) {\n var u = ix / widthSegments; // vertex\n\n vertex.x = -radius * Math.cos(phiStart + u * phiLength) * Math.sin(thetaStart + v * thetaLength);\n vertex.y = radius * Math.cos(thetaStart + v * thetaLength);\n vertex.z = radius * Math.sin(phiStart + u * phiLength) * Math.sin(thetaStart + v * thetaLength);\n vertices.push(vertex.x, vertex.y, vertex.z); // normal\n\n normal.copy(vertex).normalize();\n normals.push(normal.x, normal.y, normal.z); // uv\n\n uvs.push(u + uOffset, 1 - v);\n verticesRow.push(index++);\n }\n\n grid.push(verticesRow);\n } // indices\n\n\n for (iy = 0; iy < heightSegments; iy++) {\n for (ix = 0; ix < widthSegments; ix++) {\n var a = grid[iy][ix + 1];\n var b = grid[iy][ix];\n var c = grid[iy + 1][ix];\n var d = grid[iy + 1][ix + 1];\n if (iy !== 0 || thetaStart > 0) indices.push(a, b, d);\n if (iy !== heightSegments - 1 || thetaEnd < Math.PI) indices.push(b, c, d);\n }\n } // build geometry\n\n\n this.setIndex(indices);\n this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n this.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n this.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\n}\n\nSphereBufferGeometry.prototype = Object.create(BufferGeometry.prototype);\nSphereBufferGeometry.prototype.constructor = SphereBufferGeometry;\n/**\n * @author Kaleb Murphy\n * @author Mugen87 / https://github.com/Mugen87\n */\n// RingGeometry\n\nfunction RingGeometry(innerRadius, outerRadius, thetaSegments, phiSegments, thetaStart, thetaLength) {\n Geometry.call(this);\n this.type = 'RingGeometry';\n this.parameters = {\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n thetaSegments: thetaSegments,\n phiSegments: phiSegments,\n thetaStart: thetaStart,\n thetaLength: thetaLength\n };\n this.fromBufferGeometry(new RingBufferGeometry(innerRadius, outerRadius, thetaSegments, phiSegments, thetaStart, thetaLength));\n this.mergeVertices();\n}\n\nRingGeometry.prototype = Object.create(Geometry.prototype);\nRingGeometry.prototype.constructor = RingGeometry; // RingBufferGeometry\n\nfunction RingBufferGeometry(innerRadius, outerRadius, thetaSegments, phiSegments, thetaStart, thetaLength) {\n BufferGeometry.call(this);\n this.type = 'RingBufferGeometry';\n this.parameters = {\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n thetaSegments: thetaSegments,\n phiSegments: phiSegments,\n thetaStart: thetaStart,\n thetaLength: thetaLength\n };\n innerRadius = innerRadius || 0.5;\n outerRadius = outerRadius || 1;\n thetaStart = thetaStart !== undefined ? thetaStart : 0;\n thetaLength = thetaLength !== undefined ? thetaLength : Math.PI * 2;\n thetaSegments = thetaSegments !== undefined ? Math.max(3, thetaSegments) : 8;\n phiSegments = phiSegments !== undefined ? Math.max(1, phiSegments) : 1; // buffers\n\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = []; // some helper variables\n\n var segment;\n var radius = innerRadius;\n var radiusStep = (outerRadius - innerRadius) / phiSegments;\n var vertex = new Vector3();\n var uv = new Vector2();\n var j, i; // generate vertices, normals and uvs\n\n for (j = 0; j <= phiSegments; j++) {\n for (i = 0; i <= thetaSegments; i++) {\n // values are generate from the inside of the ring to the outside\n segment = thetaStart + i / thetaSegments * thetaLength; // vertex\n\n vertex.x = radius * Math.cos(segment);\n vertex.y = radius * Math.sin(segment);\n vertices.push(vertex.x, vertex.y, vertex.z); // normal\n\n normals.push(0, 0, 1); // uv\n\n uv.x = (vertex.x / outerRadius + 1) / 2;\n uv.y = (vertex.y / outerRadius + 1) / 2;\n uvs.push(uv.x, uv.y);\n } // increase the radius for next row of vertices\n\n\n radius += radiusStep;\n } // indices\n\n\n for (j = 0; j < phiSegments; j++) {\n var thetaSegmentLevel = j * (thetaSegments + 1);\n\n for (i = 0; i < thetaSegments; i++) {\n segment = i + thetaSegmentLevel;\n var a = segment;\n var b = segment + thetaSegments + 1;\n var c = segment + thetaSegments + 2;\n var d = segment + 1; // faces\n\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n } // build geometry\n\n\n this.setIndex(indices);\n this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n this.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n this.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\n}\n\nRingBufferGeometry.prototype = Object.create(BufferGeometry.prototype);\nRingBufferGeometry.prototype.constructor = RingBufferGeometry;\n/**\n * @author zz85 / https://github.com/zz85\n * @author bhouston / http://clara.io\n * @author Mugen87 / https://github.com/Mugen87\n */\n// LatheGeometry\n\nfunction LatheGeometry(points, segments, phiStart, phiLength) {\n Geometry.call(this);\n this.type = 'LatheGeometry';\n this.parameters = {\n points: points,\n segments: segments,\n phiStart: phiStart,\n phiLength: phiLength\n };\n this.fromBufferGeometry(new LatheBufferGeometry(points, segments, phiStart, phiLength));\n this.mergeVertices();\n}\n\nLatheGeometry.prototype = Object.create(Geometry.prototype);\nLatheGeometry.prototype.constructor = LatheGeometry; // LatheBufferGeometry\n\nfunction LatheBufferGeometry(points, segments, phiStart, phiLength) {\n BufferGeometry.call(this);\n this.type = 'LatheBufferGeometry';\n this.parameters = {\n points: points,\n segments: segments,\n phiStart: phiStart,\n phiLength: phiLength\n };\n segments = Math.floor(segments) || 12;\n phiStart = phiStart || 0;\n phiLength = phiLength || Math.PI * 2; // clamp phiLength so it's in range of [ 0, 2PI ]\n\n phiLength = _Math.clamp(phiLength, 0, Math.PI * 2); // buffers\n\n var indices = [];\n var vertices = [];\n var uvs = []; // helper variables\n\n var base;\n var inverseSegments = 1.0 / segments;\n var vertex = new Vector3();\n var uv = new Vector2();\n var i, j; // generate vertices and uvs\n\n for (i = 0; i <= segments; i++) {\n var phi = phiStart + i * inverseSegments * phiLength;\n var sin = Math.sin(phi);\n var cos = Math.cos(phi);\n\n for (j = 0; j <= points.length - 1; j++) {\n // vertex\n vertex.x = points[j].x * sin;\n vertex.y = points[j].y;\n vertex.z = points[j].x * cos;\n vertices.push(vertex.x, vertex.y, vertex.z); // uv\n\n uv.x = i / segments;\n uv.y = j / (points.length - 1);\n uvs.push(uv.x, uv.y);\n }\n } // indices\n\n\n for (i = 0; i < segments; i++) {\n for (j = 0; j < points.length - 1; j++) {\n base = j + i * points.length;\n var a = base;\n var b = base + points.length;\n var c = base + points.length + 1;\n var d = base + 1; // faces\n\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n } // build geometry\n\n\n this.setIndex(indices);\n this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n this.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); // generate normals\n\n this.computeVertexNormals(); // if the geometry is closed, we need to average the normals along the seam.\n // because the corresponding vertices are identical (but still have different UVs).\n\n if (phiLength === Math.PI * 2) {\n var normals = this.attributes.normal.array;\n var n1 = new Vector3();\n var n2 = new Vector3();\n var n = new Vector3(); // this is the buffer offset for the last line of vertices\n\n base = segments * points.length * 3;\n\n for (i = 0, j = 0; i < points.length; i++, j += 3) {\n // select the normal of the vertex in the first line\n n1.x = normals[j + 0];\n n1.y = normals[j + 1];\n n1.z = normals[j + 2]; // select the normal of the vertex in the last line\n\n n2.x = normals[base + j + 0];\n n2.y = normals[base + j + 1];\n n2.z = normals[base + j + 2]; // average normals\n\n n.addVectors(n1, n2).normalize(); // assign the new values to both normals\n\n normals[j + 0] = normals[base + j + 0] = n.x;\n normals[j + 1] = normals[base + j + 1] = n.y;\n normals[j + 2] = normals[base + j + 2] = n.z;\n }\n }\n}\n\nLatheBufferGeometry.prototype = Object.create(BufferGeometry.prototype);\nLatheBufferGeometry.prototype.constructor = LatheBufferGeometry;\n/**\n * @author jonobr1 / http://jonobr1.com\n * @author Mugen87 / https://github.com/Mugen87\n */\n// ShapeGeometry\n\nfunction ShapeGeometry(shapes, curveSegments) {\n Geometry.call(this);\n this.type = 'ShapeGeometry';\n\n if (typeof curveSegments === 'object') {\n console.warn('THREE.ShapeGeometry: Options parameter has been removed.');\n curveSegments = curveSegments.curveSegments;\n }\n\n this.parameters = {\n shapes: shapes,\n curveSegments: curveSegments\n };\n this.fromBufferGeometry(new ShapeBufferGeometry(shapes, curveSegments));\n this.mergeVertices();\n}\n\nShapeGeometry.prototype = Object.create(Geometry.prototype);\nShapeGeometry.prototype.constructor = ShapeGeometry;\n\nShapeGeometry.prototype.toJSON = function () {\n var data = Geometry.prototype.toJSON.call(this);\n var shapes = this.parameters.shapes;\n return toJSON$1(shapes, data);\n}; // ShapeBufferGeometry\n\n\nfunction ShapeBufferGeometry(shapes, curveSegments) {\n BufferGeometry.call(this);\n this.type = 'ShapeBufferGeometry';\n this.parameters = {\n shapes: shapes,\n curveSegments: curveSegments\n };\n curveSegments = curveSegments || 12; // buffers\n\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = []; // helper variables\n\n var groupStart = 0;\n var groupCount = 0; // allow single and array values for \"shapes\" parameter\n\n if (Array.isArray(shapes) === false) {\n addShape(shapes);\n } else {\n for (var i = 0; i < shapes.length; i++) {\n addShape(shapes[i]);\n this.addGroup(groupStart, groupCount, i); // enables MultiMaterial support\n\n groupStart += groupCount;\n groupCount = 0;\n }\n } // build geometry\n\n\n this.setIndex(indices);\n this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n this.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n this.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); // helper functions\n\n function addShape(shape) {\n var i, l, shapeHole;\n var indexOffset = vertices.length / 3;\n var points = shape.extractPoints(curveSegments);\n var shapeVertices = points.shape;\n var shapeHoles = points.holes; // check direction of vertices\n\n if (ShapeUtils.isClockWise(shapeVertices) === false) {\n shapeVertices = shapeVertices.reverse();\n }\n\n for (i = 0, l = shapeHoles.length; i < l; i++) {\n shapeHole = shapeHoles[i];\n\n if (ShapeUtils.isClockWise(shapeHole) === true) {\n shapeHoles[i] = shapeHole.reverse();\n }\n }\n\n var faces = ShapeUtils.triangulateShape(shapeVertices, shapeHoles); // join vertices of inner and outer paths to a single array\n\n for (i = 0, l = shapeHoles.length; i < l; i++) {\n shapeHole = shapeHoles[i];\n shapeVertices = shapeVertices.concat(shapeHole);\n } // vertices, normals, uvs\n\n\n for (i = 0, l = shapeVertices.length; i < l; i++) {\n var vertex = shapeVertices[i];\n vertices.push(vertex.x, vertex.y, 0);\n normals.push(0, 0, 1);\n uvs.push(vertex.x, vertex.y); // world uvs\n } // incides\n\n\n for (i = 0, l = faces.length; i < l; i++) {\n var face = faces[i];\n var a = face[0] + indexOffset;\n var b = face[1] + indexOffset;\n var c = face[2] + indexOffset;\n indices.push(a, b, c);\n groupCount += 3;\n }\n }\n}\n\nShapeBufferGeometry.prototype = Object.create(BufferGeometry.prototype);\nShapeBufferGeometry.prototype.constructor = ShapeBufferGeometry;\n\nShapeBufferGeometry.prototype.toJSON = function () {\n var data = BufferGeometry.prototype.toJSON.call(this);\n var shapes = this.parameters.shapes;\n return toJSON$1(shapes, data);\n}; //\n\n\nfunction toJSON$1(shapes, data) {\n data.shapes = [];\n\n if (Array.isArray(shapes)) {\n for (var i = 0, l = shapes.length; i < l; i++) {\n var shape = shapes[i];\n data.shapes.push(shape.uuid);\n }\n } else {\n data.shapes.push(shapes.uuid);\n }\n\n return data;\n}\n/**\n * @author WestLangley / http://github.com/WestLangley\n * @author Mugen87 / https://github.com/Mugen87\n */\n\n\nfunction EdgesGeometry(geometry, thresholdAngle) {\n BufferGeometry.call(this);\n this.type = 'EdgesGeometry';\n this.parameters = {\n thresholdAngle: thresholdAngle\n };\n thresholdAngle = thresholdAngle !== undefined ? thresholdAngle : 1; // buffer\n\n var vertices = []; // helper variables\n\n var thresholdDot = Math.cos(_Math.DEG2RAD * thresholdAngle);\n var edge = [0, 0],\n edges = {},\n edge1,\n edge2;\n var key,\n keys = ['a', 'b', 'c']; // prepare source geometry\n\n var geometry2;\n\n if (geometry.isBufferGeometry) {\n geometry2 = new Geometry();\n geometry2.fromBufferGeometry(geometry);\n } else {\n geometry2 = geometry.clone();\n }\n\n geometry2.mergeVertices();\n geometry2.computeFaceNormals();\n var sourceVertices = geometry2.vertices;\n var faces = geometry2.faces; // now create a data structure where each entry represents an edge with its adjoining faces\n\n for (var i = 0, l = faces.length; i < l; i++) {\n var face = faces[i];\n\n for (var j = 0; j < 3; j++) {\n edge1 = face[keys[j]];\n edge2 = face[keys[(j + 1) % 3]];\n edge[0] = Math.min(edge1, edge2);\n edge[1] = Math.max(edge1, edge2);\n key = edge[0] + ',' + edge[1];\n\n if (edges[key] === undefined) {\n edges[key] = {\n index1: edge[0],\n index2: edge[1],\n face1: i,\n face2: undefined\n };\n } else {\n edges[key].face2 = i;\n }\n }\n } // generate vertices\n\n\n for (key in edges) {\n var e = edges[key]; // an edge is only rendered if the angle (in degrees) between the face normals of the adjoining faces exceeds this value. default = 1 degree.\n\n if (e.face2 === undefined || faces[e.face1].normal.dot(faces[e.face2].normal) <= thresholdDot) {\n var vertex = sourceVertices[e.index1];\n vertices.push(vertex.x, vertex.y, vertex.z);\n vertex = sourceVertices[e.index2];\n vertices.push(vertex.x, vertex.y, vertex.z);\n }\n } // build geometry\n\n\n this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n}\n\nEdgesGeometry.prototype = Object.create(BufferGeometry.prototype);\nEdgesGeometry.prototype.constructor = EdgesGeometry;\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author Mugen87 / https://github.com/Mugen87\n */\n// CylinderGeometry\n\nfunction CylinderGeometry(radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength) {\n Geometry.call(this);\n this.type = 'CylinderGeometry';\n this.parameters = {\n radiusTop: radiusTop,\n radiusBottom: radiusBottom,\n height: height,\n radialSegments: radialSegments,\n heightSegments: heightSegments,\n openEnded: openEnded,\n thetaStart: thetaStart,\n thetaLength: thetaLength\n };\n this.fromBufferGeometry(new CylinderBufferGeometry(radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength));\n this.mergeVertices();\n}\n\nCylinderGeometry.prototype = Object.create(Geometry.prototype);\nCylinderGeometry.prototype.constructor = CylinderGeometry; // CylinderBufferGeometry\n\nfunction CylinderBufferGeometry(radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength) {\n BufferGeometry.call(this);\n this.type = 'CylinderBufferGeometry';\n this.parameters = {\n radiusTop: radiusTop,\n radiusBottom: radiusBottom,\n height: height,\n radialSegments: radialSegments,\n heightSegments: heightSegments,\n openEnded: openEnded,\n thetaStart: thetaStart,\n thetaLength: thetaLength\n };\n var scope = this;\n radiusTop = radiusTop !== undefined ? radiusTop : 1;\n radiusBottom = radiusBottom !== undefined ? radiusBottom : 1;\n height = height || 1;\n radialSegments = Math.floor(radialSegments) || 8;\n heightSegments = Math.floor(heightSegments) || 1;\n openEnded = openEnded !== undefined ? openEnded : false;\n thetaStart = thetaStart !== undefined ? thetaStart : 0.0;\n thetaLength = thetaLength !== undefined ? thetaLength : Math.PI * 2; // buffers\n\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = []; // helper variables\n\n var index = 0;\n var indexArray = [];\n var halfHeight = height / 2;\n var groupStart = 0; // generate geometry\n\n generateTorso();\n\n if (openEnded === false) {\n if (radiusTop > 0) generateCap(true);\n if (radiusBottom > 0) generateCap(false);\n } // build geometry\n\n\n this.setIndex(indices);\n this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n this.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n this.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\n\n function generateTorso() {\n var x, y;\n var normal = new Vector3();\n var vertex = new Vector3();\n var groupCount = 0; // this will be used to calculate the normal\n\n var slope = (radiusBottom - radiusTop) / height; // generate vertices, normals and uvs\n\n for (y = 0; y <= heightSegments; y++) {\n var indexRow = [];\n var v = y / heightSegments; // calculate the radius of the current row\n\n var radius = v * (radiusBottom - radiusTop) + radiusTop;\n\n for (x = 0; x <= radialSegments; x++) {\n var u = x / radialSegments;\n var theta = u * thetaLength + thetaStart;\n var sinTheta = Math.sin(theta);\n var cosTheta = Math.cos(theta); // vertex\n\n vertex.x = radius * sinTheta;\n vertex.y = -v * height + halfHeight;\n vertex.z = radius * cosTheta;\n vertices.push(vertex.x, vertex.y, vertex.z); // normal\n\n normal.set(sinTheta, slope, cosTheta).normalize();\n normals.push(normal.x, normal.y, normal.z); // uv\n\n uvs.push(u, 1 - v); // save index of vertex in respective row\n\n indexRow.push(index++);\n } // now save vertices of the row in our index array\n\n\n indexArray.push(indexRow);\n } // generate indices\n\n\n for (x = 0; x < radialSegments; x++) {\n for (y = 0; y < heightSegments; y++) {\n // we use the index array to access the correct indices\n var a = indexArray[y][x];\n var b = indexArray[y + 1][x];\n var c = indexArray[y + 1][x + 1];\n var d = indexArray[y][x + 1]; // faces\n\n indices.push(a, b, d);\n indices.push(b, c, d); // update group counter\n\n groupCount += 6;\n }\n } // add a group to the geometry. this will ensure multi material support\n\n\n scope.addGroup(groupStart, groupCount, 0); // calculate new start value for groups\n\n groupStart += groupCount;\n }\n\n function generateCap(top) {\n var x, centerIndexStart, centerIndexEnd;\n var uv = new Vector2();\n var vertex = new Vector3();\n var groupCount = 0;\n var radius = top === true ? radiusTop : radiusBottom;\n var sign = top === true ? 1 : -1; // save the index of the first center vertex\n\n centerIndexStart = index; // first we generate the center vertex data of the cap.\n // because the geometry needs one set of uvs per face,\n // we must generate a center vertex per face/segment\n\n for (x = 1; x <= radialSegments; x++) {\n // vertex\n vertices.push(0, halfHeight * sign, 0); // normal\n\n normals.push(0, sign, 0); // uv\n\n uvs.push(0.5, 0.5); // increase index\n\n index++;\n } // save the index of the last center vertex\n\n\n centerIndexEnd = index; // now we generate the surrounding vertices, normals and uvs\n\n for (x = 0; x <= radialSegments; x++) {\n var u = x / radialSegments;\n var theta = u * thetaLength + thetaStart;\n var cosTheta = Math.cos(theta);\n var sinTheta = Math.sin(theta); // vertex\n\n vertex.x = radius * sinTheta;\n vertex.y = halfHeight * sign;\n vertex.z = radius * cosTheta;\n vertices.push(vertex.x, vertex.y, vertex.z); // normal\n\n normals.push(0, sign, 0); // uv\n\n uv.x = cosTheta * 0.5 + 0.5;\n uv.y = sinTheta * 0.5 * sign + 0.5;\n uvs.push(uv.x, uv.y); // increase index\n\n index++;\n } // generate indices\n\n\n for (x = 0; x < radialSegments; x++) {\n var c = centerIndexStart + x;\n var i = centerIndexEnd + x;\n\n if (top === true) {\n // face top\n indices.push(i, i + 1, c);\n } else {\n // face bottom\n indices.push(i + 1, i, c);\n }\n\n groupCount += 3;\n } // add a group to the geometry. this will ensure multi material support\n\n\n scope.addGroup(groupStart, groupCount, top === true ? 1 : 2); // calculate new start value for groups\n\n groupStart += groupCount;\n }\n}\n\nCylinderBufferGeometry.prototype = Object.create(BufferGeometry.prototype);\nCylinderBufferGeometry.prototype.constructor = CylinderBufferGeometry;\n/**\n * @author abelnation / http://github.com/abelnation\n */\n// ConeGeometry\n\nfunction ConeGeometry(radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength) {\n CylinderGeometry.call(this, 0, radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength);\n this.type = 'ConeGeometry';\n this.parameters = {\n radius: radius,\n height: height,\n radialSegments: radialSegments,\n heightSegments: heightSegments,\n openEnded: openEnded,\n thetaStart: thetaStart,\n thetaLength: thetaLength\n };\n}\n\nConeGeometry.prototype = Object.create(CylinderGeometry.prototype);\nConeGeometry.prototype.constructor = ConeGeometry; // ConeBufferGeometry\n\nfunction ConeBufferGeometry(radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength) {\n CylinderBufferGeometry.call(this, 0, radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength);\n this.type = 'ConeBufferGeometry';\n this.parameters = {\n radius: radius,\n height: height,\n radialSegments: radialSegments,\n heightSegments: heightSegments,\n openEnded: openEnded,\n thetaStart: thetaStart,\n thetaLength: thetaLength\n };\n}\n\nConeBufferGeometry.prototype = Object.create(CylinderBufferGeometry.prototype);\nConeBufferGeometry.prototype.constructor = ConeBufferGeometry;\n/**\n * @author benaadams / https://twitter.com/ben_a_adams\n * @author Mugen87 / https://github.com/Mugen87\n * @author hughes\n */\n// CircleGeometry\n\nfunction CircleGeometry(radius, segments, thetaStart, thetaLength) {\n Geometry.call(this);\n this.type = 'CircleGeometry';\n this.parameters = {\n radius: radius,\n segments: segments,\n thetaStart: thetaStart,\n thetaLength: thetaLength\n };\n this.fromBufferGeometry(new CircleBufferGeometry(radius, segments, thetaStart, thetaLength));\n this.mergeVertices();\n}\n\nCircleGeometry.prototype = Object.create(Geometry.prototype);\nCircleGeometry.prototype.constructor = CircleGeometry; // CircleBufferGeometry\n\nfunction CircleBufferGeometry(radius, segments, thetaStart, thetaLength) {\n BufferGeometry.call(this);\n this.type = 'CircleBufferGeometry';\n this.parameters = {\n radius: radius,\n segments: segments,\n thetaStart: thetaStart,\n thetaLength: thetaLength\n };\n radius = radius || 1;\n segments = segments !== undefined ? Math.max(3, segments) : 8;\n thetaStart = thetaStart !== undefined ? thetaStart : 0;\n thetaLength = thetaLength !== undefined ? thetaLength : Math.PI * 2; // buffers\n\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = []; // helper variables\n\n var i, s;\n var vertex = new Vector3();\n var uv = new Vector2(); // center point\n\n vertices.push(0, 0, 0);\n normals.push(0, 0, 1);\n uvs.push(0.5, 0.5);\n\n for (s = 0, i = 3; s <= segments; s++, i += 3) {\n var segment = thetaStart + s / segments * thetaLength; // vertex\n\n vertex.x = radius * Math.cos(segment);\n vertex.y = radius * Math.sin(segment);\n vertices.push(vertex.x, vertex.y, vertex.z); // normal\n\n normals.push(0, 0, 1); // uvs\n\n uv.x = (vertices[i] / radius + 1) / 2;\n uv.y = (vertices[i + 1] / radius + 1) / 2;\n uvs.push(uv.x, uv.y);\n } // indices\n\n\n for (i = 1; i <= segments; i++) {\n indices.push(i, i + 1, 0);\n } // build geometry\n\n\n this.setIndex(indices);\n this.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n this.setAttribute('normal', new Float32BufferAttribute(normals, 3));\n this.setAttribute('uv', new Float32BufferAttribute(uvs, 2));\n}\n\nCircleBufferGeometry.prototype = Object.create(BufferGeometry.prototype);\nCircleBufferGeometry.prototype.constructor = CircleBufferGeometry;\nvar Geometries = /*#__PURE__*/Object.freeze({\n __proto__: null,\n WireframeGeometry: WireframeGeometry,\n ParametricGeometry: ParametricGeometry,\n ParametricBufferGeometry: ParametricBufferGeometry,\n TetrahedronGeometry: TetrahedronGeometry,\n TetrahedronBufferGeometry: TetrahedronBufferGeometry,\n OctahedronGeometry: OctahedronGeometry,\n OctahedronBufferGeometry: OctahedronBufferGeometry,\n IcosahedronGeometry: IcosahedronGeometry,\n IcosahedronBufferGeometry: IcosahedronBufferGeometry,\n DodecahedronGeometry: DodecahedronGeometry,\n DodecahedronBufferGeometry: DodecahedronBufferGeometry,\n PolyhedronGeometry: PolyhedronGeometry,\n PolyhedronBufferGeometry: PolyhedronBufferGeometry,\n TubeGeometry: TubeGeometry,\n TubeBufferGeometry: TubeBufferGeometry,\n TorusKnotGeometry: TorusKnotGeometry,\n TorusKnotBufferGeometry: TorusKnotBufferGeometry,\n TorusGeometry: TorusGeometry,\n TorusBufferGeometry: TorusBufferGeometry,\n TextGeometry: TextGeometry,\n TextBufferGeometry: TextBufferGeometry,\n SphereGeometry: SphereGeometry,\n SphereBufferGeometry: SphereBufferGeometry,\n RingGeometry: RingGeometry,\n RingBufferGeometry: RingBufferGeometry,\n PlaneGeometry: PlaneGeometry,\n PlaneBufferGeometry: PlaneBufferGeometry,\n LatheGeometry: LatheGeometry,\n LatheBufferGeometry: LatheBufferGeometry,\n ShapeGeometry: ShapeGeometry,\n ShapeBufferGeometry: ShapeBufferGeometry,\n ExtrudeGeometry: ExtrudeGeometry,\n ExtrudeBufferGeometry: ExtrudeBufferGeometry,\n EdgesGeometry: EdgesGeometry,\n ConeGeometry: ConeGeometry,\n ConeBufferGeometry: ConeBufferGeometry,\n CylinderGeometry: CylinderGeometry,\n CylinderBufferGeometry: CylinderBufferGeometry,\n CircleGeometry: CircleGeometry,\n CircleBufferGeometry: CircleBufferGeometry,\n BoxGeometry: BoxGeometry,\n BoxBufferGeometry: BoxBufferGeometry\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n *\n * parameters = {\n * color: \n * }\n */\n\nfunction ShadowMaterial(parameters) {\n Material.call(this);\n this.type = 'ShadowMaterial';\n this.color = new Color(0x000000);\n this.transparent = true;\n this.setValues(parameters);\n}\n\nShadowMaterial.prototype = Object.create(Material.prototype);\nShadowMaterial.prototype.constructor = ShadowMaterial;\nShadowMaterial.prototype.isShadowMaterial = true;\n\nShadowMaterial.prototype.copy = function (source) {\n Material.prototype.copy.call(this, source);\n this.color.copy(source.color);\n return this;\n};\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction RawShaderMaterial(parameters) {\n ShaderMaterial.call(this, parameters);\n this.type = 'RawShaderMaterial';\n}\n\nRawShaderMaterial.prototype = Object.create(ShaderMaterial.prototype);\nRawShaderMaterial.prototype.constructor = RawShaderMaterial;\nRawShaderMaterial.prototype.isRawShaderMaterial = true;\n/**\n * @author WestLangley / http://github.com/WestLangley\n *\n * parameters = {\n * color: ,\n * roughness: ,\n * metalness: ,\n * opacity: ,\n *\n * map: new THREE.Texture( ),\n *\n * lightMap: new THREE.Texture( ),\n * lightMapIntensity: \n *\n * aoMap: new THREE.Texture( ),\n * aoMapIntensity: \n *\n * emissive: ,\n * emissiveIntensity: \n * emissiveMap: new THREE.Texture( ),\n *\n * bumpMap: new THREE.Texture( ),\n * bumpScale: ,\n *\n * normalMap: new THREE.Texture( ),\n * normalMapType: THREE.TangentSpaceNormalMap,\n * normalScale: ,\n *\n * displacementMap: new THREE.Texture( ),\n * displacementScale: ,\n * displacementBias: ,\n *\n * roughnessMap: new THREE.Texture( ),\n *\n * metalnessMap: new THREE.Texture( ),\n *\n * alphaMap: new THREE.Texture( ),\n *\n * envMap: new THREE.CubeTexture( [posx, negx, posy, negy, posz, negz] ),\n * envMapIntensity: \n *\n * refractionRatio: ,\n *\n * wireframe: ,\n * wireframeLinewidth: ,\n *\n * skinning: ,\n * morphTargets: ,\n * morphNormals: \n * }\n */\n\nfunction MeshStandardMaterial(parameters) {\n Material.call(this);\n this.defines = {\n 'STANDARD': ''\n };\n this.type = 'MeshStandardMaterial';\n this.color = new Color(0xffffff); // diffuse\n\n this.roughness = 0.5;\n this.metalness = 0.5;\n this.map = null;\n this.lightMap = null;\n this.lightMapIntensity = 1.0;\n this.aoMap = null;\n this.aoMapIntensity = 1.0;\n this.emissive = new Color(0x000000);\n this.emissiveIntensity = 1.0;\n this.emissiveMap = null;\n this.bumpMap = null;\n this.bumpScale = 1;\n this.normalMap = null;\n this.normalMapType = TangentSpaceNormalMap;\n this.normalScale = new Vector2(1, 1);\n this.displacementMap = null;\n this.displacementScale = 1;\n this.displacementBias = 0;\n this.roughnessMap = null;\n this.metalnessMap = null;\n this.alphaMap = null;\n this.envMap = null;\n this.envMapIntensity = 1.0;\n this.refractionRatio = 0.98;\n this.wireframe = false;\n this.wireframeLinewidth = 1;\n this.wireframeLinecap = 'round';\n this.wireframeLinejoin = 'round';\n this.skinning = false;\n this.morphTargets = false;\n this.morphNormals = false;\n this.setValues(parameters);\n}\n\nMeshStandardMaterial.prototype = Object.create(Material.prototype);\nMeshStandardMaterial.prototype.constructor = MeshStandardMaterial;\nMeshStandardMaterial.prototype.isMeshStandardMaterial = true;\n\nMeshStandardMaterial.prototype.copy = function (source) {\n Material.prototype.copy.call(this, source);\n this.defines = {\n 'STANDARD': ''\n };\n this.color.copy(source.color);\n this.roughness = source.roughness;\n this.metalness = source.metalness;\n this.map = source.map;\n this.lightMap = source.lightMap;\n this.lightMapIntensity = source.lightMapIntensity;\n this.aoMap = source.aoMap;\n this.aoMapIntensity = source.aoMapIntensity;\n this.emissive.copy(source.emissive);\n this.emissiveMap = source.emissiveMap;\n this.emissiveIntensity = source.emissiveIntensity;\n this.bumpMap = source.bumpMap;\n this.bumpScale = source.bumpScale;\n this.normalMap = source.normalMap;\n this.normalMapType = source.normalMapType;\n this.normalScale.copy(source.normalScale);\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n this.roughnessMap = source.roughnessMap;\n this.metalnessMap = source.metalnessMap;\n this.alphaMap = source.alphaMap;\n this.envMap = source.envMap;\n this.envMapIntensity = source.envMapIntensity;\n this.refractionRatio = source.refractionRatio;\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n this.wireframeLinecap = source.wireframeLinecap;\n this.wireframeLinejoin = source.wireframeLinejoin;\n this.skinning = source.skinning;\n this.morphTargets = source.morphTargets;\n this.morphNormals = source.morphNormals;\n return this;\n};\n/**\n * @author WestLangley / http://github.com/WestLangley\n *\n * parameters = {\n * reflectivity: \n * clearcoat: \n * clearcoatRoughness: \n *\n * sheen: \n *\n * clearcoatNormalScale: ,\n * clearcoatNormalMap: new THREE.Texture( ),\n * }\n */\n\n\nfunction MeshPhysicalMaterial(parameters) {\n MeshStandardMaterial.call(this);\n this.defines = {\n 'STANDARD': '',\n 'PHYSICAL': ''\n };\n this.type = 'MeshPhysicalMaterial';\n this.reflectivity = 0.5; // maps to F0 = 0.04\n\n this.clearcoat = 0.0;\n this.clearcoatRoughness = 0.0;\n this.sheen = null; // null will disable sheen bsdf\n\n this.clearcoatNormalScale = new Vector2(1, 1);\n this.clearcoatNormalMap = null;\n this.transparency = 0.0;\n this.setValues(parameters);\n}\n\nMeshPhysicalMaterial.prototype = Object.create(MeshStandardMaterial.prototype);\nMeshPhysicalMaterial.prototype.constructor = MeshPhysicalMaterial;\nMeshPhysicalMaterial.prototype.isMeshPhysicalMaterial = true;\n\nMeshPhysicalMaterial.prototype.copy = function (source) {\n MeshStandardMaterial.prototype.copy.call(this, source);\n this.defines = {\n 'STANDARD': '',\n 'PHYSICAL': ''\n };\n this.reflectivity = source.reflectivity;\n this.clearcoat = source.clearcoat;\n this.clearcoatRoughness = source.clearcoatRoughness;\n if (source.sheen) this.sheen = (this.sheen || new Color()).copy(source.sheen);else this.sheen = null;\n this.clearcoatNormalMap = source.clearcoatNormalMap;\n this.clearcoatNormalScale.copy(source.clearcoatNormalScale);\n this.transparency = source.transparency;\n return this;\n};\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author alteredq / http://alteredqualia.com/\n *\n * parameters = {\n * color: ,\n * specular: ,\n * shininess: ,\n * opacity: ,\n *\n * map: new THREE.Texture( ),\n *\n * lightMap: new THREE.Texture( ),\n * lightMapIntensity: \n *\n * aoMap: new THREE.Texture( ),\n * aoMapIntensity: \n *\n * emissive: ,\n * emissiveIntensity: \n * emissiveMap: new THREE.Texture( ),\n *\n * bumpMap: new THREE.Texture( ),\n * bumpScale: ,\n *\n * normalMap: new THREE.Texture( ),\n * normalMapType: THREE.TangentSpaceNormalMap,\n * normalScale: ,\n *\n * displacementMap: new THREE.Texture( ),\n * displacementScale: ,\n * displacementBias: ,\n *\n * specularMap: new THREE.Texture( ),\n *\n * alphaMap: new THREE.Texture( ),\n *\n * envMap: new THREE.CubeTexture( [posx, negx, posy, negy, posz, negz] ),\n * combine: THREE.MultiplyOperation,\n * reflectivity: ,\n * refractionRatio: ,\n *\n * wireframe: ,\n * wireframeLinewidth: ,\n *\n * skinning: ,\n * morphTargets: ,\n * morphNormals: \n * }\n */\n\n\nfunction MeshPhongMaterial(parameters) {\n Material.call(this);\n this.type = 'MeshPhongMaterial';\n this.color = new Color(0xffffff); // diffuse\n\n this.specular = new Color(0x111111);\n this.shininess = 30;\n this.map = null;\n this.lightMap = null;\n this.lightMapIntensity = 1.0;\n this.aoMap = null;\n this.aoMapIntensity = 1.0;\n this.emissive = new Color(0x000000);\n this.emissiveIntensity = 1.0;\n this.emissiveMap = null;\n this.bumpMap = null;\n this.bumpScale = 1;\n this.normalMap = null;\n this.normalMapType = TangentSpaceNormalMap;\n this.normalScale = new Vector2(1, 1);\n this.displacementMap = null;\n this.displacementScale = 1;\n this.displacementBias = 0;\n this.specularMap = null;\n this.alphaMap = null;\n this.envMap = null;\n this.combine = MultiplyOperation;\n this.reflectivity = 1;\n this.refractionRatio = 0.98;\n this.wireframe = false;\n this.wireframeLinewidth = 1;\n this.wireframeLinecap = 'round';\n this.wireframeLinejoin = 'round';\n this.skinning = false;\n this.morphTargets = false;\n this.morphNormals = false;\n this.setValues(parameters);\n}\n\nMeshPhongMaterial.prototype = Object.create(Material.prototype);\nMeshPhongMaterial.prototype.constructor = MeshPhongMaterial;\nMeshPhongMaterial.prototype.isMeshPhongMaterial = true;\n\nMeshPhongMaterial.prototype.copy = function (source) {\n Material.prototype.copy.call(this, source);\n this.color.copy(source.color);\n this.specular.copy(source.specular);\n this.shininess = source.shininess;\n this.map = source.map;\n this.lightMap = source.lightMap;\n this.lightMapIntensity = source.lightMapIntensity;\n this.aoMap = source.aoMap;\n this.aoMapIntensity = source.aoMapIntensity;\n this.emissive.copy(source.emissive);\n this.emissiveMap = source.emissiveMap;\n this.emissiveIntensity = source.emissiveIntensity;\n this.bumpMap = source.bumpMap;\n this.bumpScale = source.bumpScale;\n this.normalMap = source.normalMap;\n this.normalMapType = source.normalMapType;\n this.normalScale.copy(source.normalScale);\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n this.specularMap = source.specularMap;\n this.alphaMap = source.alphaMap;\n this.envMap = source.envMap;\n this.combine = source.combine;\n this.reflectivity = source.reflectivity;\n this.refractionRatio = source.refractionRatio;\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n this.wireframeLinecap = source.wireframeLinecap;\n this.wireframeLinejoin = source.wireframeLinejoin;\n this.skinning = source.skinning;\n this.morphTargets = source.morphTargets;\n this.morphNormals = source.morphNormals;\n return this;\n};\n/**\n * @author takahirox / http://github.com/takahirox\n *\n * parameters = {\n * gradientMap: new THREE.Texture( )\n * }\n */\n\n\nfunction MeshToonMaterial(parameters) {\n MeshPhongMaterial.call(this);\n this.defines = {\n 'TOON': ''\n };\n this.type = 'MeshToonMaterial';\n this.gradientMap = null;\n this.setValues(parameters);\n}\n\nMeshToonMaterial.prototype = Object.create(MeshPhongMaterial.prototype);\nMeshToonMaterial.prototype.constructor = MeshToonMaterial;\nMeshToonMaterial.prototype.isMeshToonMaterial = true;\n\nMeshToonMaterial.prototype.copy = function (source) {\n MeshPhongMaterial.prototype.copy.call(this, source);\n this.gradientMap = source.gradientMap;\n return this;\n};\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author WestLangley / http://github.com/WestLangley\n *\n * parameters = {\n * opacity: ,\n *\n * bumpMap: new THREE.Texture( ),\n * bumpScale: ,\n *\n * normalMap: new THREE.Texture( ),\n * normalMapType: THREE.TangentSpaceNormalMap,\n * normalScale: ,\n *\n * displacementMap: new THREE.Texture( ),\n * displacementScale: ,\n * displacementBias: ,\n *\n * wireframe: ,\n * wireframeLinewidth: \n *\n * skinning: ,\n * morphTargets: ,\n * morphNormals: \n * }\n */\n\n\nfunction MeshNormalMaterial(parameters) {\n Material.call(this);\n this.type = 'MeshNormalMaterial';\n this.bumpMap = null;\n this.bumpScale = 1;\n this.normalMap = null;\n this.normalMapType = TangentSpaceNormalMap;\n this.normalScale = new Vector2(1, 1);\n this.displacementMap = null;\n this.displacementScale = 1;\n this.displacementBias = 0;\n this.wireframe = false;\n this.wireframeLinewidth = 1;\n this.fog = false;\n this.skinning = false;\n this.morphTargets = false;\n this.morphNormals = false;\n this.setValues(parameters);\n}\n\nMeshNormalMaterial.prototype = Object.create(Material.prototype);\nMeshNormalMaterial.prototype.constructor = MeshNormalMaterial;\nMeshNormalMaterial.prototype.isMeshNormalMaterial = true;\n\nMeshNormalMaterial.prototype.copy = function (source) {\n Material.prototype.copy.call(this, source);\n this.bumpMap = source.bumpMap;\n this.bumpScale = source.bumpScale;\n this.normalMap = source.normalMap;\n this.normalMapType = source.normalMapType;\n this.normalScale.copy(source.normalScale);\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n this.skinning = source.skinning;\n this.morphTargets = source.morphTargets;\n this.morphNormals = source.morphNormals;\n return this;\n};\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author alteredq / http://alteredqualia.com/\n *\n * parameters = {\n * color: ,\n * opacity: ,\n *\n * map: new THREE.Texture( ),\n *\n * lightMap: new THREE.Texture( ),\n * lightMapIntensity: \n *\n * aoMap: new THREE.Texture( ),\n * aoMapIntensity: \n *\n * emissive: ,\n * emissiveIntensity: \n * emissiveMap: new THREE.Texture( ),\n *\n * specularMap: new THREE.Texture( ),\n *\n * alphaMap: new THREE.Texture( ),\n *\n * envMap: new THREE.CubeTexture( [posx, negx, posy, negy, posz, negz] ),\n * combine: THREE.Multiply,\n * reflectivity: ,\n * refractionRatio: ,\n *\n * wireframe: ,\n * wireframeLinewidth: ,\n *\n * skinning: ,\n * morphTargets: ,\n * morphNormals: \n * }\n */\n\n\nfunction MeshLambertMaterial(parameters) {\n Material.call(this);\n this.type = 'MeshLambertMaterial';\n this.color = new Color(0xffffff); // diffuse\n\n this.map = null;\n this.lightMap = null;\n this.lightMapIntensity = 1.0;\n this.aoMap = null;\n this.aoMapIntensity = 1.0;\n this.emissive = new Color(0x000000);\n this.emissiveIntensity = 1.0;\n this.emissiveMap = null;\n this.specularMap = null;\n this.alphaMap = null;\n this.envMap = null;\n this.combine = MultiplyOperation;\n this.reflectivity = 1;\n this.refractionRatio = 0.98;\n this.wireframe = false;\n this.wireframeLinewidth = 1;\n this.wireframeLinecap = 'round';\n this.wireframeLinejoin = 'round';\n this.skinning = false;\n this.morphTargets = false;\n this.morphNormals = false;\n this.setValues(parameters);\n}\n\nMeshLambertMaterial.prototype = Object.create(Material.prototype);\nMeshLambertMaterial.prototype.constructor = MeshLambertMaterial;\nMeshLambertMaterial.prototype.isMeshLambertMaterial = true;\n\nMeshLambertMaterial.prototype.copy = function (source) {\n Material.prototype.copy.call(this, source);\n this.color.copy(source.color);\n this.map = source.map;\n this.lightMap = source.lightMap;\n this.lightMapIntensity = source.lightMapIntensity;\n this.aoMap = source.aoMap;\n this.aoMapIntensity = source.aoMapIntensity;\n this.emissive.copy(source.emissive);\n this.emissiveMap = source.emissiveMap;\n this.emissiveIntensity = source.emissiveIntensity;\n this.specularMap = source.specularMap;\n this.alphaMap = source.alphaMap;\n this.envMap = source.envMap;\n this.combine = source.combine;\n this.reflectivity = source.reflectivity;\n this.refractionRatio = source.refractionRatio;\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n this.wireframeLinecap = source.wireframeLinecap;\n this.wireframeLinejoin = source.wireframeLinejoin;\n this.skinning = source.skinning;\n this.morphTargets = source.morphTargets;\n this.morphNormals = source.morphNormals;\n return this;\n};\n/**\n * @author WestLangley / http://github.com/WestLangley\n *\n * parameters = {\n * color: ,\n * opacity: ,\n *\n * matcap: new THREE.Texture( ),\n *\n * map: new THREE.Texture( ),\n *\n * bumpMap: new THREE.Texture( ),\n * bumpScale: ,\n *\n * normalMap: new THREE.Texture( ),\n * normalMapType: THREE.TangentSpaceNormalMap,\n * normalScale: ,\n *\n * displacementMap: new THREE.Texture( ),\n * displacementScale: ,\n * displacementBias: ,\n *\n * alphaMap: new THREE.Texture( ),\n *\n * skinning: ,\n * morphTargets: ,\n * morphNormals: \n * }\n */\n\n\nfunction MeshMatcapMaterial(parameters) {\n Material.call(this);\n this.defines = {\n 'MATCAP': ''\n };\n this.type = 'MeshMatcapMaterial';\n this.color = new Color(0xffffff); // diffuse\n\n this.matcap = null;\n this.map = null;\n this.bumpMap = null;\n this.bumpScale = 1;\n this.normalMap = null;\n this.normalMapType = TangentSpaceNormalMap;\n this.normalScale = new Vector2(1, 1);\n this.displacementMap = null;\n this.displacementScale = 1;\n this.displacementBias = 0;\n this.alphaMap = null;\n this.skinning = false;\n this.morphTargets = false;\n this.morphNormals = false;\n this.setValues(parameters);\n}\n\nMeshMatcapMaterial.prototype = Object.create(Material.prototype);\nMeshMatcapMaterial.prototype.constructor = MeshMatcapMaterial;\nMeshMatcapMaterial.prototype.isMeshMatcapMaterial = true;\n\nMeshMatcapMaterial.prototype.copy = function (source) {\n Material.prototype.copy.call(this, source);\n this.defines = {\n 'MATCAP': ''\n };\n this.color.copy(source.color);\n this.matcap = source.matcap;\n this.map = source.map;\n this.bumpMap = source.bumpMap;\n this.bumpScale = source.bumpScale;\n this.normalMap = source.normalMap;\n this.normalMapType = source.normalMapType;\n this.normalScale.copy(source.normalScale);\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n this.alphaMap = source.alphaMap;\n this.skinning = source.skinning;\n this.morphTargets = source.morphTargets;\n this.morphNormals = source.morphNormals;\n return this;\n};\n/**\n * @author alteredq / http://alteredqualia.com/\n *\n * parameters = {\n * color: ,\n * opacity: ,\n *\n * linewidth: ,\n *\n * scale: ,\n * dashSize: ,\n * gapSize: \n * }\n */\n\n\nfunction LineDashedMaterial(parameters) {\n LineBasicMaterial.call(this);\n this.type = 'LineDashedMaterial';\n this.scale = 1;\n this.dashSize = 3;\n this.gapSize = 1;\n this.setValues(parameters);\n}\n\nLineDashedMaterial.prototype = Object.create(LineBasicMaterial.prototype);\nLineDashedMaterial.prototype.constructor = LineDashedMaterial;\nLineDashedMaterial.prototype.isLineDashedMaterial = true;\n\nLineDashedMaterial.prototype.copy = function (source) {\n LineBasicMaterial.prototype.copy.call(this, source);\n this.scale = source.scale;\n this.dashSize = source.dashSize;\n this.gapSize = source.gapSize;\n return this;\n};\n\nvar Materials = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ShadowMaterial: ShadowMaterial,\n SpriteMaterial: SpriteMaterial,\n RawShaderMaterial: RawShaderMaterial,\n ShaderMaterial: ShaderMaterial,\n PointsMaterial: PointsMaterial,\n MeshPhysicalMaterial: MeshPhysicalMaterial,\n MeshStandardMaterial: MeshStandardMaterial,\n MeshPhongMaterial: MeshPhongMaterial,\n MeshToonMaterial: MeshToonMaterial,\n MeshNormalMaterial: MeshNormalMaterial,\n MeshLambertMaterial: MeshLambertMaterial,\n MeshDepthMaterial: MeshDepthMaterial,\n MeshDistanceMaterial: MeshDistanceMaterial,\n MeshBasicMaterial: MeshBasicMaterial,\n MeshMatcapMaterial: MeshMatcapMaterial,\n LineDashedMaterial: LineDashedMaterial,\n LineBasicMaterial: LineBasicMaterial,\n Material: Material\n});\n/**\n * @author tschw\n * @author Ben Houston / http://clara.io/\n * @author David Sarno / http://lighthaus.us/\n */\n\nvar AnimationUtils = {\n // same as Array.prototype.slice, but also works on typed arrays\n arraySlice: function arraySlice(array, from, to) {\n if (AnimationUtils.isTypedArray(array)) {\n // in ios9 array.subarray(from, undefined) will return empty array\n // but array.subarray(from) or array.subarray(from, len) is correct\n return new array.constructor(array.subarray(from, to !== undefined ? to : array.length));\n }\n\n return array.slice(from, to);\n },\n // converts an array to a specific type\n convertArray: function convertArray(array, type, forceClone) {\n if (!array || // let 'undefined' and 'null' pass\n !forceClone && array.constructor === type) return array;\n\n if (typeof type.BYTES_PER_ELEMENT === 'number') {\n return new type(array); // create typed array\n }\n\n return Array.prototype.slice.call(array); // create Array\n },\n isTypedArray: function isTypedArray(object) {\n return ArrayBuffer.isView(object) && !(object instanceof DataView);\n },\n // returns an array by which times and values can be sorted\n getKeyframeOrder: function getKeyframeOrder(times) {\n function compareTime(i, j) {\n return times[i] - times[j];\n }\n\n var n = times.length;\n var result = new Array(n);\n\n for (var i = 0; i !== n; ++i) {\n result[i] = i;\n }\n\n result.sort(compareTime);\n return result;\n },\n // uses the array previously returned by 'getKeyframeOrder' to sort data\n sortedArray: function sortedArray(values, stride, order) {\n var nValues = values.length;\n var result = new values.constructor(nValues);\n\n for (var i = 0, dstOffset = 0; dstOffset !== nValues; ++i) {\n var srcOffset = order[i] * stride;\n\n for (var j = 0; j !== stride; ++j) {\n result[dstOffset++] = values[srcOffset + j];\n }\n }\n\n return result;\n },\n // function for parsing AOS keyframe formats\n flattenJSON: function flattenJSON(jsonKeys, times, values, valuePropertyName) {\n var i = 1,\n key = jsonKeys[0];\n\n while (key !== undefined && key[valuePropertyName] === undefined) {\n key = jsonKeys[i++];\n }\n\n if (key === undefined) return; // no data\n\n var value = key[valuePropertyName];\n if (value === undefined) return; // no data\n\n if (Array.isArray(value)) {\n do {\n value = key[valuePropertyName];\n\n if (value !== undefined) {\n times.push(key.time);\n values.push.apply(values, value); // push all elements\n }\n\n key = jsonKeys[i++];\n } while (key !== undefined);\n } else if (value.toArray !== undefined) {\n // ...assume THREE.Math-ish\n do {\n value = key[valuePropertyName];\n\n if (value !== undefined) {\n times.push(key.time);\n value.toArray(values, values.length);\n }\n\n key = jsonKeys[i++];\n } while (key !== undefined);\n } else {\n // otherwise push as-is\n do {\n value = key[valuePropertyName];\n\n if (value !== undefined) {\n times.push(key.time);\n values.push(value);\n }\n\n key = jsonKeys[i++];\n } while (key !== undefined);\n }\n },\n subclip: function subclip(sourceClip, name, startFrame, endFrame, fps) {\n fps = fps || 30;\n var clip = sourceClip.clone();\n clip.name = name;\n var tracks = [];\n\n for (var i = 0; i < clip.tracks.length; ++i) {\n var track = clip.tracks[i];\n var valueSize = track.getValueSize();\n var times = [];\n var values = [];\n\n for (var j = 0; j < track.times.length; ++j) {\n var frame = track.times[j] * fps;\n if (frame < startFrame || frame >= endFrame) continue;\n times.push(track.times[j]);\n\n for (var k = 0; k < valueSize; ++k) {\n values.push(track.values[j * valueSize + k]);\n }\n }\n\n if (times.length === 0) continue;\n track.times = AnimationUtils.convertArray(times, track.times.constructor);\n track.values = AnimationUtils.convertArray(values, track.values.constructor);\n tracks.push(track);\n }\n\n clip.tracks = tracks; // find minimum .times value across all tracks in the trimmed clip\n\n var minStartTime = Infinity;\n\n for (var i = 0; i < clip.tracks.length; ++i) {\n if (minStartTime > clip.tracks[i].times[0]) {\n minStartTime = clip.tracks[i].times[0];\n }\n } // shift all tracks such that clip begins at t=0\n\n\n for (var i = 0; i < clip.tracks.length; ++i) {\n clip.tracks[i].shift(-1 * minStartTime);\n }\n\n clip.resetDuration();\n return clip;\n }\n};\n/**\n * Abstract base class of interpolants over parametric samples.\n *\n * The parameter domain is one dimensional, typically the time or a path\n * along a curve defined by the data.\n *\n * The sample values can have any dimensionality and derived classes may\n * apply special interpretations to the data.\n *\n * This class provides the interval seek in a Template Method, deferring\n * the actual interpolation to derived classes.\n *\n * Time complexity is O(1) for linear access crossing at most two points\n * and O(log N) for random access, where N is the number of positions.\n *\n * References:\n *\n * \t\thttp://www.oodesign.com/template-method-pattern.html\n *\n * @author tschw\n */\n\nfunction Interpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n this.parameterPositions = parameterPositions;\n this._cachedIndex = 0;\n this.resultBuffer = resultBuffer !== undefined ? resultBuffer : new sampleValues.constructor(sampleSize);\n this.sampleValues = sampleValues;\n this.valueSize = sampleSize;\n}\n\nObject.assign(Interpolant.prototype, {\n evaluate: function evaluate(t) {\n var pp = this.parameterPositions,\n i1 = this._cachedIndex,\n t1 = pp[i1],\n t0 = pp[i1 - 1];\n\n validate_interval: {\n seek: {\n var right;\n\n linear_scan: {\n //- See http://jsperf.com/comparison-to-undefined/3\n //- slower code:\n //-\n //- \t\t\t\tif ( t >= t1 || t1 === undefined ) {\n forward_scan: if (!(t < t1)) {\n for (var giveUpAt = i1 + 2;;) {\n if (t1 === undefined) {\n if (t < t0) break forward_scan; // after end\n\n i1 = pp.length;\n this._cachedIndex = i1;\n return this.afterEnd_(i1 - 1, t, t0);\n }\n\n if (i1 === giveUpAt) break; // this loop\n\n t0 = t1;\n t1 = pp[++i1];\n\n if (t < t1) {\n // we have arrived at the sought interval\n break seek;\n }\n } // prepare binary search on the right side of the index\n\n\n right = pp.length;\n break linear_scan;\n } //- slower code:\n //-\t\t\t\t\tif ( t < t0 || t0 === undefined ) {\n\n\n if (!(t >= t0)) {\n // looping?\n var t1global = pp[1];\n\n if (t < t1global) {\n i1 = 2; // + 1, using the scan for the details\n\n t0 = t1global;\n } // linear reverse scan\n\n\n for (var giveUpAt = i1 - 2;;) {\n if (t0 === undefined) {\n // before start\n this._cachedIndex = 0;\n return this.beforeStart_(0, t, t1);\n }\n\n if (i1 === giveUpAt) break; // this loop\n\n t1 = t0;\n t0 = pp[--i1 - 1];\n\n if (t >= t0) {\n // we have arrived at the sought interval\n break seek;\n }\n } // prepare binary search on the left side of the index\n\n\n right = i1;\n i1 = 0;\n break linear_scan;\n } // the interval is valid\n\n\n break validate_interval;\n } // linear scan\n // binary search\n\n\n while (i1 < right) {\n var mid = i1 + right >>> 1;\n\n if (t < pp[mid]) {\n right = mid;\n } else {\n i1 = mid + 1;\n }\n }\n\n t1 = pp[i1];\n t0 = pp[i1 - 1]; // check boundary cases, again\n\n if (t0 === undefined) {\n this._cachedIndex = 0;\n return this.beforeStart_(0, t, t1);\n }\n\n if (t1 === undefined) {\n i1 = pp.length;\n this._cachedIndex = i1;\n return this.afterEnd_(i1 - 1, t0, t);\n }\n } // seek\n\n\n this._cachedIndex = i1;\n this.intervalChanged_(i1, t0, t1);\n } // validate_interval\n\n\n return this.interpolate_(i1, t0, t, t1);\n },\n settings: null,\n // optional, subclass-specific settings structure\n // Note: The indirection allows central control of many interpolants.\n // --- Protected interface\n DefaultSettings_: {},\n getSettings_: function getSettings_() {\n return this.settings || this.DefaultSettings_;\n },\n copySampleValue_: function copySampleValue_(index) {\n // copies a sample value to the result buffer\n var result = this.resultBuffer,\n values = this.sampleValues,\n stride = this.valueSize,\n offset = index * stride;\n\n for (var i = 0; i !== stride; ++i) {\n result[i] = values[offset + i];\n }\n\n return result;\n },\n // Template methods for derived classes:\n interpolate_: function interpolate_()\n /* i1, t0, t, t1 */\n {\n throw new Error('call to abstract method'); // implementations shall return this.resultBuffer\n },\n intervalChanged_: function intervalChanged_()\n /* i1, t0, t1 */\n {// empty\n }\n}); //!\\ DECLARE ALIAS AFTER assign prototype !\n\nObject.assign(Interpolant.prototype, {\n //( 0, t, t0 ), returns this.resultBuffer\n beforeStart_: Interpolant.prototype.copySampleValue_,\n //( N-1, tN-1, t ), returns this.resultBuffer\n afterEnd_: Interpolant.prototype.copySampleValue_\n});\n/**\n * Fast and simple cubic spline interpolant.\n *\n * It was derived from a Hermitian construction setting the first derivative\n * at each sample position to the linear slope between neighboring positions\n * over their parameter interval.\n *\n * @author tschw\n */\n\nfunction CubicInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n Interpolant.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer);\n this._weightPrev = -0;\n this._offsetPrev = -0;\n this._weightNext = -0;\n this._offsetNext = -0;\n}\n\nCubicInterpolant.prototype = Object.assign(Object.create(Interpolant.prototype), {\n constructor: CubicInterpolant,\n DefaultSettings_: {\n endingStart: ZeroCurvatureEnding,\n endingEnd: ZeroCurvatureEnding\n },\n intervalChanged_: function intervalChanged_(i1, t0, t1) {\n var pp = this.parameterPositions,\n iPrev = i1 - 2,\n iNext = i1 + 1,\n tPrev = pp[iPrev],\n tNext = pp[iNext];\n\n if (tPrev === undefined) {\n switch (this.getSettings_().endingStart) {\n case ZeroSlopeEnding:\n // f'(t0) = 0\n iPrev = i1;\n tPrev = 2 * t0 - t1;\n break;\n\n case WrapAroundEnding:\n // use the other end of the curve\n iPrev = pp.length - 2;\n tPrev = t0 + pp[iPrev] - pp[iPrev + 1];\n break;\n\n default:\n // ZeroCurvatureEnding\n // f''(t0) = 0 a.k.a. Natural Spline\n iPrev = i1;\n tPrev = t1;\n }\n }\n\n if (tNext === undefined) {\n switch (this.getSettings_().endingEnd) {\n case ZeroSlopeEnding:\n // f'(tN) = 0\n iNext = i1;\n tNext = 2 * t1 - t0;\n break;\n\n case WrapAroundEnding:\n // use the other end of the curve\n iNext = 1;\n tNext = t1 + pp[1] - pp[0];\n break;\n\n default:\n // ZeroCurvatureEnding\n // f''(tN) = 0, a.k.a. Natural Spline\n iNext = i1 - 1;\n tNext = t0;\n }\n }\n\n var halfDt = (t1 - t0) * 0.5,\n stride = this.valueSize;\n this._weightPrev = halfDt / (t0 - tPrev);\n this._weightNext = halfDt / (tNext - t1);\n this._offsetPrev = iPrev * stride;\n this._offsetNext = iNext * stride;\n },\n interpolate_: function interpolate_(i1, t0, t, t1) {\n var result = this.resultBuffer,\n values = this.sampleValues,\n stride = this.valueSize,\n o1 = i1 * stride,\n o0 = o1 - stride,\n oP = this._offsetPrev,\n oN = this._offsetNext,\n wP = this._weightPrev,\n wN = this._weightNext,\n p = (t - t0) / (t1 - t0),\n pp = p * p,\n ppp = pp * p; // evaluate polynomials\n\n var sP = -wP * ppp + 2 * wP * pp - wP * p;\n var s0 = (1 + wP) * ppp + (-1.5 - 2 * wP) * pp + (-0.5 + wP) * p + 1;\n var s1 = (-1 - wN) * ppp + (1.5 + wN) * pp + 0.5 * p;\n var sN = wN * ppp - wN * pp; // combine data linearly\n\n for (var i = 0; i !== stride; ++i) {\n result[i] = sP * values[oP + i] + s0 * values[o0 + i] + s1 * values[o1 + i] + sN * values[oN + i];\n }\n\n return result;\n }\n});\n/**\n * @author tschw\n */\n\nfunction LinearInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n Interpolant.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer);\n}\n\nLinearInterpolant.prototype = Object.assign(Object.create(Interpolant.prototype), {\n constructor: LinearInterpolant,\n interpolate_: function interpolate_(i1, t0, t, t1) {\n var result = this.resultBuffer,\n values = this.sampleValues,\n stride = this.valueSize,\n offset1 = i1 * stride,\n offset0 = offset1 - stride,\n weight1 = (t - t0) / (t1 - t0),\n weight0 = 1 - weight1;\n\n for (var i = 0; i !== stride; ++i) {\n result[i] = values[offset0 + i] * weight0 + values[offset1 + i] * weight1;\n }\n\n return result;\n }\n});\n/**\n *\n * Interpolant that evaluates to the sample value at the position preceeding\n * the parameter.\n *\n * @author tschw\n */\n\nfunction DiscreteInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n Interpolant.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer);\n}\n\nDiscreteInterpolant.prototype = Object.assign(Object.create(Interpolant.prototype), {\n constructor: DiscreteInterpolant,\n interpolate_: function interpolate_(i1\n /*, t0, t, t1 */\n ) {\n return this.copySampleValue_(i1 - 1);\n }\n});\n/**\n *\n * A timed sequence of keyframes for a specific property.\n *\n *\n * @author Ben Houston / http://clara.io/\n * @author David Sarno / http://lighthaus.us/\n * @author tschw\n */\n\nfunction KeyframeTrack(name, times, values, interpolation) {\n if (name === undefined) throw new Error('THREE.KeyframeTrack: track name is undefined');\n if (times === undefined || times.length === 0) throw new Error('THREE.KeyframeTrack: no keyframes in track named ' + name);\n this.name = name;\n this.times = AnimationUtils.convertArray(times, this.TimeBufferType);\n this.values = AnimationUtils.convertArray(values, this.ValueBufferType);\n this.setInterpolation(interpolation || this.DefaultInterpolation);\n} // Static methods\n\n\nObject.assign(KeyframeTrack, {\n // Serialization (in static context, because of constructor invocation\n // and automatic invocation of .toJSON):\n toJSON: function toJSON(track) {\n var trackType = track.constructor;\n var json; // derived classes can define a static toJSON method\n\n if (trackType.toJSON !== undefined) {\n json = trackType.toJSON(track);\n } else {\n // by default, we assume the data can be serialized as-is\n json = {\n 'name': track.name,\n 'times': AnimationUtils.convertArray(track.times, Array),\n 'values': AnimationUtils.convertArray(track.values, Array)\n };\n var interpolation = track.getInterpolation();\n\n if (interpolation !== track.DefaultInterpolation) {\n json.interpolation = interpolation;\n }\n }\n\n json.type = track.ValueTypeName; // mandatory\n\n return json;\n }\n});\nObject.assign(KeyframeTrack.prototype, {\n constructor: KeyframeTrack,\n TimeBufferType: Float32Array,\n ValueBufferType: Float32Array,\n DefaultInterpolation: InterpolateLinear,\n InterpolantFactoryMethodDiscrete: function InterpolantFactoryMethodDiscrete(result) {\n return new DiscreteInterpolant(this.times, this.values, this.getValueSize(), result);\n },\n InterpolantFactoryMethodLinear: function InterpolantFactoryMethodLinear(result) {\n return new LinearInterpolant(this.times, this.values, this.getValueSize(), result);\n },\n InterpolantFactoryMethodSmooth: function InterpolantFactoryMethodSmooth(result) {\n return new CubicInterpolant(this.times, this.values, this.getValueSize(), result);\n },\n setInterpolation: function setInterpolation(interpolation) {\n var factoryMethod;\n\n switch (interpolation) {\n case InterpolateDiscrete:\n factoryMethod = this.InterpolantFactoryMethodDiscrete;\n break;\n\n case InterpolateLinear:\n factoryMethod = this.InterpolantFactoryMethodLinear;\n break;\n\n case InterpolateSmooth:\n factoryMethod = this.InterpolantFactoryMethodSmooth;\n break;\n }\n\n if (factoryMethod === undefined) {\n var message = \"unsupported interpolation for \" + this.ValueTypeName + \" keyframe track named \" + this.name;\n\n if (this.createInterpolant === undefined) {\n // fall back to default, unless the default itself is messed up\n if (interpolation !== this.DefaultInterpolation) {\n this.setInterpolation(this.DefaultInterpolation);\n } else {\n throw new Error(message); // fatal, in this case\n }\n }\n\n console.warn('THREE.KeyframeTrack:', message);\n return this;\n }\n\n this.createInterpolant = factoryMethod;\n return this;\n },\n getInterpolation: function getInterpolation() {\n switch (this.createInterpolant) {\n case this.InterpolantFactoryMethodDiscrete:\n return InterpolateDiscrete;\n\n case this.InterpolantFactoryMethodLinear:\n return InterpolateLinear;\n\n case this.InterpolantFactoryMethodSmooth:\n return InterpolateSmooth;\n }\n },\n getValueSize: function getValueSize() {\n return this.values.length / this.times.length;\n },\n // move all keyframes either forwards or backwards in time\n shift: function shift(timeOffset) {\n if (timeOffset !== 0.0) {\n var times = this.times;\n\n for (var i = 0, n = times.length; i !== n; ++i) {\n times[i] += timeOffset;\n }\n }\n\n return this;\n },\n // scale all keyframe times by a factor (useful for frame <-> seconds conversions)\n scale: function scale(timeScale) {\n if (timeScale !== 1.0) {\n var times = this.times;\n\n for (var i = 0, n = times.length; i !== n; ++i) {\n times[i] *= timeScale;\n }\n }\n\n return this;\n },\n // removes keyframes before and after animation without changing any values within the range [startTime, endTime].\n // IMPORTANT: We do not shift around keys to the start of the track time, because for interpolated keys this will change their values\n trim: function trim(startTime, endTime) {\n var times = this.times,\n nKeys = times.length,\n from = 0,\n to = nKeys - 1;\n\n while (from !== nKeys && times[from] < startTime) {\n ++from;\n }\n\n while (to !== -1 && times[to] > endTime) {\n --to;\n }\n\n ++to; // inclusive -> exclusive bound\n\n if (from !== 0 || to !== nKeys) {\n // empty tracks are forbidden, so keep at least one keyframe\n if (from >= to) to = Math.max(to, 1), from = to - 1;\n var stride = this.getValueSize();\n this.times = AnimationUtils.arraySlice(times, from, to);\n this.values = AnimationUtils.arraySlice(this.values, from * stride, to * stride);\n }\n\n return this;\n },\n // ensure we do not get a GarbageInGarbageOut situation, make sure tracks are at least minimally viable\n validate: function validate() {\n var valid = true;\n var valueSize = this.getValueSize();\n\n if (valueSize - Math.floor(valueSize) !== 0) {\n console.error('THREE.KeyframeTrack: Invalid value size in track.', this);\n valid = false;\n }\n\n var times = this.times,\n values = this.values,\n nKeys = times.length;\n\n if (nKeys === 0) {\n console.error('THREE.KeyframeTrack: Track is empty.', this);\n valid = false;\n }\n\n var prevTime = null;\n\n for (var i = 0; i !== nKeys; i++) {\n var currTime = times[i];\n\n if (typeof currTime === 'number' && isNaN(currTime)) {\n console.error('THREE.KeyframeTrack: Time is not a valid number.', this, i, currTime);\n valid = false;\n break;\n }\n\n if (prevTime !== null && prevTime > currTime) {\n console.error('THREE.KeyframeTrack: Out of order keys.', this, i, currTime, prevTime);\n valid = false;\n break;\n }\n\n prevTime = currTime;\n }\n\n if (values !== undefined) {\n if (AnimationUtils.isTypedArray(values)) {\n for (var i = 0, n = values.length; i !== n; ++i) {\n var value = values[i];\n\n if (isNaN(value)) {\n console.error('THREE.KeyframeTrack: Value is not a valid number.', this, i, value);\n valid = false;\n break;\n }\n }\n }\n }\n\n return valid;\n },\n // removes equivalent sequential keys as common in morph target sequences\n // (0,0,0,0,1,1,1,0,0,0,0,0,0,0) --> (0,0,1,1,0,0)\n optimize: function optimize() {\n var times = this.times,\n values = this.values,\n stride = this.getValueSize(),\n smoothInterpolation = this.getInterpolation() === InterpolateSmooth,\n writeIndex = 1,\n lastIndex = times.length - 1;\n\n for (var i = 1; i < lastIndex; ++i) {\n var keep = false;\n var time = times[i];\n var timeNext = times[i + 1]; // remove adjacent keyframes scheduled at the same time\n\n if (time !== timeNext && (i !== 1 || time !== time[0])) {\n if (!smoothInterpolation) {\n // remove unnecessary keyframes same as their neighbors\n var offset = i * stride,\n offsetP = offset - stride,\n offsetN = offset + stride;\n\n for (var j = 0; j !== stride; ++j) {\n var value = values[offset + j];\n\n if (value !== values[offsetP + j] || value !== values[offsetN + j]) {\n keep = true;\n break;\n }\n }\n } else {\n keep = true;\n }\n } // in-place compaction\n\n\n if (keep) {\n if (i !== writeIndex) {\n times[writeIndex] = times[i];\n var readOffset = i * stride,\n writeOffset = writeIndex * stride;\n\n for (var j = 0; j !== stride; ++j) {\n values[writeOffset + j] = values[readOffset + j];\n }\n }\n\n ++writeIndex;\n }\n } // flush last keyframe (compaction looks ahead)\n\n\n if (lastIndex > 0) {\n times[writeIndex] = times[lastIndex];\n\n for (var readOffset = lastIndex * stride, writeOffset = writeIndex * stride, j = 0; j !== stride; ++j) {\n values[writeOffset + j] = values[readOffset + j];\n }\n\n ++writeIndex;\n }\n\n if (writeIndex !== times.length) {\n this.times = AnimationUtils.arraySlice(times, 0, writeIndex);\n this.values = AnimationUtils.arraySlice(values, 0, writeIndex * stride);\n }\n\n return this;\n },\n clone: function clone() {\n var times = AnimationUtils.arraySlice(this.times, 0);\n var values = AnimationUtils.arraySlice(this.values, 0);\n var TypedKeyframeTrack = this.constructor;\n var track = new TypedKeyframeTrack(this.name, times, values); // Interpolant argument to constructor is not saved, so copy the factory method directly.\n\n track.createInterpolant = this.createInterpolant;\n return track;\n }\n});\n/**\n *\n * A Track of Boolean keyframe values.\n *\n *\n * @author Ben Houston / http://clara.io/\n * @author David Sarno / http://lighthaus.us/\n * @author tschw\n */\n\nfunction BooleanKeyframeTrack(name, times, values) {\n KeyframeTrack.call(this, name, times, values);\n}\n\nBooleanKeyframeTrack.prototype = Object.assign(Object.create(KeyframeTrack.prototype), {\n constructor: BooleanKeyframeTrack,\n ValueTypeName: 'bool',\n ValueBufferType: Array,\n DefaultInterpolation: InterpolateDiscrete,\n InterpolantFactoryMethodLinear: undefined,\n InterpolantFactoryMethodSmooth: undefined // Note: Actually this track could have a optimized / compressed\n // representation of a single value and a custom interpolant that\n // computes \"firstValue ^ isOdd( index )\".\n\n});\n/**\n *\n * A Track of keyframe values that represent color.\n *\n *\n * @author Ben Houston / http://clara.io/\n * @author David Sarno / http://lighthaus.us/\n * @author tschw\n */\n\nfunction ColorKeyframeTrack(name, times, values, interpolation) {\n KeyframeTrack.call(this, name, times, values, interpolation);\n}\n\nColorKeyframeTrack.prototype = Object.assign(Object.create(KeyframeTrack.prototype), {\n constructor: ColorKeyframeTrack,\n ValueTypeName: 'color' // ValueBufferType is inherited\n // DefaultInterpolation is inherited\n // Note: Very basic implementation and nothing special yet.\n // However, this is the place for color space parameterization.\n\n});\n/**\n *\n * A Track of numeric keyframe values.\n *\n * @author Ben Houston / http://clara.io/\n * @author David Sarno / http://lighthaus.us/\n * @author tschw\n */\n\nfunction NumberKeyframeTrack(name, times, values, interpolation) {\n KeyframeTrack.call(this, name, times, values, interpolation);\n}\n\nNumberKeyframeTrack.prototype = Object.assign(Object.create(KeyframeTrack.prototype), {\n constructor: NumberKeyframeTrack,\n ValueTypeName: 'number' // ValueBufferType is inherited\n // DefaultInterpolation is inherited\n\n});\n/**\n * Spherical linear unit quaternion interpolant.\n *\n * @author tschw\n */\n\nfunction QuaternionLinearInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n Interpolant.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer);\n}\n\nQuaternionLinearInterpolant.prototype = Object.assign(Object.create(Interpolant.prototype), {\n constructor: QuaternionLinearInterpolant,\n interpolate_: function interpolate_(i1, t0, t, t1) {\n var result = this.resultBuffer,\n values = this.sampleValues,\n stride = this.valueSize,\n offset = i1 * stride,\n alpha = (t - t0) / (t1 - t0);\n\n for (var end = offset + stride; offset !== end; offset += 4) {\n Quaternion.slerpFlat(result, 0, values, offset - stride, values, offset, alpha);\n }\n\n return result;\n }\n});\n/**\n *\n * A Track of quaternion keyframe values.\n *\n * @author Ben Houston / http://clara.io/\n * @author David Sarno / http://lighthaus.us/\n * @author tschw\n */\n\nfunction QuaternionKeyframeTrack(name, times, values, interpolation) {\n KeyframeTrack.call(this, name, times, values, interpolation);\n}\n\nQuaternionKeyframeTrack.prototype = Object.assign(Object.create(KeyframeTrack.prototype), {\n constructor: QuaternionKeyframeTrack,\n ValueTypeName: 'quaternion',\n // ValueBufferType is inherited\n DefaultInterpolation: InterpolateLinear,\n InterpolantFactoryMethodLinear: function InterpolantFactoryMethodLinear(result) {\n return new QuaternionLinearInterpolant(this.times, this.values, this.getValueSize(), result);\n },\n InterpolantFactoryMethodSmooth: undefined // not yet implemented\n\n});\n/**\n *\n * A Track that interpolates Strings\n *\n *\n * @author Ben Houston / http://clara.io/\n * @author David Sarno / http://lighthaus.us/\n * @author tschw\n */\n\nfunction StringKeyframeTrack(name, times, values, interpolation) {\n KeyframeTrack.call(this, name, times, values, interpolation);\n}\n\nStringKeyframeTrack.prototype = Object.assign(Object.create(KeyframeTrack.prototype), {\n constructor: StringKeyframeTrack,\n ValueTypeName: 'string',\n ValueBufferType: Array,\n DefaultInterpolation: InterpolateDiscrete,\n InterpolantFactoryMethodLinear: undefined,\n InterpolantFactoryMethodSmooth: undefined\n});\n/**\n *\n * A Track of vectored keyframe values.\n *\n *\n * @author Ben Houston / http://clara.io/\n * @author David Sarno / http://lighthaus.us/\n * @author tschw\n */\n\nfunction VectorKeyframeTrack(name, times, values, interpolation) {\n KeyframeTrack.call(this, name, times, values, interpolation);\n}\n\nVectorKeyframeTrack.prototype = Object.assign(Object.create(KeyframeTrack.prototype), {\n constructor: VectorKeyframeTrack,\n ValueTypeName: 'vector' // ValueBufferType is inherited\n // DefaultInterpolation is inherited\n\n});\n/**\n *\n * Reusable set of Tracks that represent an animation.\n *\n * @author Ben Houston / http://clara.io/\n * @author David Sarno / http://lighthaus.us/\n */\n\nfunction AnimationClip(name, duration, tracks) {\n this.name = name;\n this.tracks = tracks;\n this.duration = duration !== undefined ? duration : -1;\n this.uuid = _Math.generateUUID(); // this means it should figure out its duration by scanning the tracks\n\n if (this.duration < 0) {\n this.resetDuration();\n }\n}\n\nfunction getTrackTypeForValueTypeName(typeName) {\n switch (typeName.toLowerCase()) {\n case 'scalar':\n case 'double':\n case 'float':\n case 'number':\n case 'integer':\n return NumberKeyframeTrack;\n\n case 'vector':\n case 'vector2':\n case 'vector3':\n case 'vector4':\n return VectorKeyframeTrack;\n\n case 'color':\n return ColorKeyframeTrack;\n\n case 'quaternion':\n return QuaternionKeyframeTrack;\n\n case 'bool':\n case 'boolean':\n return BooleanKeyframeTrack;\n\n case 'string':\n return StringKeyframeTrack;\n }\n\n throw new Error('THREE.KeyframeTrack: Unsupported typeName: ' + typeName);\n}\n\nfunction parseKeyframeTrack(json) {\n if (json.type === undefined) {\n throw new Error('THREE.KeyframeTrack: track type undefined, can not parse');\n }\n\n var trackType = getTrackTypeForValueTypeName(json.type);\n\n if (json.times === undefined) {\n var times = [],\n values = [];\n AnimationUtils.flattenJSON(json.keys, times, values, 'value');\n json.times = times;\n json.values = values;\n } // derived classes can define a static parse method\n\n\n if (trackType.parse !== undefined) {\n return trackType.parse(json);\n } else {\n // by default, we assume a constructor compatible with the base\n return new trackType(json.name, json.times, json.values, json.interpolation);\n }\n}\n\nObject.assign(AnimationClip, {\n parse: function parse(json) {\n var tracks = [],\n jsonTracks = json.tracks,\n frameTime = 1.0 / (json.fps || 1.0);\n\n for (var i = 0, n = jsonTracks.length; i !== n; ++i) {\n tracks.push(parseKeyframeTrack(jsonTracks[i]).scale(frameTime));\n }\n\n return new AnimationClip(json.name, json.duration, tracks);\n },\n toJSON: function toJSON(clip) {\n var tracks = [],\n clipTracks = clip.tracks;\n var json = {\n 'name': clip.name,\n 'duration': clip.duration,\n 'tracks': tracks,\n 'uuid': clip.uuid\n };\n\n for (var i = 0, n = clipTracks.length; i !== n; ++i) {\n tracks.push(KeyframeTrack.toJSON(clipTracks[i]));\n }\n\n return json;\n },\n CreateFromMorphTargetSequence: function CreateFromMorphTargetSequence(name, morphTargetSequence, fps, noLoop) {\n var numMorphTargets = morphTargetSequence.length;\n var tracks = [];\n\n for (var i = 0; i < numMorphTargets; i++) {\n var times = [];\n var values = [];\n times.push((i + numMorphTargets - 1) % numMorphTargets, i, (i + 1) % numMorphTargets);\n values.push(0, 1, 0);\n var order = AnimationUtils.getKeyframeOrder(times);\n times = AnimationUtils.sortedArray(times, 1, order);\n values = AnimationUtils.sortedArray(values, 1, order); // if there is a key at the first frame, duplicate it as the\n // last frame as well for perfect loop.\n\n if (!noLoop && times[0] === 0) {\n times.push(numMorphTargets);\n values.push(values[0]);\n }\n\n tracks.push(new NumberKeyframeTrack('.morphTargetInfluences[' + morphTargetSequence[i].name + ']', times, values).scale(1.0 / fps));\n }\n\n return new AnimationClip(name, -1, tracks);\n },\n findByName: function findByName(objectOrClipArray, name) {\n var clipArray = objectOrClipArray;\n\n if (!Array.isArray(objectOrClipArray)) {\n var o = objectOrClipArray;\n clipArray = o.geometry && o.geometry.animations || o.animations;\n }\n\n for (var i = 0; i < clipArray.length; i++) {\n if (clipArray[i].name === name) {\n return clipArray[i];\n }\n }\n\n return null;\n },\n CreateClipsFromMorphTargetSequences: function CreateClipsFromMorphTargetSequences(morphTargets, fps, noLoop) {\n var animationToMorphTargets = {}; // tested with https://regex101.com/ on trick sequences\n // such flamingo_flyA_003, flamingo_run1_003, crdeath0059\n\n var pattern = /^([\\w-]*?)([\\d]+)$/; // sort morph target names into animation groups based\n // patterns like Walk_001, Walk_002, Run_001, Run_002\n\n for (var i = 0, il = morphTargets.length; i < il; i++) {\n var morphTarget = morphTargets[i];\n var parts = morphTarget.name.match(pattern);\n\n if (parts && parts.length > 1) {\n var name = parts[1];\n var animationMorphTargets = animationToMorphTargets[name];\n\n if (!animationMorphTargets) {\n animationToMorphTargets[name] = animationMorphTargets = [];\n }\n\n animationMorphTargets.push(morphTarget);\n }\n }\n\n var clips = [];\n\n for (var name in animationToMorphTargets) {\n clips.push(AnimationClip.CreateFromMorphTargetSequence(name, animationToMorphTargets[name], fps, noLoop));\n }\n\n return clips;\n },\n // parse the animation.hierarchy format\n parseAnimation: function parseAnimation(animation, bones) {\n if (!animation) {\n console.error('THREE.AnimationClip: No animation in JSONLoader data.');\n return null;\n }\n\n var addNonemptyTrack = function addNonemptyTrack(trackType, trackName, animationKeys, propertyName, destTracks) {\n // only return track if there are actually keys.\n if (animationKeys.length !== 0) {\n var times = [];\n var values = [];\n AnimationUtils.flattenJSON(animationKeys, times, values, propertyName); // empty keys are filtered out, so check again\n\n if (times.length !== 0) {\n destTracks.push(new trackType(trackName, times, values));\n }\n }\n };\n\n var tracks = [];\n var clipName = animation.name || 'default'; // automatic length determination in AnimationClip.\n\n var duration = animation.length || -1;\n var fps = animation.fps || 30;\n var hierarchyTracks = animation.hierarchy || [];\n\n for (var h = 0; h < hierarchyTracks.length; h++) {\n var animationKeys = hierarchyTracks[h].keys; // skip empty tracks\n\n if (!animationKeys || animationKeys.length === 0) continue; // process morph targets\n\n if (animationKeys[0].morphTargets) {\n // figure out all morph targets used in this track\n var morphTargetNames = {};\n\n for (var k = 0; k < animationKeys.length; k++) {\n if (animationKeys[k].morphTargets) {\n for (var m = 0; m < animationKeys[k].morphTargets.length; m++) {\n morphTargetNames[animationKeys[k].morphTargets[m]] = -1;\n }\n }\n } // create a track for each morph target with all zero\n // morphTargetInfluences except for the keys in which\n // the morphTarget is named.\n\n\n for (var morphTargetName in morphTargetNames) {\n var times = [];\n var values = [];\n\n for (var m = 0; m !== animationKeys[k].morphTargets.length; ++m) {\n var animationKey = animationKeys[k];\n times.push(animationKey.time);\n values.push(animationKey.morphTarget === morphTargetName ? 1 : 0);\n }\n\n tracks.push(new NumberKeyframeTrack('.morphTargetInfluence[' + morphTargetName + ']', times, values));\n }\n\n duration = morphTargetNames.length * (fps || 1.0);\n } else {\n // ...assume skeletal animation\n var boneName = '.bones[' + bones[h].name + ']';\n addNonemptyTrack(VectorKeyframeTrack, boneName + '.position', animationKeys, 'pos', tracks);\n addNonemptyTrack(QuaternionKeyframeTrack, boneName + '.quaternion', animationKeys, 'rot', tracks);\n addNonemptyTrack(VectorKeyframeTrack, boneName + '.scale', animationKeys, 'scl', tracks);\n }\n }\n\n if (tracks.length === 0) {\n return null;\n }\n\n var clip = new AnimationClip(clipName, duration, tracks);\n return clip;\n }\n});\nObject.assign(AnimationClip.prototype, {\n resetDuration: function resetDuration() {\n var tracks = this.tracks,\n duration = 0;\n\n for (var i = 0, n = tracks.length; i !== n; ++i) {\n var track = this.tracks[i];\n duration = Math.max(duration, track.times[track.times.length - 1]);\n }\n\n this.duration = duration;\n return this;\n },\n trim: function trim() {\n for (var i = 0; i < this.tracks.length; i++) {\n this.tracks[i].trim(0, this.duration);\n }\n\n return this;\n },\n validate: function validate() {\n var valid = true;\n\n for (var i = 0; i < this.tracks.length; i++) {\n valid = valid && this.tracks[i].validate();\n }\n\n return valid;\n },\n optimize: function optimize() {\n for (var i = 0; i < this.tracks.length; i++) {\n this.tracks[i].optimize();\n }\n\n return this;\n },\n clone: function clone() {\n var tracks = [];\n\n for (var i = 0; i < this.tracks.length; i++) {\n tracks.push(this.tracks[i].clone());\n }\n\n return new AnimationClip(this.name, this.duration, tracks);\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nvar Cache = {\n enabled: false,\n files: {},\n add: function add(key, file) {\n if (this.enabled === false) return; // console.log( 'THREE.Cache', 'Adding key:', key );\n\n this.files[key] = file;\n },\n get: function get(key) {\n if (this.enabled === false) return; // console.log( 'THREE.Cache', 'Checking key:', key );\n\n return this.files[key];\n },\n remove: function remove(key) {\n delete this.files[key];\n },\n clear: function clear() {\n this.files = {};\n }\n};\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction LoadingManager(onLoad, onProgress, onError) {\n var scope = this;\n var isLoading = false;\n var itemsLoaded = 0;\n var itemsTotal = 0;\n var urlModifier = undefined;\n var handlers = []; // Refer to #5689 for the reason why we don't set .onStart\n // in the constructor\n\n this.onStart = undefined;\n this.onLoad = onLoad;\n this.onProgress = onProgress;\n this.onError = onError;\n\n this.itemStart = function (url) {\n itemsTotal++;\n\n if (isLoading === false) {\n if (scope.onStart !== undefined) {\n scope.onStart(url, itemsLoaded, itemsTotal);\n }\n }\n\n isLoading = true;\n };\n\n this.itemEnd = function (url) {\n itemsLoaded++;\n\n if (scope.onProgress !== undefined) {\n scope.onProgress(url, itemsLoaded, itemsTotal);\n }\n\n if (itemsLoaded === itemsTotal) {\n isLoading = false;\n\n if (scope.onLoad !== undefined) {\n scope.onLoad();\n }\n }\n };\n\n this.itemError = function (url) {\n if (scope.onError !== undefined) {\n scope.onError(url);\n }\n };\n\n this.resolveURL = function (url) {\n if (urlModifier) {\n return urlModifier(url);\n }\n\n return url;\n };\n\n this.setURLModifier = function (transform) {\n urlModifier = transform;\n return this;\n };\n\n this.addHandler = function (regex, loader) {\n handlers.push(regex, loader);\n return this;\n };\n\n this.removeHandler = function (regex) {\n var index = handlers.indexOf(regex);\n\n if (index !== -1) {\n handlers.splice(index, 2);\n }\n\n return this;\n };\n\n this.getHandler = function (file) {\n for (var i = 0, l = handlers.length; i < l; i += 2) {\n var regex = handlers[i];\n var loader = handlers[i + 1];\n\n if (regex.test(file)) {\n return loader;\n }\n }\n\n return null;\n };\n}\n\nvar DefaultLoadingManager = new LoadingManager();\n/**\n * @author alteredq / http://alteredqualia.com/\n */\n\nfunction Loader(manager) {\n this.manager = manager !== undefined ? manager : DefaultLoadingManager;\n this.crossOrigin = 'anonymous';\n this.path = '';\n this.resourcePath = '';\n}\n\nObject.assign(Loader.prototype, {\n load: function load()\n /* url, onLoad, onProgress, onError */\n {},\n parse: function parse()\n /* data */\n {},\n setCrossOrigin: function setCrossOrigin(crossOrigin) {\n this.crossOrigin = crossOrigin;\n return this;\n },\n setPath: function setPath(path) {\n this.path = path;\n return this;\n },\n setResourcePath: function setResourcePath(resourcePath) {\n this.resourcePath = resourcePath;\n return this;\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nvar loading = {};\n\nfunction FileLoader(manager) {\n Loader.call(this, manager);\n}\n\nFileLoader.prototype = Object.assign(Object.create(Loader.prototype), {\n constructor: FileLoader,\n load: function load(url, onLoad, onProgress, onError) {\n if (url === undefined) url = '';\n if (this.path !== undefined) url = this.path + url;\n url = this.manager.resolveURL(url);\n var scope = this;\n var cached = Cache.get(url);\n\n if (cached !== undefined) {\n scope.manager.itemStart(url);\n setTimeout(function () {\n if (onLoad) onLoad(cached);\n scope.manager.itemEnd(url);\n }, 0);\n return cached;\n } // Check if request is duplicate\n\n\n if (loading[url] !== undefined) {\n loading[url].push({\n onLoad: onLoad,\n onProgress: onProgress,\n onError: onError\n });\n return;\n } // Check for data: URI\n\n\n var dataUriRegex = /^data:(.*?)(;base64)?,(.*)$/;\n var dataUriRegexResult = url.match(dataUriRegex); // Safari can not handle Data URIs through XMLHttpRequest so process manually\n\n if (dataUriRegexResult) {\n var mimeType = dataUriRegexResult[1];\n var isBase64 = !!dataUriRegexResult[2];\n var data = dataUriRegexResult[3];\n data = decodeURIComponent(data);\n if (isBase64) data = atob(data);\n\n try {\n var response;\n var responseType = (this.responseType || '').toLowerCase();\n\n switch (responseType) {\n case 'arraybuffer':\n case 'blob':\n var view = new Uint8Array(data.length);\n\n for (var i = 0; i < data.length; i++) {\n view[i] = data.charCodeAt(i);\n }\n\n if (responseType === 'blob') {\n response = new Blob([view.buffer], {\n type: mimeType\n });\n } else {\n response = view.buffer;\n }\n\n break;\n\n case 'document':\n var parser = new DOMParser();\n response = parser.parseFromString(data, mimeType);\n break;\n\n case 'json':\n response = JSON.parse(data);\n break;\n\n default:\n // 'text' or other\n response = data;\n break;\n } // Wait for next browser tick like standard XMLHttpRequest event dispatching does\n\n\n setTimeout(function () {\n if (onLoad) onLoad(response);\n scope.manager.itemEnd(url);\n }, 0);\n } catch (error) {\n // Wait for next browser tick like standard XMLHttpRequest event dispatching does\n setTimeout(function () {\n if (onError) onError(error);\n scope.manager.itemError(url);\n scope.manager.itemEnd(url);\n }, 0);\n }\n } else {\n // Initialise array for duplicate requests\n loading[url] = [];\n loading[url].push({\n onLoad: onLoad,\n onProgress: onProgress,\n onError: onError\n });\n var request = new XMLHttpRequest();\n request.open('GET', url, true);\n request.addEventListener('load', function (event) {\n var response = this.response;\n var callbacks = loading[url];\n delete loading[url];\n\n if (this.status === 200 || this.status === 0) {\n // Some browsers return HTTP Status 0 when using non-http protocol\n // e.g. 'file://' or 'data://'. Handle as success.\n if (this.status === 0) console.warn('THREE.FileLoader: HTTP Status 0 received.'); // Add to cache only on HTTP success, so that we do not cache\n // error response bodies as proper responses to requests.\n\n Cache.add(url, response);\n\n for (var i = 0, il = callbacks.length; i < il; i++) {\n var callback = callbacks[i];\n if (callback.onLoad) callback.onLoad(response);\n }\n\n scope.manager.itemEnd(url);\n } else {\n for (var i = 0, il = callbacks.length; i < il; i++) {\n var callback = callbacks[i];\n if (callback.onError) callback.onError(event);\n }\n\n scope.manager.itemError(url);\n scope.manager.itemEnd(url);\n }\n }, false);\n request.addEventListener('progress', function (event) {\n var callbacks = loading[url];\n\n for (var i = 0, il = callbacks.length; i < il; i++) {\n var callback = callbacks[i];\n if (callback.onProgress) callback.onProgress(event);\n }\n }, false);\n request.addEventListener('error', function (event) {\n var callbacks = loading[url];\n delete loading[url];\n\n for (var i = 0, il = callbacks.length; i < il; i++) {\n var callback = callbacks[i];\n if (callback.onError) callback.onError(event);\n }\n\n scope.manager.itemError(url);\n scope.manager.itemEnd(url);\n }, false);\n request.addEventListener('abort', function (event) {\n var callbacks = loading[url];\n delete loading[url];\n\n for (var i = 0, il = callbacks.length; i < il; i++) {\n var callback = callbacks[i];\n if (callback.onError) callback.onError(event);\n }\n\n scope.manager.itemError(url);\n scope.manager.itemEnd(url);\n }, false);\n if (this.responseType !== undefined) request.responseType = this.responseType;\n if (this.withCredentials !== undefined) request.withCredentials = this.withCredentials;\n if (request.overrideMimeType) request.overrideMimeType(this.mimeType !== undefined ? this.mimeType : 'text/plain');\n\n for (var header in this.requestHeader) {\n request.setRequestHeader(header, this.requestHeader[header]);\n }\n\n request.send(null);\n }\n\n scope.manager.itemStart(url);\n return request;\n },\n setResponseType: function setResponseType(value) {\n this.responseType = value;\n return this;\n },\n setWithCredentials: function setWithCredentials(value) {\n this.withCredentials = value;\n return this;\n },\n setMimeType: function setMimeType(value) {\n this.mimeType = value;\n return this;\n },\n setRequestHeader: function setRequestHeader(value) {\n this.requestHeader = value;\n return this;\n }\n});\n/**\n * @author bhouston / http://clara.io/\n */\n\nfunction AnimationLoader(manager) {\n Loader.call(this, manager);\n}\n\nAnimationLoader.prototype = Object.assign(Object.create(Loader.prototype), {\n constructor: AnimationLoader,\n load: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var loader = new FileLoader(scope.manager);\n loader.setPath(scope.path);\n loader.load(url, function (text) {\n onLoad(scope.parse(JSON.parse(text)));\n }, onProgress, onError);\n },\n parse: function parse(json) {\n var animations = [];\n\n for (var i = 0; i < json.length; i++) {\n var clip = AnimationClip.parse(json[i]);\n animations.push(clip);\n }\n\n return animations;\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n *\n * Abstract Base class to block based textures loader (dds, pvr, ...)\n *\n * Sub classes have to implement the parse() method which will be used in load().\n */\n\nfunction CompressedTextureLoader(manager) {\n Loader.call(this, manager);\n}\n\nCompressedTextureLoader.prototype = Object.assign(Object.create(Loader.prototype), {\n constructor: CompressedTextureLoader,\n load: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var images = [];\n var texture = new CompressedTexture();\n texture.image = images;\n var loader = new FileLoader(this.manager);\n loader.setPath(this.path);\n loader.setResponseType('arraybuffer');\n\n function loadTexture(i) {\n loader.load(url[i], function (buffer) {\n var texDatas = scope.parse(buffer, true);\n images[i] = {\n width: texDatas.width,\n height: texDatas.height,\n format: texDatas.format,\n mipmaps: texDatas.mipmaps\n };\n loaded += 1;\n\n if (loaded === 6) {\n if (texDatas.mipmapCount === 1) texture.minFilter = LinearFilter;\n texture.format = texDatas.format;\n texture.needsUpdate = true;\n if (onLoad) onLoad(texture);\n }\n }, onProgress, onError);\n }\n\n if (Array.isArray(url)) {\n var loaded = 0;\n\n for (var i = 0, il = url.length; i < il; ++i) {\n loadTexture(i);\n }\n } else {\n // compressed cubemap texture stored in a single DDS file\n loader.load(url, function (buffer) {\n var texDatas = scope.parse(buffer, true);\n\n if (texDatas.isCubemap) {\n var faces = texDatas.mipmaps.length / texDatas.mipmapCount;\n\n for (var f = 0; f < faces; f++) {\n images[f] = {\n mipmaps: []\n };\n\n for (var i = 0; i < texDatas.mipmapCount; i++) {\n images[f].mipmaps.push(texDatas.mipmaps[f * texDatas.mipmapCount + i]);\n images[f].format = texDatas.format;\n images[f].width = texDatas.width;\n images[f].height = texDatas.height;\n }\n }\n } else {\n texture.image.width = texDatas.width;\n texture.image.height = texDatas.height;\n texture.mipmaps = texDatas.mipmaps;\n }\n\n if (texDatas.mipmapCount === 1) {\n texture.minFilter = LinearFilter;\n }\n\n texture.format = texDatas.format;\n texture.needsUpdate = true;\n if (onLoad) onLoad(texture);\n }, onProgress, onError);\n }\n\n return texture;\n }\n});\n/**\n * @author Nikos M. / https://github.com/foo123/\n *\n * Abstract Base class to load generic binary textures formats (rgbe, hdr, ...)\n *\n * Sub classes have to implement the parse() method which will be used in load().\n */\n\nfunction DataTextureLoader(manager) {\n Loader.call(this, manager);\n}\n\nDataTextureLoader.prototype = Object.assign(Object.create(Loader.prototype), {\n constructor: DataTextureLoader,\n load: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var texture = new DataTexture();\n var loader = new FileLoader(this.manager);\n loader.setResponseType('arraybuffer');\n loader.setPath(this.path);\n loader.load(url, function (buffer) {\n var texData = scope.parse(buffer);\n if (!texData) return;\n\n if (texData.image !== undefined) {\n texture.image = texData.image;\n } else if (texData.data !== undefined) {\n texture.image.width = texData.width;\n texture.image.height = texData.height;\n texture.image.data = texData.data;\n }\n\n texture.wrapS = texData.wrapS !== undefined ? texData.wrapS : ClampToEdgeWrapping;\n texture.wrapT = texData.wrapT !== undefined ? texData.wrapT : ClampToEdgeWrapping;\n texture.magFilter = texData.magFilter !== undefined ? texData.magFilter : LinearFilter;\n texture.minFilter = texData.minFilter !== undefined ? texData.minFilter : LinearFilter;\n texture.anisotropy = texData.anisotropy !== undefined ? texData.anisotropy : 1;\n\n if (texData.format !== undefined) {\n texture.format = texData.format;\n }\n\n if (texData.type !== undefined) {\n texture.type = texData.type;\n }\n\n if (texData.mipmaps !== undefined) {\n texture.mipmaps = texData.mipmaps;\n texture.minFilter = LinearMipmapLinearFilter; // presumably...\n }\n\n if (texData.mipmapCount === 1) {\n texture.minFilter = LinearFilter;\n }\n\n texture.needsUpdate = true;\n if (onLoad) onLoad(texture, texData);\n }, onProgress, onError);\n return texture;\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction ImageLoader(manager) {\n Loader.call(this, manager);\n}\n\nImageLoader.prototype = Object.assign(Object.create(Loader.prototype), {\n constructor: ImageLoader,\n load: function load(url, onLoad, onProgress, onError) {\n if (this.path !== undefined) url = this.path + url;\n url = this.manager.resolveURL(url);\n var scope = this;\n var cached = Cache.get(url);\n\n if (cached !== undefined) {\n scope.manager.itemStart(url);\n setTimeout(function () {\n if (onLoad) onLoad(cached);\n scope.manager.itemEnd(url);\n }, 0);\n return cached;\n }\n\n var image = document.createElementNS('http://www.w3.org/1999/xhtml', 'img');\n\n function onImageLoad() {\n image.removeEventListener('load', onImageLoad, false);\n image.removeEventListener('error', onImageError, false);\n Cache.add(url, this);\n if (onLoad) onLoad(this);\n scope.manager.itemEnd(url);\n }\n\n function onImageError(event) {\n image.removeEventListener('load', onImageLoad, false);\n image.removeEventListener('error', onImageError, false);\n if (onError) onError(event);\n scope.manager.itemError(url);\n scope.manager.itemEnd(url);\n }\n\n image.addEventListener('load', onImageLoad, false);\n image.addEventListener('error', onImageError, false);\n\n if (url.substr(0, 5) !== 'data:') {\n if (this.crossOrigin !== undefined) image.crossOrigin = this.crossOrigin;\n }\n\n scope.manager.itemStart(url);\n image.src = url;\n return image;\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction CubeTextureLoader(manager) {\n Loader.call(this, manager);\n}\n\nCubeTextureLoader.prototype = Object.assign(Object.create(Loader.prototype), {\n constructor: CubeTextureLoader,\n load: function load(urls, onLoad, onProgress, onError) {\n var texture = new CubeTexture();\n var loader = new ImageLoader(this.manager);\n loader.setCrossOrigin(this.crossOrigin);\n loader.setPath(this.path);\n var loaded = 0;\n\n function loadTexture(i) {\n loader.load(urls[i], function (image) {\n texture.images[i] = image;\n loaded++;\n\n if (loaded === 6) {\n texture.needsUpdate = true;\n if (onLoad) onLoad(texture);\n }\n }, undefined, onError);\n }\n\n for (var i = 0; i < urls.length; ++i) {\n loadTexture(i);\n }\n\n return texture;\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction TextureLoader(manager) {\n Loader.call(this, manager);\n}\n\nTextureLoader.prototype = Object.assign(Object.create(Loader.prototype), {\n constructor: TextureLoader,\n load: function load(url, onLoad, onProgress, onError) {\n var texture = new Texture();\n var loader = new ImageLoader(this.manager);\n loader.setCrossOrigin(this.crossOrigin);\n loader.setPath(this.path);\n loader.load(url, function (image) {\n texture.image = image; // JPEGs can't have an alpha channel, so memory can be saved by storing them as RGB.\n\n var isJPEG = url.search(/\\.jpe?g($|\\?)/i) > 0 || url.search(/^data\\:image\\/jpeg/) === 0;\n texture.format = isJPEG ? RGBFormat : RGBAFormat;\n texture.needsUpdate = true;\n\n if (onLoad !== undefined) {\n onLoad(texture);\n }\n }, onProgress, onError);\n return texture;\n }\n});\n/**\n * @author zz85 / http://www.lab4games.net/zz85/blog\n * Extensible curve object\n *\n * Some common of curve methods:\n * .getPoint( t, optionalTarget ), .getTangent( t )\n * .getPointAt( u, optionalTarget ), .getTangentAt( u )\n * .getPoints(), .getSpacedPoints()\n * .getLength()\n * .updateArcLengths()\n *\n * This following curves inherit from THREE.Curve:\n *\n * -- 2D curves --\n * THREE.ArcCurve\n * THREE.CubicBezierCurve\n * THREE.EllipseCurve\n * THREE.LineCurve\n * THREE.QuadraticBezierCurve\n * THREE.SplineCurve\n *\n * -- 3D curves --\n * THREE.CatmullRomCurve3\n * THREE.CubicBezierCurve3\n * THREE.LineCurve3\n * THREE.QuadraticBezierCurve3\n *\n * A series of curves can be represented as a THREE.CurvePath.\n *\n **/\n\n/**************************************************************\n *\tAbstract Curve base class\n **************************************************************/\n\nfunction Curve() {\n this.type = 'Curve';\n this.arcLengthDivisions = 200;\n}\n\nObject.assign(Curve.prototype, {\n // Virtual base class method to overwrite and implement in subclasses\n //\t- t [0 .. 1]\n getPoint: function getPoint()\n /* t, optionalTarget */\n {\n console.warn('THREE.Curve: .getPoint() not implemented.');\n return null;\n },\n // Get point at relative position in curve according to arc length\n // - u [0 .. 1]\n getPointAt: function getPointAt(u, optionalTarget) {\n var t = this.getUtoTmapping(u);\n return this.getPoint(t, optionalTarget);\n },\n // Get sequence of points using getPoint( t )\n getPoints: function getPoints(divisions) {\n if (divisions === undefined) divisions = 5;\n var points = [];\n\n for (var d = 0; d <= divisions; d++) {\n points.push(this.getPoint(d / divisions));\n }\n\n return points;\n },\n // Get sequence of points using getPointAt( u )\n getSpacedPoints: function getSpacedPoints(divisions) {\n if (divisions === undefined) divisions = 5;\n var points = [];\n\n for (var d = 0; d <= divisions; d++) {\n points.push(this.getPointAt(d / divisions));\n }\n\n return points;\n },\n // Get total curve arc length\n getLength: function getLength() {\n var lengths = this.getLengths();\n return lengths[lengths.length - 1];\n },\n // Get list of cumulative segment lengths\n getLengths: function getLengths(divisions) {\n if (divisions === undefined) divisions = this.arcLengthDivisions;\n\n if (this.cacheArcLengths && this.cacheArcLengths.length === divisions + 1 && !this.needsUpdate) {\n return this.cacheArcLengths;\n }\n\n this.needsUpdate = false;\n var cache = [];\n var current,\n last = this.getPoint(0);\n var p,\n sum = 0;\n cache.push(0);\n\n for (p = 1; p <= divisions; p++) {\n current = this.getPoint(p / divisions);\n sum += current.distanceTo(last);\n cache.push(sum);\n last = current;\n }\n\n this.cacheArcLengths = cache;\n return cache; // { sums: cache, sum: sum }; Sum is in the last element.\n },\n updateArcLengths: function updateArcLengths() {\n this.needsUpdate = true;\n this.getLengths();\n },\n // Given u ( 0 .. 1 ), get a t to find p. This gives you points which are equidistant\n getUtoTmapping: function getUtoTmapping(u, distance) {\n var arcLengths = this.getLengths();\n var i = 0,\n il = arcLengths.length;\n var targetArcLength; // The targeted u distance value to get\n\n if (distance) {\n targetArcLength = distance;\n } else {\n targetArcLength = u * arcLengths[il - 1];\n } // binary search for the index with largest value smaller than target u distance\n\n\n var low = 0,\n high = il - 1,\n comparison;\n\n while (low <= high) {\n i = Math.floor(low + (high - low) / 2); // less likely to overflow, though probably not issue here, JS doesn't really have integers, all numbers are floats\n\n comparison = arcLengths[i] - targetArcLength;\n\n if (comparison < 0) {\n low = i + 1;\n } else if (comparison > 0) {\n high = i - 1;\n } else {\n high = i;\n break; // DONE\n }\n }\n\n i = high;\n\n if (arcLengths[i] === targetArcLength) {\n return i / (il - 1);\n } // we could get finer grain at lengths, or use simple interpolation between two points\n\n\n var lengthBefore = arcLengths[i];\n var lengthAfter = arcLengths[i + 1];\n var segmentLength = lengthAfter - lengthBefore; // determine where we are between the 'before' and 'after' points\n\n var segmentFraction = (targetArcLength - lengthBefore) / segmentLength; // add that fractional amount to t\n\n var t = (i + segmentFraction) / (il - 1);\n return t;\n },\n // Returns a unit vector tangent at t\n // In case any sub curve does not implement its tangent derivation,\n // 2 points a small delta apart will be used to find its gradient\n // which seems to give a reasonable approximation\n getTangent: function getTangent(t) {\n var delta = 0.0001;\n var t1 = t - delta;\n var t2 = t + delta; // Capping in case of danger\n\n if (t1 < 0) t1 = 0;\n if (t2 > 1) t2 = 1;\n var pt1 = this.getPoint(t1);\n var pt2 = this.getPoint(t2);\n var vec = pt2.clone().sub(pt1);\n return vec.normalize();\n },\n getTangentAt: function getTangentAt(u) {\n var t = this.getUtoTmapping(u);\n return this.getTangent(t);\n },\n computeFrenetFrames: function computeFrenetFrames(segments, closed) {\n // see http://www.cs.indiana.edu/pub/techreports/TR425.pdf\n var normal = new Vector3();\n var tangents = [];\n var normals = [];\n var binormals = [];\n var vec = new Vector3();\n var mat = new Matrix4();\n var i, u, theta; // compute the tangent vectors for each segment on the curve\n\n for (i = 0; i <= segments; i++) {\n u = i / segments;\n tangents[i] = this.getTangentAt(u);\n tangents[i].normalize();\n } // select an initial normal vector perpendicular to the first tangent vector,\n // and in the direction of the minimum tangent xyz component\n\n\n normals[0] = new Vector3();\n binormals[0] = new Vector3();\n var min = Number.MAX_VALUE;\n var tx = Math.abs(tangents[0].x);\n var ty = Math.abs(tangents[0].y);\n var tz = Math.abs(tangents[0].z);\n\n if (tx <= min) {\n min = tx;\n normal.set(1, 0, 0);\n }\n\n if (ty <= min) {\n min = ty;\n normal.set(0, 1, 0);\n }\n\n if (tz <= min) {\n normal.set(0, 0, 1);\n }\n\n vec.crossVectors(tangents[0], normal).normalize();\n normals[0].crossVectors(tangents[0], vec);\n binormals[0].crossVectors(tangents[0], normals[0]); // compute the slowly-varying normal and binormal vectors for each segment on the curve\n\n for (i = 1; i <= segments; i++) {\n normals[i] = normals[i - 1].clone();\n binormals[i] = binormals[i - 1].clone();\n vec.crossVectors(tangents[i - 1], tangents[i]);\n\n if (vec.length() > Number.EPSILON) {\n vec.normalize();\n theta = Math.acos(_Math.clamp(tangents[i - 1].dot(tangents[i]), -1, 1)); // clamp for floating pt errors\n\n normals[i].applyMatrix4(mat.makeRotationAxis(vec, theta));\n }\n\n binormals[i].crossVectors(tangents[i], normals[i]);\n } // if the curve is closed, postprocess the vectors so the first and last normal vectors are the same\n\n\n if (closed === true) {\n theta = Math.acos(_Math.clamp(normals[0].dot(normals[segments]), -1, 1));\n theta /= segments;\n\n if (tangents[0].dot(vec.crossVectors(normals[0], normals[segments])) > 0) {\n theta = -theta;\n }\n\n for (i = 1; i <= segments; i++) {\n // twist a little...\n normals[i].applyMatrix4(mat.makeRotationAxis(tangents[i], theta * i));\n binormals[i].crossVectors(tangents[i], normals[i]);\n }\n }\n\n return {\n tangents: tangents,\n normals: normals,\n binormals: binormals\n };\n },\n clone: function clone() {\n return new this.constructor().copy(this);\n },\n copy: function copy(source) {\n this.arcLengthDivisions = source.arcLengthDivisions;\n return this;\n },\n toJSON: function toJSON() {\n var data = {\n metadata: {\n version: 4.5,\n type: 'Curve',\n generator: 'Curve.toJSON'\n }\n };\n data.arcLengthDivisions = this.arcLengthDivisions;\n data.type = this.type;\n return data;\n },\n fromJSON: function fromJSON(json) {\n this.arcLengthDivisions = json.arcLengthDivisions;\n return this;\n }\n});\n\nfunction EllipseCurve(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation) {\n Curve.call(this);\n this.type = 'EllipseCurve';\n this.aX = aX || 0;\n this.aY = aY || 0;\n this.xRadius = xRadius || 1;\n this.yRadius = yRadius || 1;\n this.aStartAngle = aStartAngle || 0;\n this.aEndAngle = aEndAngle || 2 * Math.PI;\n this.aClockwise = aClockwise || false;\n this.aRotation = aRotation || 0;\n}\n\nEllipseCurve.prototype = Object.create(Curve.prototype);\nEllipseCurve.prototype.constructor = EllipseCurve;\nEllipseCurve.prototype.isEllipseCurve = true;\n\nEllipseCurve.prototype.getPoint = function (t, optionalTarget) {\n var point = optionalTarget || new Vector2();\n var twoPi = Math.PI * 2;\n var deltaAngle = this.aEndAngle - this.aStartAngle;\n var samePoints = Math.abs(deltaAngle) < Number.EPSILON; // ensures that deltaAngle is 0 .. 2 PI\n\n while (deltaAngle < 0) {\n deltaAngle += twoPi;\n }\n\n while (deltaAngle > twoPi) {\n deltaAngle -= twoPi;\n }\n\n if (deltaAngle < Number.EPSILON) {\n if (samePoints) {\n deltaAngle = 0;\n } else {\n deltaAngle = twoPi;\n }\n }\n\n if (this.aClockwise === true && !samePoints) {\n if (deltaAngle === twoPi) {\n deltaAngle = -twoPi;\n } else {\n deltaAngle = deltaAngle - twoPi;\n }\n }\n\n var angle = this.aStartAngle + t * deltaAngle;\n var x = this.aX + this.xRadius * Math.cos(angle);\n var y = this.aY + this.yRadius * Math.sin(angle);\n\n if (this.aRotation !== 0) {\n var cos = Math.cos(this.aRotation);\n var sin = Math.sin(this.aRotation);\n var tx = x - this.aX;\n var ty = y - this.aY; // Rotate the point about the center of the ellipse.\n\n x = tx * cos - ty * sin + this.aX;\n y = tx * sin + ty * cos + this.aY;\n }\n\n return point.set(x, y);\n};\n\nEllipseCurve.prototype.copy = function (source) {\n Curve.prototype.copy.call(this, source);\n this.aX = source.aX;\n this.aY = source.aY;\n this.xRadius = source.xRadius;\n this.yRadius = source.yRadius;\n this.aStartAngle = source.aStartAngle;\n this.aEndAngle = source.aEndAngle;\n this.aClockwise = source.aClockwise;\n this.aRotation = source.aRotation;\n return this;\n};\n\nEllipseCurve.prototype.toJSON = function () {\n var data = Curve.prototype.toJSON.call(this);\n data.aX = this.aX;\n data.aY = this.aY;\n data.xRadius = this.xRadius;\n data.yRadius = this.yRadius;\n data.aStartAngle = this.aStartAngle;\n data.aEndAngle = this.aEndAngle;\n data.aClockwise = this.aClockwise;\n data.aRotation = this.aRotation;\n return data;\n};\n\nEllipseCurve.prototype.fromJSON = function (json) {\n Curve.prototype.fromJSON.call(this, json);\n this.aX = json.aX;\n this.aY = json.aY;\n this.xRadius = json.xRadius;\n this.yRadius = json.yRadius;\n this.aStartAngle = json.aStartAngle;\n this.aEndAngle = json.aEndAngle;\n this.aClockwise = json.aClockwise;\n this.aRotation = json.aRotation;\n return this;\n};\n\nfunction ArcCurve(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) {\n EllipseCurve.call(this, aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise);\n this.type = 'ArcCurve';\n}\n\nArcCurve.prototype = Object.create(EllipseCurve.prototype);\nArcCurve.prototype.constructor = ArcCurve;\nArcCurve.prototype.isArcCurve = true;\n/**\n * @author zz85 https://github.com/zz85\n *\n * Centripetal CatmullRom Curve - which is useful for avoiding\n * cusps and self-intersections in non-uniform catmull rom curves.\n * http://www.cemyuksel.com/research/catmullrom_param/catmullrom.pdf\n *\n * curve.type accepts centripetal(default), chordal and catmullrom\n * curve.tension is used for catmullrom which defaults to 0.5\n */\n\n/*\nBased on an optimized c++ solution in\n - http://stackoverflow.com/questions/9489736/catmull-rom-curve-with-no-cusps-and-no-self-intersections/\n - http://ideone.com/NoEbVM\n\nThis CubicPoly class could be used for reusing some variables and calculations,\nbut for three.js curve use, it could be possible inlined and flatten into a single function call\nwhich can be placed in CurveUtils.\n*/\n\nfunction CubicPoly() {\n var c0 = 0,\n c1 = 0,\n c2 = 0,\n c3 = 0;\n /*\n * Compute coefficients for a cubic polynomial\n * p(s) = c0 + c1*s + c2*s^2 + c3*s^3\n * such that\n * p(0) = x0, p(1) = x1\n * and\n * p'(0) = t0, p'(1) = t1.\n */\n\n function init(x0, x1, t0, t1) {\n c0 = x0;\n c1 = t0;\n c2 = -3 * x0 + 3 * x1 - 2 * t0 - t1;\n c3 = 2 * x0 - 2 * x1 + t0 + t1;\n }\n\n return {\n initCatmullRom: function initCatmullRom(x0, x1, x2, x3, tension) {\n init(x1, x2, tension * (x2 - x0), tension * (x3 - x1));\n },\n initNonuniformCatmullRom: function initNonuniformCatmullRom(x0, x1, x2, x3, dt0, dt1, dt2) {\n // compute tangents when parameterized in [t1,t2]\n var t1 = (x1 - x0) / dt0 - (x2 - x0) / (dt0 + dt1) + (x2 - x1) / dt1;\n var t2 = (x2 - x1) / dt1 - (x3 - x1) / (dt1 + dt2) + (x3 - x2) / dt2; // rescale tangents for parametrization in [0,1]\n\n t1 *= dt1;\n t2 *= dt1;\n init(x1, x2, t1, t2);\n },\n calc: function calc(t) {\n var t2 = t * t;\n var t3 = t2 * t;\n return c0 + c1 * t + c2 * t2 + c3 * t3;\n }\n };\n} //\n\n\nvar tmp = new Vector3();\nvar px = new CubicPoly(),\n py = new CubicPoly(),\n pz = new CubicPoly();\n\nfunction CatmullRomCurve3(points, closed, curveType, tension) {\n Curve.call(this);\n this.type = 'CatmullRomCurve3';\n this.points = points || [];\n this.closed = closed || false;\n this.curveType = curveType || 'centripetal';\n this.tension = tension || 0.5;\n}\n\nCatmullRomCurve3.prototype = Object.create(Curve.prototype);\nCatmullRomCurve3.prototype.constructor = CatmullRomCurve3;\nCatmullRomCurve3.prototype.isCatmullRomCurve3 = true;\n\nCatmullRomCurve3.prototype.getPoint = function (t, optionalTarget) {\n var point = optionalTarget || new Vector3();\n var points = this.points;\n var l = points.length;\n var p = (l - (this.closed ? 0 : 1)) * t;\n var intPoint = Math.floor(p);\n var weight = p - intPoint;\n\n if (this.closed) {\n intPoint += intPoint > 0 ? 0 : (Math.floor(Math.abs(intPoint) / l) + 1) * l;\n } else if (weight === 0 && intPoint === l - 1) {\n intPoint = l - 2;\n weight = 1;\n }\n\n var p0, p1, p2, p3; // 4 points\n\n if (this.closed || intPoint > 0) {\n p0 = points[(intPoint - 1) % l];\n } else {\n // extrapolate first point\n tmp.subVectors(points[0], points[1]).add(points[0]);\n p0 = tmp;\n }\n\n p1 = points[intPoint % l];\n p2 = points[(intPoint + 1) % l];\n\n if (this.closed || intPoint + 2 < l) {\n p3 = points[(intPoint + 2) % l];\n } else {\n // extrapolate last point\n tmp.subVectors(points[l - 1], points[l - 2]).add(points[l - 1]);\n p3 = tmp;\n }\n\n if (this.curveType === 'centripetal' || this.curveType === 'chordal') {\n // init Centripetal / Chordal Catmull-Rom\n var pow = this.curveType === 'chordal' ? 0.5 : 0.25;\n var dt0 = Math.pow(p0.distanceToSquared(p1), pow);\n var dt1 = Math.pow(p1.distanceToSquared(p2), pow);\n var dt2 = Math.pow(p2.distanceToSquared(p3), pow); // safety check for repeated points\n\n if (dt1 < 1e-4) dt1 = 1.0;\n if (dt0 < 1e-4) dt0 = dt1;\n if (dt2 < 1e-4) dt2 = dt1;\n px.initNonuniformCatmullRom(p0.x, p1.x, p2.x, p3.x, dt0, dt1, dt2);\n py.initNonuniformCatmullRom(p0.y, p1.y, p2.y, p3.y, dt0, dt1, dt2);\n pz.initNonuniformCatmullRom(p0.z, p1.z, p2.z, p3.z, dt0, dt1, dt2);\n } else if (this.curveType === 'catmullrom') {\n px.initCatmullRom(p0.x, p1.x, p2.x, p3.x, this.tension);\n py.initCatmullRom(p0.y, p1.y, p2.y, p3.y, this.tension);\n pz.initCatmullRom(p0.z, p1.z, p2.z, p3.z, this.tension);\n }\n\n point.set(px.calc(weight), py.calc(weight), pz.calc(weight));\n return point;\n};\n\nCatmullRomCurve3.prototype.copy = function (source) {\n Curve.prototype.copy.call(this, source);\n this.points = [];\n\n for (var i = 0, l = source.points.length; i < l; i++) {\n var point = source.points[i];\n this.points.push(point.clone());\n }\n\n this.closed = source.closed;\n this.curveType = source.curveType;\n this.tension = source.tension;\n return this;\n};\n\nCatmullRomCurve3.prototype.toJSON = function () {\n var data = Curve.prototype.toJSON.call(this);\n data.points = [];\n\n for (var i = 0, l = this.points.length; i < l; i++) {\n var point = this.points[i];\n data.points.push(point.toArray());\n }\n\n data.closed = this.closed;\n data.curveType = this.curveType;\n data.tension = this.tension;\n return data;\n};\n\nCatmullRomCurve3.prototype.fromJSON = function (json) {\n Curve.prototype.fromJSON.call(this, json);\n this.points = [];\n\n for (var i = 0, l = json.points.length; i < l; i++) {\n var point = json.points[i];\n this.points.push(new Vector3().fromArray(point));\n }\n\n this.closed = json.closed;\n this.curveType = json.curveType;\n this.tension = json.tension;\n return this;\n};\n/**\n * @author zz85 / http://www.lab4games.net/zz85/blog\n *\n * Bezier Curves formulas obtained from\n * http://en.wikipedia.org/wiki/Bézier_curve\n */\n\n\nfunction CatmullRom(t, p0, p1, p2, p3) {\n var v0 = (p2 - p0) * 0.5;\n var v1 = (p3 - p1) * 0.5;\n var t2 = t * t;\n var t3 = t * t2;\n return (2 * p1 - 2 * p2 + v0 + v1) * t3 + (-3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1;\n} //\n\n\nfunction QuadraticBezierP0(t, p) {\n var k = 1 - t;\n return k * k * p;\n}\n\nfunction QuadraticBezierP1(t, p) {\n return 2 * (1 - t) * t * p;\n}\n\nfunction QuadraticBezierP2(t, p) {\n return t * t * p;\n}\n\nfunction QuadraticBezier(t, p0, p1, p2) {\n return QuadraticBezierP0(t, p0) + QuadraticBezierP1(t, p1) + QuadraticBezierP2(t, p2);\n} //\n\n\nfunction CubicBezierP0(t, p) {\n var k = 1 - t;\n return k * k * k * p;\n}\n\nfunction CubicBezierP1(t, p) {\n var k = 1 - t;\n return 3 * k * k * t * p;\n}\n\nfunction CubicBezierP2(t, p) {\n return 3 * (1 - t) * t * t * p;\n}\n\nfunction CubicBezierP3(t, p) {\n return t * t * t * p;\n}\n\nfunction CubicBezier(t, p0, p1, p2, p3) {\n return CubicBezierP0(t, p0) + CubicBezierP1(t, p1) + CubicBezierP2(t, p2) + CubicBezierP3(t, p3);\n}\n\nfunction CubicBezierCurve(v0, v1, v2, v3) {\n Curve.call(this);\n this.type = 'CubicBezierCurve';\n this.v0 = v0 || new Vector2();\n this.v1 = v1 || new Vector2();\n this.v2 = v2 || new Vector2();\n this.v3 = v3 || new Vector2();\n}\n\nCubicBezierCurve.prototype = Object.create(Curve.prototype);\nCubicBezierCurve.prototype.constructor = CubicBezierCurve;\nCubicBezierCurve.prototype.isCubicBezierCurve = true;\n\nCubicBezierCurve.prototype.getPoint = function (t, optionalTarget) {\n var point = optionalTarget || new Vector2();\n var v0 = this.v0,\n v1 = this.v1,\n v2 = this.v2,\n v3 = this.v3;\n point.set(CubicBezier(t, v0.x, v1.x, v2.x, v3.x), CubicBezier(t, v0.y, v1.y, v2.y, v3.y));\n return point;\n};\n\nCubicBezierCurve.prototype.copy = function (source) {\n Curve.prototype.copy.call(this, source);\n this.v0.copy(source.v0);\n this.v1.copy(source.v1);\n this.v2.copy(source.v2);\n this.v3.copy(source.v3);\n return this;\n};\n\nCubicBezierCurve.prototype.toJSON = function () {\n var data = Curve.prototype.toJSON.call(this);\n data.v0 = this.v0.toArray();\n data.v1 = this.v1.toArray();\n data.v2 = this.v2.toArray();\n data.v3 = this.v3.toArray();\n return data;\n};\n\nCubicBezierCurve.prototype.fromJSON = function (json) {\n Curve.prototype.fromJSON.call(this, json);\n this.v0.fromArray(json.v0);\n this.v1.fromArray(json.v1);\n this.v2.fromArray(json.v2);\n this.v3.fromArray(json.v3);\n return this;\n};\n\nfunction CubicBezierCurve3(v0, v1, v2, v3) {\n Curve.call(this);\n this.type = 'CubicBezierCurve3';\n this.v0 = v0 || new Vector3();\n this.v1 = v1 || new Vector3();\n this.v2 = v2 || new Vector3();\n this.v3 = v3 || new Vector3();\n}\n\nCubicBezierCurve3.prototype = Object.create(Curve.prototype);\nCubicBezierCurve3.prototype.constructor = CubicBezierCurve3;\nCubicBezierCurve3.prototype.isCubicBezierCurve3 = true;\n\nCubicBezierCurve3.prototype.getPoint = function (t, optionalTarget) {\n var point = optionalTarget || new Vector3();\n var v0 = this.v0,\n v1 = this.v1,\n v2 = this.v2,\n v3 = this.v3;\n point.set(CubicBezier(t, v0.x, v1.x, v2.x, v3.x), CubicBezier(t, v0.y, v1.y, v2.y, v3.y), CubicBezier(t, v0.z, v1.z, v2.z, v3.z));\n return point;\n};\n\nCubicBezierCurve3.prototype.copy = function (source) {\n Curve.prototype.copy.call(this, source);\n this.v0.copy(source.v0);\n this.v1.copy(source.v1);\n this.v2.copy(source.v2);\n this.v3.copy(source.v3);\n return this;\n};\n\nCubicBezierCurve3.prototype.toJSON = function () {\n var data = Curve.prototype.toJSON.call(this);\n data.v0 = this.v0.toArray();\n data.v1 = this.v1.toArray();\n data.v2 = this.v2.toArray();\n data.v3 = this.v3.toArray();\n return data;\n};\n\nCubicBezierCurve3.prototype.fromJSON = function (json) {\n Curve.prototype.fromJSON.call(this, json);\n this.v0.fromArray(json.v0);\n this.v1.fromArray(json.v1);\n this.v2.fromArray(json.v2);\n this.v3.fromArray(json.v3);\n return this;\n};\n\nfunction LineCurve(v1, v2) {\n Curve.call(this);\n this.type = 'LineCurve';\n this.v1 = v1 || new Vector2();\n this.v2 = v2 || new Vector2();\n}\n\nLineCurve.prototype = Object.create(Curve.prototype);\nLineCurve.prototype.constructor = LineCurve;\nLineCurve.prototype.isLineCurve = true;\n\nLineCurve.prototype.getPoint = function (t, optionalTarget) {\n var point = optionalTarget || new Vector2();\n\n if (t === 1) {\n point.copy(this.v2);\n } else {\n point.copy(this.v2).sub(this.v1);\n point.multiplyScalar(t).add(this.v1);\n }\n\n return point;\n}; // Line curve is linear, so we can overwrite default getPointAt\n\n\nLineCurve.prototype.getPointAt = function (u, optionalTarget) {\n return this.getPoint(u, optionalTarget);\n};\n\nLineCurve.prototype.getTangent = function ()\n/* t */\n{\n var tangent = this.v2.clone().sub(this.v1);\n return tangent.normalize();\n};\n\nLineCurve.prototype.copy = function (source) {\n Curve.prototype.copy.call(this, source);\n this.v1.copy(source.v1);\n this.v2.copy(source.v2);\n return this;\n};\n\nLineCurve.prototype.toJSON = function () {\n var data = Curve.prototype.toJSON.call(this);\n data.v1 = this.v1.toArray();\n data.v2 = this.v2.toArray();\n return data;\n};\n\nLineCurve.prototype.fromJSON = function (json) {\n Curve.prototype.fromJSON.call(this, json);\n this.v1.fromArray(json.v1);\n this.v2.fromArray(json.v2);\n return this;\n};\n\nfunction LineCurve3(v1, v2) {\n Curve.call(this);\n this.type = 'LineCurve3';\n this.v1 = v1 || new Vector3();\n this.v2 = v2 || new Vector3();\n}\n\nLineCurve3.prototype = Object.create(Curve.prototype);\nLineCurve3.prototype.constructor = LineCurve3;\nLineCurve3.prototype.isLineCurve3 = true;\n\nLineCurve3.prototype.getPoint = function (t, optionalTarget) {\n var point = optionalTarget || new Vector3();\n\n if (t === 1) {\n point.copy(this.v2);\n } else {\n point.copy(this.v2).sub(this.v1);\n point.multiplyScalar(t).add(this.v1);\n }\n\n return point;\n}; // Line curve is linear, so we can overwrite default getPointAt\n\n\nLineCurve3.prototype.getPointAt = function (u, optionalTarget) {\n return this.getPoint(u, optionalTarget);\n};\n\nLineCurve3.prototype.copy = function (source) {\n Curve.prototype.copy.call(this, source);\n this.v1.copy(source.v1);\n this.v2.copy(source.v2);\n return this;\n};\n\nLineCurve3.prototype.toJSON = function () {\n var data = Curve.prototype.toJSON.call(this);\n data.v1 = this.v1.toArray();\n data.v2 = this.v2.toArray();\n return data;\n};\n\nLineCurve3.prototype.fromJSON = function (json) {\n Curve.prototype.fromJSON.call(this, json);\n this.v1.fromArray(json.v1);\n this.v2.fromArray(json.v2);\n return this;\n};\n\nfunction QuadraticBezierCurve(v0, v1, v2) {\n Curve.call(this);\n this.type = 'QuadraticBezierCurve';\n this.v0 = v0 || new Vector2();\n this.v1 = v1 || new Vector2();\n this.v2 = v2 || new Vector2();\n}\n\nQuadraticBezierCurve.prototype = Object.create(Curve.prototype);\nQuadraticBezierCurve.prototype.constructor = QuadraticBezierCurve;\nQuadraticBezierCurve.prototype.isQuadraticBezierCurve = true;\n\nQuadraticBezierCurve.prototype.getPoint = function (t, optionalTarget) {\n var point = optionalTarget || new Vector2();\n var v0 = this.v0,\n v1 = this.v1,\n v2 = this.v2;\n point.set(QuadraticBezier(t, v0.x, v1.x, v2.x), QuadraticBezier(t, v0.y, v1.y, v2.y));\n return point;\n};\n\nQuadraticBezierCurve.prototype.copy = function (source) {\n Curve.prototype.copy.call(this, source);\n this.v0.copy(source.v0);\n this.v1.copy(source.v1);\n this.v2.copy(source.v2);\n return this;\n};\n\nQuadraticBezierCurve.prototype.toJSON = function () {\n var data = Curve.prototype.toJSON.call(this);\n data.v0 = this.v0.toArray();\n data.v1 = this.v1.toArray();\n data.v2 = this.v2.toArray();\n return data;\n};\n\nQuadraticBezierCurve.prototype.fromJSON = function (json) {\n Curve.prototype.fromJSON.call(this, json);\n this.v0.fromArray(json.v0);\n this.v1.fromArray(json.v1);\n this.v2.fromArray(json.v2);\n return this;\n};\n\nfunction QuadraticBezierCurve3(v0, v1, v2) {\n Curve.call(this);\n this.type = 'QuadraticBezierCurve3';\n this.v0 = v0 || new Vector3();\n this.v1 = v1 || new Vector3();\n this.v2 = v2 || new Vector3();\n}\n\nQuadraticBezierCurve3.prototype = Object.create(Curve.prototype);\nQuadraticBezierCurve3.prototype.constructor = QuadraticBezierCurve3;\nQuadraticBezierCurve3.prototype.isQuadraticBezierCurve3 = true;\n\nQuadraticBezierCurve3.prototype.getPoint = function (t, optionalTarget) {\n var point = optionalTarget || new Vector3();\n var v0 = this.v0,\n v1 = this.v1,\n v2 = this.v2;\n point.set(QuadraticBezier(t, v0.x, v1.x, v2.x), QuadraticBezier(t, v0.y, v1.y, v2.y), QuadraticBezier(t, v0.z, v1.z, v2.z));\n return point;\n};\n\nQuadraticBezierCurve3.prototype.copy = function (source) {\n Curve.prototype.copy.call(this, source);\n this.v0.copy(source.v0);\n this.v1.copy(source.v1);\n this.v2.copy(source.v2);\n return this;\n};\n\nQuadraticBezierCurve3.prototype.toJSON = function () {\n var data = Curve.prototype.toJSON.call(this);\n data.v0 = this.v0.toArray();\n data.v1 = this.v1.toArray();\n data.v2 = this.v2.toArray();\n return data;\n};\n\nQuadraticBezierCurve3.prototype.fromJSON = function (json) {\n Curve.prototype.fromJSON.call(this, json);\n this.v0.fromArray(json.v0);\n this.v1.fromArray(json.v1);\n this.v2.fromArray(json.v2);\n return this;\n};\n\nfunction SplineCurve(points\n/* array of Vector2 */\n) {\n Curve.call(this);\n this.type = 'SplineCurve';\n this.points = points || [];\n}\n\nSplineCurve.prototype = Object.create(Curve.prototype);\nSplineCurve.prototype.constructor = SplineCurve;\nSplineCurve.prototype.isSplineCurve = true;\n\nSplineCurve.prototype.getPoint = function (t, optionalTarget) {\n var point = optionalTarget || new Vector2();\n var points = this.points;\n var p = (points.length - 1) * t;\n var intPoint = Math.floor(p);\n var weight = p - intPoint;\n var p0 = points[intPoint === 0 ? intPoint : intPoint - 1];\n var p1 = points[intPoint];\n var p2 = points[intPoint > points.length - 2 ? points.length - 1 : intPoint + 1];\n var p3 = points[intPoint > points.length - 3 ? points.length - 1 : intPoint + 2];\n point.set(CatmullRom(weight, p0.x, p1.x, p2.x, p3.x), CatmullRom(weight, p0.y, p1.y, p2.y, p3.y));\n return point;\n};\n\nSplineCurve.prototype.copy = function (source) {\n Curve.prototype.copy.call(this, source);\n this.points = [];\n\n for (var i = 0, l = source.points.length; i < l; i++) {\n var point = source.points[i];\n this.points.push(point.clone());\n }\n\n return this;\n};\n\nSplineCurve.prototype.toJSON = function () {\n var data = Curve.prototype.toJSON.call(this);\n data.points = [];\n\n for (var i = 0, l = this.points.length; i < l; i++) {\n var point = this.points[i];\n data.points.push(point.toArray());\n }\n\n return data;\n};\n\nSplineCurve.prototype.fromJSON = function (json) {\n Curve.prototype.fromJSON.call(this, json);\n this.points = [];\n\n for (var i = 0, l = json.points.length; i < l; i++) {\n var point = json.points[i];\n this.points.push(new Vector2().fromArray(point));\n }\n\n return this;\n};\n\nvar Curves = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ArcCurve: ArcCurve,\n CatmullRomCurve3: CatmullRomCurve3,\n CubicBezierCurve: CubicBezierCurve,\n CubicBezierCurve3: CubicBezierCurve3,\n EllipseCurve: EllipseCurve,\n LineCurve: LineCurve,\n LineCurve3: LineCurve3,\n QuadraticBezierCurve: QuadraticBezierCurve,\n QuadraticBezierCurve3: QuadraticBezierCurve3,\n SplineCurve: SplineCurve\n});\n/**\n * @author zz85 / http://www.lab4games.net/zz85/blog\n *\n **/\n\n/**************************************************************\n *\tCurved Path - a curve path is simply a array of connected\n * curves, but retains the api of a curve\n **************************************************************/\n\nfunction CurvePath() {\n Curve.call(this);\n this.type = 'CurvePath';\n this.curves = [];\n this.autoClose = false; // Automatically closes the path\n}\n\nCurvePath.prototype = Object.assign(Object.create(Curve.prototype), {\n constructor: CurvePath,\n add: function add(curve) {\n this.curves.push(curve);\n },\n closePath: function closePath() {\n // Add a line curve if start and end of lines are not connected\n var startPoint = this.curves[0].getPoint(0);\n var endPoint = this.curves[this.curves.length - 1].getPoint(1);\n\n if (!startPoint.equals(endPoint)) {\n this.curves.push(new LineCurve(endPoint, startPoint));\n }\n },\n // To get accurate point with reference to\n // entire path distance at time t,\n // following has to be done:\n // 1. Length of each sub path have to be known\n // 2. Locate and identify type of curve\n // 3. Get t for the curve\n // 4. Return curve.getPointAt(t')\n getPoint: function getPoint(t) {\n var d = t * this.getLength();\n var curveLengths = this.getCurveLengths();\n var i = 0; // To think about boundaries points.\n\n while (i < curveLengths.length) {\n if (curveLengths[i] >= d) {\n var diff = curveLengths[i] - d;\n var curve = this.curves[i];\n var segmentLength = curve.getLength();\n var u = segmentLength === 0 ? 0 : 1 - diff / segmentLength;\n return curve.getPointAt(u);\n }\n\n i++;\n }\n\n return null; // loop where sum != 0, sum > d , sum+1 1 && !points[points.length - 1].equals(points[0])) {\n points.push(points[0]);\n }\n\n return points;\n },\n copy: function copy(source) {\n Curve.prototype.copy.call(this, source);\n this.curves = [];\n\n for (var i = 0, l = source.curves.length; i < l; i++) {\n var curve = source.curves[i];\n this.curves.push(curve.clone());\n }\n\n this.autoClose = source.autoClose;\n return this;\n },\n toJSON: function toJSON() {\n var data = Curve.prototype.toJSON.call(this);\n data.autoClose = this.autoClose;\n data.curves = [];\n\n for (var i = 0, l = this.curves.length; i < l; i++) {\n var curve = this.curves[i];\n data.curves.push(curve.toJSON());\n }\n\n return data;\n },\n fromJSON: function fromJSON(json) {\n Curve.prototype.fromJSON.call(this, json);\n this.autoClose = json.autoClose;\n this.curves = [];\n\n for (var i = 0, l = json.curves.length; i < l; i++) {\n var curve = json.curves[i];\n this.curves.push(new Curves[curve.type]().fromJSON(curve));\n }\n\n return this;\n }\n});\n/**\n * @author zz85 / http://www.lab4games.net/zz85/blog\n * Creates free form 2d path using series of points, lines or curves.\n **/\n\nfunction Path(points) {\n CurvePath.call(this);\n this.type = 'Path';\n this.currentPoint = new Vector2();\n\n if (points) {\n this.setFromPoints(points);\n }\n}\n\nPath.prototype = Object.assign(Object.create(CurvePath.prototype), {\n constructor: Path,\n setFromPoints: function setFromPoints(points) {\n this.moveTo(points[0].x, points[0].y);\n\n for (var i = 1, l = points.length; i < l; i++) {\n this.lineTo(points[i].x, points[i].y);\n }\n\n return this;\n },\n moveTo: function moveTo(x, y) {\n this.currentPoint.set(x, y); // TODO consider referencing vectors instead of copying?\n\n return this;\n },\n lineTo: function lineTo(x, y) {\n var curve = new LineCurve(this.currentPoint.clone(), new Vector2(x, y));\n this.curves.push(curve);\n this.currentPoint.set(x, y);\n return this;\n },\n quadraticCurveTo: function quadraticCurveTo(aCPx, aCPy, aX, aY) {\n var curve = new QuadraticBezierCurve(this.currentPoint.clone(), new Vector2(aCPx, aCPy), new Vector2(aX, aY));\n this.curves.push(curve);\n this.currentPoint.set(aX, aY);\n return this;\n },\n bezierCurveTo: function bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) {\n var curve = new CubicBezierCurve(this.currentPoint.clone(), new Vector2(aCP1x, aCP1y), new Vector2(aCP2x, aCP2y), new Vector2(aX, aY));\n this.curves.push(curve);\n this.currentPoint.set(aX, aY);\n return this;\n },\n splineThru: function splineThru(pts\n /*Array of Vector*/\n ) {\n var npts = [this.currentPoint.clone()].concat(pts);\n var curve = new SplineCurve(npts);\n this.curves.push(curve);\n this.currentPoint.copy(pts[pts.length - 1]);\n return this;\n },\n arc: function arc(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) {\n var x0 = this.currentPoint.x;\n var y0 = this.currentPoint.y;\n this.absarc(aX + x0, aY + y0, aRadius, aStartAngle, aEndAngle, aClockwise);\n return this;\n },\n absarc: function absarc(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) {\n this.absellipse(aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise);\n return this;\n },\n ellipse: function ellipse(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation) {\n var x0 = this.currentPoint.x;\n var y0 = this.currentPoint.y;\n this.absellipse(aX + x0, aY + y0, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation);\n return this;\n },\n absellipse: function absellipse(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation) {\n var curve = new EllipseCurve(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation);\n\n if (this.curves.length > 0) {\n // if a previous curve is present, attempt to join\n var firstPoint = curve.getPoint(0);\n\n if (!firstPoint.equals(this.currentPoint)) {\n this.lineTo(firstPoint.x, firstPoint.y);\n }\n }\n\n this.curves.push(curve);\n var lastPoint = curve.getPoint(1);\n this.currentPoint.copy(lastPoint);\n return this;\n },\n copy: function copy(source) {\n CurvePath.prototype.copy.call(this, source);\n this.currentPoint.copy(source.currentPoint);\n return this;\n },\n toJSON: function toJSON() {\n var data = CurvePath.prototype.toJSON.call(this);\n data.currentPoint = this.currentPoint.toArray();\n return data;\n },\n fromJSON: function fromJSON(json) {\n CurvePath.prototype.fromJSON.call(this, json);\n this.currentPoint.fromArray(json.currentPoint);\n return this;\n }\n});\n/**\n * @author zz85 / http://www.lab4games.net/zz85/blog\n * Defines a 2d shape plane using paths.\n **/\n// STEP 1 Create a path.\n// STEP 2 Turn path into shape.\n// STEP 3 ExtrudeGeometry takes in Shape/Shapes\n// STEP 3a - Extract points from each shape, turn to vertices\n// STEP 3b - Triangulate each shape, add faces.\n\nfunction Shape(points) {\n Path.call(this, points);\n this.uuid = _Math.generateUUID();\n this.type = 'Shape';\n this.holes = [];\n}\n\nShape.prototype = Object.assign(Object.create(Path.prototype), {\n constructor: Shape,\n getPointsHoles: function getPointsHoles(divisions) {\n var holesPts = [];\n\n for (var i = 0, l = this.holes.length; i < l; i++) {\n holesPts[i] = this.holes[i].getPoints(divisions);\n }\n\n return holesPts;\n },\n // get points of shape and holes (keypoints based on segments parameter)\n extractPoints: function extractPoints(divisions) {\n return {\n shape: this.getPoints(divisions),\n holes: this.getPointsHoles(divisions)\n };\n },\n copy: function copy(source) {\n Path.prototype.copy.call(this, source);\n this.holes = [];\n\n for (var i = 0, l = source.holes.length; i < l; i++) {\n var hole = source.holes[i];\n this.holes.push(hole.clone());\n }\n\n return this;\n },\n toJSON: function toJSON() {\n var data = Path.prototype.toJSON.call(this);\n data.uuid = this.uuid;\n data.holes = [];\n\n for (var i = 0, l = this.holes.length; i < l; i++) {\n var hole = this.holes[i];\n data.holes.push(hole.toJSON());\n }\n\n return data;\n },\n fromJSON: function fromJSON(json) {\n Path.prototype.fromJSON.call(this, json);\n this.uuid = json.uuid;\n this.holes = [];\n\n for (var i = 0, l = json.holes.length; i < l; i++) {\n var hole = json.holes[i];\n this.holes.push(new Path().fromJSON(hole));\n }\n\n return this;\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author alteredq / http://alteredqualia.com/\n */\n\nfunction Light(color, intensity) {\n Object3D.call(this);\n this.type = 'Light';\n this.color = new Color(color);\n this.intensity = intensity !== undefined ? intensity : 1;\n this.receiveShadow = undefined;\n}\n\nLight.prototype = Object.assign(Object.create(Object3D.prototype), {\n constructor: Light,\n isLight: true,\n copy: function copy(source) {\n Object3D.prototype.copy.call(this, source);\n this.color.copy(source.color);\n this.intensity = source.intensity;\n return this;\n },\n toJSON: function toJSON(meta) {\n var data = Object3D.prototype.toJSON.call(this, meta);\n data.object.color = this.color.getHex();\n data.object.intensity = this.intensity;\n if (this.groundColor !== undefined) data.object.groundColor = this.groundColor.getHex();\n if (this.distance !== undefined) data.object.distance = this.distance;\n if (this.angle !== undefined) data.object.angle = this.angle;\n if (this.decay !== undefined) data.object.decay = this.decay;\n if (this.penumbra !== undefined) data.object.penumbra = this.penumbra;\n if (this.shadow !== undefined) data.object.shadow = this.shadow.toJSON();\n return data;\n }\n});\n/**\n * @author alteredq / http://alteredqualia.com/\n */\n\nfunction HemisphereLight(skyColor, groundColor, intensity) {\n Light.call(this, skyColor, intensity);\n this.type = 'HemisphereLight';\n this.castShadow = undefined;\n this.position.copy(Object3D.DefaultUp);\n this.updateMatrix();\n this.groundColor = new Color(groundColor);\n}\n\nHemisphereLight.prototype = Object.assign(Object.create(Light.prototype), {\n constructor: HemisphereLight,\n isHemisphereLight: true,\n copy: function copy(source) {\n Light.prototype.copy.call(this, source);\n this.groundColor.copy(source.groundColor);\n return this;\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction LightShadow(camera) {\n this.camera = camera;\n this.bias = 0;\n this.radius = 1;\n this.mapSize = new Vector2(512, 512);\n this.map = null;\n this.mapPass = null;\n this.matrix = new Matrix4();\n this._frustum = new Frustum();\n this._frameExtents = new Vector2(1, 1);\n this._viewportCount = 1;\n this._viewports = [new Vector4(0, 0, 1, 1)];\n}\n\nObject.assign(LightShadow.prototype, {\n _projScreenMatrix: new Matrix4(),\n _lightPositionWorld: new Vector3(),\n _lookTarget: new Vector3(),\n getViewportCount: function getViewportCount() {\n return this._viewportCount;\n },\n getFrustum: function getFrustum() {\n return this._frustum;\n },\n updateMatrices: function updateMatrices(light) {\n var shadowCamera = this.camera,\n shadowMatrix = this.matrix,\n projScreenMatrix = this._projScreenMatrix,\n lookTarget = this._lookTarget,\n lightPositionWorld = this._lightPositionWorld;\n lightPositionWorld.setFromMatrixPosition(light.matrixWorld);\n shadowCamera.position.copy(lightPositionWorld);\n lookTarget.setFromMatrixPosition(light.target.matrixWorld);\n shadowCamera.lookAt(lookTarget);\n shadowCamera.updateMatrixWorld();\n projScreenMatrix.multiplyMatrices(shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse);\n\n this._frustum.setFromMatrix(projScreenMatrix);\n\n shadowMatrix.set(0.5, 0.0, 0.0, 0.5, 0.0, 0.5, 0.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.0, 0.0, 0.0, 1.0);\n shadowMatrix.multiply(shadowCamera.projectionMatrix);\n shadowMatrix.multiply(shadowCamera.matrixWorldInverse);\n },\n getViewport: function getViewport(viewportIndex) {\n return this._viewports[viewportIndex];\n },\n getFrameExtents: function getFrameExtents() {\n return this._frameExtents;\n },\n copy: function copy(source) {\n this.camera = source.camera.clone();\n this.bias = source.bias;\n this.radius = source.radius;\n this.mapSize.copy(source.mapSize);\n return this;\n },\n clone: function clone() {\n return new this.constructor().copy(this);\n },\n toJSON: function toJSON() {\n var object = {};\n if (this.bias !== 0) object.bias = this.bias;\n if (this.radius !== 1) object.radius = this.radius;\n if (this.mapSize.x !== 512 || this.mapSize.y !== 512) object.mapSize = this.mapSize.toArray();\n object.camera = this.camera.toJSON(false).object;\n delete object.camera.matrix;\n return object;\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction SpotLightShadow() {\n LightShadow.call(this, new PerspectiveCamera(50, 1, 0.5, 500));\n}\n\nSpotLightShadow.prototype = Object.assign(Object.create(LightShadow.prototype), {\n constructor: SpotLightShadow,\n isSpotLightShadow: true,\n updateMatrices: function updateMatrices(light) {\n var camera = this.camera;\n var fov = _Math.RAD2DEG * 2 * light.angle;\n var aspect = this.mapSize.width / this.mapSize.height;\n var far = light.distance || camera.far;\n\n if (fov !== camera.fov || aspect !== camera.aspect || far !== camera.far) {\n camera.fov = fov;\n camera.aspect = aspect;\n camera.far = far;\n camera.updateProjectionMatrix();\n }\n\n LightShadow.prototype.updateMatrices.call(this, light);\n }\n});\n/**\n * @author alteredq / http://alteredqualia.com/\n */\n\nfunction SpotLight(color, intensity, distance, angle, penumbra, decay) {\n Light.call(this, color, intensity);\n this.type = 'SpotLight';\n this.position.copy(Object3D.DefaultUp);\n this.updateMatrix();\n this.target = new Object3D();\n Object.defineProperty(this, 'power', {\n get: function get() {\n // intensity = power per solid angle.\n // ref: equation (17) from https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\n return this.intensity * Math.PI;\n },\n set: function set(power) {\n // intensity = power per solid angle.\n // ref: equation (17) from https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\n this.intensity = power / Math.PI;\n }\n });\n this.distance = distance !== undefined ? distance : 0;\n this.angle = angle !== undefined ? angle : Math.PI / 3;\n this.penumbra = penumbra !== undefined ? penumbra : 0;\n this.decay = decay !== undefined ? decay : 1; // for physically correct lights, should be 2.\n\n this.shadow = new SpotLightShadow();\n}\n\nSpotLight.prototype = Object.assign(Object.create(Light.prototype), {\n constructor: SpotLight,\n isSpotLight: true,\n copy: function copy(source) {\n Light.prototype.copy.call(this, source);\n this.distance = source.distance;\n this.angle = source.angle;\n this.penumbra = source.penumbra;\n this.decay = source.decay;\n this.target = source.target.clone();\n this.shadow = source.shadow.clone();\n return this;\n }\n});\n\nfunction PointLightShadow() {\n LightShadow.call(this, new PerspectiveCamera(90, 1, 0.5, 500));\n this._frameExtents = new Vector2(4, 2);\n this._viewportCount = 6;\n this._viewports = [// These viewports map a cube-map onto a 2D texture with the\n // following orientation:\n //\n // xzXZ\n // y Y\n //\n // X - Positive x direction\n // x - Negative x direction\n // Y - Positive y direction\n // y - Negative y direction\n // Z - Positive z direction\n // z - Negative z direction\n // positive X\n new Vector4(2, 1, 1, 1), // negative X\n new Vector4(0, 1, 1, 1), // positive Z\n new Vector4(3, 1, 1, 1), // negative Z\n new Vector4(1, 1, 1, 1), // positive Y\n new Vector4(3, 0, 1, 1), // negative Y\n new Vector4(1, 0, 1, 1)];\n this._cubeDirections = [new Vector3(1, 0, 0), new Vector3(-1, 0, 0), new Vector3(0, 0, 1), new Vector3(0, 0, -1), new Vector3(0, 1, 0), new Vector3(0, -1, 0)];\n this._cubeUps = [new Vector3(0, 1, 0), new Vector3(0, 1, 0), new Vector3(0, 1, 0), new Vector3(0, 1, 0), new Vector3(0, 0, 1), new Vector3(0, 0, -1)];\n}\n\nPointLightShadow.prototype = Object.assign(Object.create(LightShadow.prototype), {\n constructor: PointLightShadow,\n isPointLightShadow: true,\n updateMatrices: function updateMatrices(light, viewportIndex) {\n if (viewportIndex === undefined) viewportIndex = 0;\n var camera = this.camera,\n shadowMatrix = this.matrix,\n lightPositionWorld = this._lightPositionWorld,\n lookTarget = this._lookTarget,\n projScreenMatrix = this._projScreenMatrix;\n lightPositionWorld.setFromMatrixPosition(light.matrixWorld);\n camera.position.copy(lightPositionWorld);\n lookTarget.copy(camera.position);\n lookTarget.add(this._cubeDirections[viewportIndex]);\n camera.up.copy(this._cubeUps[viewportIndex]);\n camera.lookAt(lookTarget);\n camera.updateMatrixWorld();\n shadowMatrix.makeTranslation(-lightPositionWorld.x, -lightPositionWorld.y, -lightPositionWorld.z);\n projScreenMatrix.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse);\n\n this._frustum.setFromMatrix(projScreenMatrix);\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction PointLight(color, intensity, distance, decay) {\n Light.call(this, color, intensity);\n this.type = 'PointLight';\n Object.defineProperty(this, 'power', {\n get: function get() {\n // intensity = power per solid angle.\n // ref: equation (15) from https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\n return this.intensity * 4 * Math.PI;\n },\n set: function set(power) {\n // intensity = power per solid angle.\n // ref: equation (15) from https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\n this.intensity = power / (4 * Math.PI);\n }\n });\n this.distance = distance !== undefined ? distance : 0;\n this.decay = decay !== undefined ? decay : 1; // for physically correct lights, should be 2.\n\n this.shadow = new PointLightShadow();\n}\n\nPointLight.prototype = Object.assign(Object.create(Light.prototype), {\n constructor: PointLight,\n isPointLight: true,\n copy: function copy(source) {\n Light.prototype.copy.call(this, source);\n this.distance = source.distance;\n this.decay = source.decay;\n this.shadow = source.shadow.clone();\n return this;\n }\n});\n/**\n * @author alteredq / http://alteredqualia.com/\n * @author arose / http://github.com/arose\n */\n\nfunction OrthographicCamera(left, right, top, bottom, near, far) {\n Camera.call(this);\n this.type = 'OrthographicCamera';\n this.zoom = 1;\n this.view = null;\n this.left = left !== undefined ? left : -1;\n this.right = right !== undefined ? right : 1;\n this.top = top !== undefined ? top : 1;\n this.bottom = bottom !== undefined ? bottom : -1;\n this.near = near !== undefined ? near : 0.1;\n this.far = far !== undefined ? far : 2000;\n this.updateProjectionMatrix();\n}\n\nOrthographicCamera.prototype = Object.assign(Object.create(Camera.prototype), {\n constructor: OrthographicCamera,\n isOrthographicCamera: true,\n copy: function copy(source, recursive) {\n Camera.prototype.copy.call(this, source, recursive);\n this.left = source.left;\n this.right = source.right;\n this.top = source.top;\n this.bottom = source.bottom;\n this.near = source.near;\n this.far = source.far;\n this.zoom = source.zoom;\n this.view = source.view === null ? null : Object.assign({}, source.view);\n return this;\n },\n setViewOffset: function setViewOffset(fullWidth, fullHeight, x, y, width, height) {\n if (this.view === null) {\n this.view = {\n enabled: true,\n fullWidth: 1,\n fullHeight: 1,\n offsetX: 0,\n offsetY: 0,\n width: 1,\n height: 1\n };\n }\n\n this.view.enabled = true;\n this.view.fullWidth = fullWidth;\n this.view.fullHeight = fullHeight;\n this.view.offsetX = x;\n this.view.offsetY = y;\n this.view.width = width;\n this.view.height = height;\n this.updateProjectionMatrix();\n },\n clearViewOffset: function clearViewOffset() {\n if (this.view !== null) {\n this.view.enabled = false;\n }\n\n this.updateProjectionMatrix();\n },\n updateProjectionMatrix: function updateProjectionMatrix() {\n var dx = (this.right - this.left) / (2 * this.zoom);\n var dy = (this.top - this.bottom) / (2 * this.zoom);\n var cx = (this.right + this.left) / 2;\n var cy = (this.top + this.bottom) / 2;\n var left = cx - dx;\n var right = cx + dx;\n var top = cy + dy;\n var bottom = cy - dy;\n\n if (this.view !== null && this.view.enabled) {\n var zoomW = this.zoom / (this.view.width / this.view.fullWidth);\n var zoomH = this.zoom / (this.view.height / this.view.fullHeight);\n var scaleW = (this.right - this.left) / this.view.width;\n var scaleH = (this.top - this.bottom) / this.view.height;\n left += scaleW * (this.view.offsetX / zoomW);\n right = left + scaleW * (this.view.width / zoomW);\n top -= scaleH * (this.view.offsetY / zoomH);\n bottom = top - scaleH * (this.view.height / zoomH);\n }\n\n this.projectionMatrix.makeOrthographic(left, right, top, bottom, this.near, this.far);\n this.projectionMatrixInverse.getInverse(this.projectionMatrix);\n },\n toJSON: function toJSON(meta) {\n var data = Object3D.prototype.toJSON.call(this, meta);\n data.object.zoom = this.zoom;\n data.object.left = this.left;\n data.object.right = this.right;\n data.object.top = this.top;\n data.object.bottom = this.bottom;\n data.object.near = this.near;\n data.object.far = this.far;\n if (this.view !== null) data.object.view = Object.assign({}, this.view);\n return data;\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction DirectionalLightShadow() {\n LightShadow.call(this, new OrthographicCamera(-5, 5, 5, -5, 0.5, 500));\n}\n\nDirectionalLightShadow.prototype = Object.assign(Object.create(LightShadow.prototype), {\n constructor: DirectionalLightShadow,\n isDirectionalLightShadow: true,\n updateMatrices: function updateMatrices(light) {\n LightShadow.prototype.updateMatrices.call(this, light);\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author alteredq / http://alteredqualia.com/\n */\n\nfunction DirectionalLight(color, intensity) {\n Light.call(this, color, intensity);\n this.type = 'DirectionalLight';\n this.position.copy(Object3D.DefaultUp);\n this.updateMatrix();\n this.target = new Object3D();\n this.shadow = new DirectionalLightShadow();\n}\n\nDirectionalLight.prototype = Object.assign(Object.create(Light.prototype), {\n constructor: DirectionalLight,\n isDirectionalLight: true,\n copy: function copy(source) {\n Light.prototype.copy.call(this, source);\n this.target = source.target.clone();\n this.shadow = source.shadow.clone();\n return this;\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction AmbientLight(color, intensity) {\n Light.call(this, color, intensity);\n this.type = 'AmbientLight';\n this.castShadow = undefined;\n}\n\nAmbientLight.prototype = Object.assign(Object.create(Light.prototype), {\n constructor: AmbientLight,\n isAmbientLight: true\n});\n/**\n * @author abelnation / http://github.com/abelnation\n */\n\nfunction RectAreaLight(color, intensity, width, height) {\n Light.call(this, color, intensity);\n this.type = 'RectAreaLight';\n this.width = width !== undefined ? width : 10;\n this.height = height !== undefined ? height : 10;\n}\n\nRectAreaLight.prototype = Object.assign(Object.create(Light.prototype), {\n constructor: RectAreaLight,\n isRectAreaLight: true,\n copy: function copy(source) {\n Light.prototype.copy.call(this, source);\n this.width = source.width;\n this.height = source.height;\n return this;\n },\n toJSON: function toJSON(meta) {\n var data = Light.prototype.toJSON.call(this, meta);\n data.object.width = this.width;\n data.object.height = this.height;\n return data;\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction MaterialLoader(manager) {\n Loader.call(this, manager);\n this.textures = {};\n}\n\nMaterialLoader.prototype = Object.assign(Object.create(Loader.prototype), {\n constructor: MaterialLoader,\n load: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var loader = new FileLoader(scope.manager);\n loader.setPath(scope.path);\n loader.load(url, function (text) {\n onLoad(scope.parse(JSON.parse(text)));\n }, onProgress, onError);\n },\n parse: function parse(json) {\n var textures = this.textures;\n\n function getTexture(name) {\n if (textures[name] === undefined) {\n console.warn('THREE.MaterialLoader: Undefined texture', name);\n }\n\n return textures[name];\n }\n\n var material = new Materials[json.type]();\n if (json.uuid !== undefined) material.uuid = json.uuid;\n if (json.name !== undefined) material.name = json.name;\n if (json.color !== undefined) material.color.setHex(json.color);\n if (json.roughness !== undefined) material.roughness = json.roughness;\n if (json.metalness !== undefined) material.metalness = json.metalness;\n if (json.sheen !== undefined) material.sheen = new Color().setHex(json.sheen);\n if (json.emissive !== undefined) material.emissive.setHex(json.emissive);\n if (json.specular !== undefined) material.specular.setHex(json.specular);\n if (json.shininess !== undefined) material.shininess = json.shininess;\n if (json.clearcoat !== undefined) material.clearcoat = json.clearcoat;\n if (json.clearcoatRoughness !== undefined) material.clearcoatRoughness = json.clearcoatRoughness;\n if (json.vertexColors !== undefined) material.vertexColors = json.vertexColors;\n if (json.fog !== undefined) material.fog = json.fog;\n if (json.flatShading !== undefined) material.flatShading = json.flatShading;\n if (json.blending !== undefined) material.blending = json.blending;\n if (json.combine !== undefined) material.combine = json.combine;\n if (json.side !== undefined) material.side = json.side;\n if (json.opacity !== undefined) material.opacity = json.opacity;\n if (json.transparent !== undefined) material.transparent = json.transparent;\n if (json.alphaTest !== undefined) material.alphaTest = json.alphaTest;\n if (json.depthTest !== undefined) material.depthTest = json.depthTest;\n if (json.depthWrite !== undefined) material.depthWrite = json.depthWrite;\n if (json.colorWrite !== undefined) material.colorWrite = json.colorWrite;\n if (json.stencilWrite !== undefined) material.stencilWrite = json.stencilWrite;\n if (json.stencilWriteMask !== undefined) material.stencilWriteMask = json.stencilWriteMask;\n if (json.stencilFunc !== undefined) material.stencilFunc = json.stencilFunc;\n if (json.stencilRef !== undefined) material.stencilRef = json.stencilRef;\n if (json.stencilFuncMask !== undefined) material.stencilFuncMask = json.stencilFuncMask;\n if (json.stencilFail !== undefined) material.stencilFail = json.stencilFail;\n if (json.stencilZFail !== undefined) material.stencilZFail = json.stencilZFail;\n if (json.stencilZPass !== undefined) material.stencilZPass = json.stencilZPass;\n if (json.wireframe !== undefined) material.wireframe = json.wireframe;\n if (json.wireframeLinewidth !== undefined) material.wireframeLinewidth = json.wireframeLinewidth;\n if (json.wireframeLinecap !== undefined) material.wireframeLinecap = json.wireframeLinecap;\n if (json.wireframeLinejoin !== undefined) material.wireframeLinejoin = json.wireframeLinejoin;\n if (json.rotation !== undefined) material.rotation = json.rotation;\n if (json.linewidth !== 1) material.linewidth = json.linewidth;\n if (json.dashSize !== undefined) material.dashSize = json.dashSize;\n if (json.gapSize !== undefined) material.gapSize = json.gapSize;\n if (json.scale !== undefined) material.scale = json.scale;\n if (json.polygonOffset !== undefined) material.polygonOffset = json.polygonOffset;\n if (json.polygonOffsetFactor !== undefined) material.polygonOffsetFactor = json.polygonOffsetFactor;\n if (json.polygonOffsetUnits !== undefined) material.polygonOffsetUnits = json.polygonOffsetUnits;\n if (json.skinning !== undefined) material.skinning = json.skinning;\n if (json.morphTargets !== undefined) material.morphTargets = json.morphTargets;\n if (json.morphNormals !== undefined) material.morphNormals = json.morphNormals;\n if (json.dithering !== undefined) material.dithering = json.dithering;\n if (json.visible !== undefined) material.visible = json.visible;\n if (json.toneMapped !== undefined) material.toneMapped = json.toneMapped;\n if (json.userData !== undefined) material.userData = json.userData; // Shader Material\n\n if (json.uniforms !== undefined) {\n for (var name in json.uniforms) {\n var uniform = json.uniforms[name];\n material.uniforms[name] = {};\n\n switch (uniform.type) {\n case 't':\n material.uniforms[name].value = getTexture(uniform.value);\n break;\n\n case 'c':\n material.uniforms[name].value = new Color().setHex(uniform.value);\n break;\n\n case 'v2':\n material.uniforms[name].value = new Vector2().fromArray(uniform.value);\n break;\n\n case 'v3':\n material.uniforms[name].value = new Vector3().fromArray(uniform.value);\n break;\n\n case 'v4':\n material.uniforms[name].value = new Vector4().fromArray(uniform.value);\n break;\n\n case 'm3':\n material.uniforms[name].value = new Matrix3().fromArray(uniform.value);\n\n case 'm4':\n material.uniforms[name].value = new Matrix4().fromArray(uniform.value);\n break;\n\n default:\n material.uniforms[name].value = uniform.value;\n }\n }\n }\n\n if (json.defines !== undefined) material.defines = json.defines;\n if (json.vertexShader !== undefined) material.vertexShader = json.vertexShader;\n if (json.fragmentShader !== undefined) material.fragmentShader = json.fragmentShader;\n\n if (json.extensions !== undefined) {\n for (var key in json.extensions) {\n material.extensions[key] = json.extensions[key];\n }\n } // Deprecated\n\n\n if (json.shading !== undefined) material.flatShading = json.shading === 1; // THREE.FlatShading\n // for PointsMaterial\n\n if (json.size !== undefined) material.size = json.size;\n if (json.sizeAttenuation !== undefined) material.sizeAttenuation = json.sizeAttenuation; // maps\n\n if (json.map !== undefined) material.map = getTexture(json.map);\n if (json.matcap !== undefined) material.matcap = getTexture(json.matcap);\n\n if (json.alphaMap !== undefined) {\n material.alphaMap = getTexture(json.alphaMap);\n material.transparent = true;\n }\n\n if (json.bumpMap !== undefined) material.bumpMap = getTexture(json.bumpMap);\n if (json.bumpScale !== undefined) material.bumpScale = json.bumpScale;\n if (json.normalMap !== undefined) material.normalMap = getTexture(json.normalMap);\n if (json.normalMapType !== undefined) material.normalMapType = json.normalMapType;\n\n if (json.normalScale !== undefined) {\n var normalScale = json.normalScale;\n\n if (Array.isArray(normalScale) === false) {\n // Blender exporter used to export a scalar. See #7459\n normalScale = [normalScale, normalScale];\n }\n\n material.normalScale = new Vector2().fromArray(normalScale);\n }\n\n if (json.displacementMap !== undefined) material.displacementMap = getTexture(json.displacementMap);\n if (json.displacementScale !== undefined) material.displacementScale = json.displacementScale;\n if (json.displacementBias !== undefined) material.displacementBias = json.displacementBias;\n if (json.roughnessMap !== undefined) material.roughnessMap = getTexture(json.roughnessMap);\n if (json.metalnessMap !== undefined) material.metalnessMap = getTexture(json.metalnessMap);\n if (json.emissiveMap !== undefined) material.emissiveMap = getTexture(json.emissiveMap);\n if (json.emissiveIntensity !== undefined) material.emissiveIntensity = json.emissiveIntensity;\n if (json.specularMap !== undefined) material.specularMap = getTexture(json.specularMap);\n if (json.envMap !== undefined) material.envMap = getTexture(json.envMap);\n if (json.envMapIntensity !== undefined) material.envMapIntensity = json.envMapIntensity;\n if (json.reflectivity !== undefined) material.reflectivity = json.reflectivity;\n if (json.refractionRatio !== undefined) material.refractionRatio = json.refractionRatio;\n if (json.lightMap !== undefined) material.lightMap = getTexture(json.lightMap);\n if (json.lightMapIntensity !== undefined) material.lightMapIntensity = json.lightMapIntensity;\n if (json.aoMap !== undefined) material.aoMap = getTexture(json.aoMap);\n if (json.aoMapIntensity !== undefined) material.aoMapIntensity = json.aoMapIntensity;\n if (json.gradientMap !== undefined) material.gradientMap = getTexture(json.gradientMap);\n if (json.clearcoatNormalMap !== undefined) material.clearcoatNormalMap = getTexture(json.clearcoatNormalMap);\n if (json.clearcoatNormalScale !== undefined) material.clearcoatNormalScale = new Vector2().fromArray(json.clearcoatNormalScale);\n return material;\n },\n setTextures: function setTextures(value) {\n this.textures = value;\n return this;\n }\n});\n/**\n * @author Don McCurdy / https://www.donmccurdy.com\n */\n\nvar LoaderUtils = {\n decodeText: function decodeText(array) {\n if (typeof TextDecoder !== 'undefined') {\n return new TextDecoder().decode(array);\n } // Avoid the String.fromCharCode.apply(null, array) shortcut, which\n // throws a \"maximum call stack size exceeded\" error for large arrays.\n\n\n var s = '';\n\n for (var i = 0, il = array.length; i < il; i++) {\n // Implicitly assumes little-endian.\n s += String.fromCharCode(array[i]);\n }\n\n try {\n // merges multi-byte utf-8 characters.\n return decodeURIComponent(escape(s));\n } catch (e) {\n // see #16358\n return s;\n }\n },\n extractUrlBase: function extractUrlBase(url) {\n var index = url.lastIndexOf('/');\n if (index === -1) return './';\n return url.substr(0, index + 1);\n }\n};\n/**\n * @author benaadams / https://twitter.com/ben_a_adams\n */\n\nfunction InstancedBufferGeometry() {\n BufferGeometry.call(this);\n this.type = 'InstancedBufferGeometry';\n this.maxInstancedCount = undefined;\n}\n\nInstancedBufferGeometry.prototype = Object.assign(Object.create(BufferGeometry.prototype), {\n constructor: InstancedBufferGeometry,\n isInstancedBufferGeometry: true,\n copy: function copy(source) {\n BufferGeometry.prototype.copy.call(this, source);\n this.maxInstancedCount = source.maxInstancedCount;\n return this;\n },\n clone: function clone() {\n return new this.constructor().copy(this);\n },\n toJSON: function toJSON() {\n var data = BufferGeometry.prototype.toJSON.call(this);\n data.maxInstancedCount = this.maxInstancedCount;\n data.isInstancedBufferGeometry = true;\n return data;\n }\n});\n/**\n * @author benaadams / https://twitter.com/ben_a_adams\n */\n\nfunction InstancedBufferAttribute(array, itemSize, normalized, meshPerAttribute) {\n if (typeof normalized === 'number') {\n meshPerAttribute = normalized;\n normalized = false;\n console.error('THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.');\n }\n\n BufferAttribute.call(this, array, itemSize, normalized);\n this.meshPerAttribute = meshPerAttribute || 1;\n}\n\nInstancedBufferAttribute.prototype = Object.assign(Object.create(BufferAttribute.prototype), {\n constructor: InstancedBufferAttribute,\n isInstancedBufferAttribute: true,\n copy: function copy(source) {\n BufferAttribute.prototype.copy.call(this, source);\n this.meshPerAttribute = source.meshPerAttribute;\n return this;\n },\n toJSON: function toJSON() {\n var data = BufferAttribute.prototype.toJSON.call(this);\n data.meshPerAttribute = this.meshPerAttribute;\n data.isInstancedBufferAttribute = true;\n return data;\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction BufferGeometryLoader(manager) {\n Loader.call(this, manager);\n}\n\nBufferGeometryLoader.prototype = Object.assign(Object.create(Loader.prototype), {\n constructor: BufferGeometryLoader,\n load: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var loader = new FileLoader(scope.manager);\n loader.setPath(scope.path);\n loader.load(url, function (text) {\n onLoad(scope.parse(JSON.parse(text)));\n }, onProgress, onError);\n },\n parse: function parse(json) {\n var geometry = json.isInstancedBufferGeometry ? new InstancedBufferGeometry() : new BufferGeometry();\n var index = json.data.index;\n\n if (index !== undefined) {\n var typedArray = new TYPED_ARRAYS[index.type](index.array);\n geometry.setIndex(new BufferAttribute(typedArray, 1));\n }\n\n var attributes = json.data.attributes;\n\n for (var key in attributes) {\n var attribute = attributes[key];\n var typedArray = new TYPED_ARRAYS[attribute.type](attribute.array);\n var bufferAttributeConstr = attribute.isInstancedBufferAttribute ? InstancedBufferAttribute : BufferAttribute;\n var bufferAttribute = new bufferAttributeConstr(typedArray, attribute.itemSize, attribute.normalized);\n if (attribute.name !== undefined) bufferAttribute.name = attribute.name;\n geometry.setAttribute(key, bufferAttribute);\n }\n\n var morphAttributes = json.data.morphAttributes;\n\n if (morphAttributes) {\n for (var key in morphAttributes) {\n var attributeArray = morphAttributes[key];\n var array = [];\n\n for (var i = 0, il = attributeArray.length; i < il; i++) {\n var attribute = attributeArray[i];\n var typedArray = new TYPED_ARRAYS[attribute.type](attribute.array);\n var bufferAttribute = new BufferAttribute(typedArray, attribute.itemSize, attribute.normalized);\n if (attribute.name !== undefined) bufferAttribute.name = attribute.name;\n array.push(bufferAttribute);\n }\n\n geometry.morphAttributes[key] = array;\n }\n }\n\n var groups = json.data.groups || json.data.drawcalls || json.data.offsets;\n\n if (groups !== undefined) {\n for (var i = 0, n = groups.length; i !== n; ++i) {\n var group = groups[i];\n geometry.addGroup(group.start, group.count, group.materialIndex);\n }\n }\n\n var boundingSphere = json.data.boundingSphere;\n\n if (boundingSphere !== undefined) {\n var center = new Vector3();\n\n if (boundingSphere.center !== undefined) {\n center.fromArray(boundingSphere.center);\n }\n\n geometry.boundingSphere = new Sphere(center, boundingSphere.radius);\n }\n\n if (json.name) geometry.name = json.name;\n if (json.userData) geometry.userData = json.userData;\n return geometry;\n }\n});\nvar TYPED_ARRAYS = {\n Int8Array: Int8Array,\n Uint8Array: Uint8Array,\n // Workaround for IE11 pre KB2929437. See #11440\n Uint8ClampedArray: typeof Uint8ClampedArray !== 'undefined' ? Uint8ClampedArray : Uint8Array,\n Int16Array: Int16Array,\n Uint16Array: Uint16Array,\n Int32Array: Int32Array,\n Uint32Array: Uint32Array,\n Float32Array: Float32Array,\n Float64Array: Float64Array\n};\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction ObjectLoader(manager) {\n Loader.call(this, manager);\n}\n\nObjectLoader.prototype = Object.assign(Object.create(Loader.prototype), {\n constructor: ObjectLoader,\n load: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var path = this.path === '' ? LoaderUtils.extractUrlBase(url) : this.path;\n this.resourcePath = this.resourcePath || path;\n var loader = new FileLoader(scope.manager);\n loader.setPath(this.path);\n loader.load(url, function (text) {\n var json = null;\n\n try {\n json = JSON.parse(text);\n } catch (error) {\n if (onError !== undefined) onError(error);\n console.error('THREE:ObjectLoader: Can\\'t parse ' + url + '.', error.message);\n return;\n }\n\n var metadata = json.metadata;\n\n if (metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry') {\n console.error('THREE.ObjectLoader: Can\\'t load ' + url);\n return;\n }\n\n scope.parse(json, onLoad);\n }, onProgress, onError);\n },\n parse: function parse(json, onLoad) {\n var shapes = this.parseShape(json.shapes);\n var geometries = this.parseGeometries(json.geometries, shapes);\n var images = this.parseImages(json.images, function () {\n if (onLoad !== undefined) onLoad(object);\n });\n var textures = this.parseTextures(json.textures, images);\n var materials = this.parseMaterials(json.materials, textures);\n var object = this.parseObject(json.object, geometries, materials);\n\n if (json.animations) {\n object.animations = this.parseAnimations(json.animations);\n }\n\n if (json.images === undefined || json.images.length === 0) {\n if (onLoad !== undefined) onLoad(object);\n }\n\n return object;\n },\n parseShape: function parseShape(json) {\n var shapes = {};\n\n if (json !== undefined) {\n for (var i = 0, l = json.length; i < l; i++) {\n var shape = new Shape().fromJSON(json[i]);\n shapes[shape.uuid] = shape;\n }\n }\n\n return shapes;\n },\n parseGeometries: function parseGeometries(json, shapes) {\n var geometries = {};\n\n if (json !== undefined) {\n var bufferGeometryLoader = new BufferGeometryLoader();\n\n for (var i = 0, l = json.length; i < l; i++) {\n var geometry;\n var data = json[i];\n\n switch (data.type) {\n case 'PlaneGeometry':\n case 'PlaneBufferGeometry':\n geometry = new Geometries[data.type](data.width, data.height, data.widthSegments, data.heightSegments);\n break;\n\n case 'BoxGeometry':\n case 'BoxBufferGeometry':\n case 'CubeGeometry':\n // backwards compatible\n geometry = new Geometries[data.type](data.width, data.height, data.depth, data.widthSegments, data.heightSegments, data.depthSegments);\n break;\n\n case 'CircleGeometry':\n case 'CircleBufferGeometry':\n geometry = new Geometries[data.type](data.radius, data.segments, data.thetaStart, data.thetaLength);\n break;\n\n case 'CylinderGeometry':\n case 'CylinderBufferGeometry':\n geometry = new Geometries[data.type](data.radiusTop, data.radiusBottom, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength);\n break;\n\n case 'ConeGeometry':\n case 'ConeBufferGeometry':\n geometry = new Geometries[data.type](data.radius, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength);\n break;\n\n case 'SphereGeometry':\n case 'SphereBufferGeometry':\n geometry = new Geometries[data.type](data.radius, data.widthSegments, data.heightSegments, data.phiStart, data.phiLength, data.thetaStart, data.thetaLength);\n break;\n\n case 'DodecahedronGeometry':\n case 'DodecahedronBufferGeometry':\n case 'IcosahedronGeometry':\n case 'IcosahedronBufferGeometry':\n case 'OctahedronGeometry':\n case 'OctahedronBufferGeometry':\n case 'TetrahedronGeometry':\n case 'TetrahedronBufferGeometry':\n geometry = new Geometries[data.type](data.radius, data.detail);\n break;\n\n case 'RingGeometry':\n case 'RingBufferGeometry':\n geometry = new Geometries[data.type](data.innerRadius, data.outerRadius, data.thetaSegments, data.phiSegments, data.thetaStart, data.thetaLength);\n break;\n\n case 'TorusGeometry':\n case 'TorusBufferGeometry':\n geometry = new Geometries[data.type](data.radius, data.tube, data.radialSegments, data.tubularSegments, data.arc);\n break;\n\n case 'TorusKnotGeometry':\n case 'TorusKnotBufferGeometry':\n geometry = new Geometries[data.type](data.radius, data.tube, data.tubularSegments, data.radialSegments, data.p, data.q);\n break;\n\n case 'TubeGeometry':\n case 'TubeBufferGeometry':\n // This only works for built-in curves (e.g. CatmullRomCurve3).\n // User defined curves or instances of CurvePath will not be deserialized.\n geometry = new Geometries[data.type](new Curves[data.path.type]().fromJSON(data.path), data.tubularSegments, data.radius, data.radialSegments, data.closed);\n break;\n\n case 'LatheGeometry':\n case 'LatheBufferGeometry':\n geometry = new Geometries[data.type](data.points, data.segments, data.phiStart, data.phiLength);\n break;\n\n case 'PolyhedronGeometry':\n case 'PolyhedronBufferGeometry':\n geometry = new Geometries[data.type](data.vertices, data.indices, data.radius, data.details);\n break;\n\n case 'ShapeGeometry':\n case 'ShapeBufferGeometry':\n var geometryShapes = [];\n\n for (var j = 0, jl = data.shapes.length; j < jl; j++) {\n var shape = shapes[data.shapes[j]];\n geometryShapes.push(shape);\n }\n\n geometry = new Geometries[data.type](geometryShapes, data.curveSegments);\n break;\n\n case 'ExtrudeGeometry':\n case 'ExtrudeBufferGeometry':\n var geometryShapes = [];\n\n for (var j = 0, jl = data.shapes.length; j < jl; j++) {\n var shape = shapes[data.shapes[j]];\n geometryShapes.push(shape);\n }\n\n var extrudePath = data.options.extrudePath;\n\n if (extrudePath !== undefined) {\n data.options.extrudePath = new Curves[extrudePath.type]().fromJSON(extrudePath);\n }\n\n geometry = new Geometries[data.type](geometryShapes, data.options);\n break;\n\n case 'BufferGeometry':\n case 'InstancedBufferGeometry':\n geometry = bufferGeometryLoader.parse(data);\n break;\n\n case 'Geometry':\n if ('THREE' in window && 'LegacyJSONLoader' in THREE) {\n var geometryLoader = new THREE.LegacyJSONLoader();\n geometry = geometryLoader.parse(data, this.resourcePath).geometry;\n } else {\n console.error('THREE.ObjectLoader: You have to import LegacyJSONLoader in order load geometry data of type \"Geometry\".');\n }\n\n break;\n\n default:\n console.warn('THREE.ObjectLoader: Unsupported geometry type \"' + data.type + '\"');\n continue;\n }\n\n geometry.uuid = data.uuid;\n if (data.name !== undefined) geometry.name = data.name;\n if (geometry.isBufferGeometry === true && data.userData !== undefined) geometry.userData = data.userData;\n geometries[data.uuid] = geometry;\n }\n }\n\n return geometries;\n },\n parseMaterials: function parseMaterials(json, textures) {\n var cache = {}; // MultiMaterial\n\n var materials = {};\n\n if (json !== undefined) {\n var loader = new MaterialLoader();\n loader.setTextures(textures);\n\n for (var i = 0, l = json.length; i < l; i++) {\n var data = json[i];\n\n if (data.type === 'MultiMaterial') {\n // Deprecated\n var array = [];\n\n for (var j = 0; j < data.materials.length; j++) {\n var material = data.materials[j];\n\n if (cache[material.uuid] === undefined) {\n cache[material.uuid] = loader.parse(material);\n }\n\n array.push(cache[material.uuid]);\n }\n\n materials[data.uuid] = array;\n } else {\n if (cache[data.uuid] === undefined) {\n cache[data.uuid] = loader.parse(data);\n }\n\n materials[data.uuid] = cache[data.uuid];\n }\n }\n }\n\n return materials;\n },\n parseAnimations: function parseAnimations(json) {\n var animations = [];\n\n for (var i = 0; i < json.length; i++) {\n var data = json[i];\n var clip = AnimationClip.parse(data);\n if (data.uuid !== undefined) clip.uuid = data.uuid;\n animations.push(clip);\n }\n\n return animations;\n },\n parseImages: function parseImages(json, onLoad) {\n var scope = this;\n var images = {};\n\n function loadImage(url) {\n scope.manager.itemStart(url);\n return loader.load(url, function () {\n scope.manager.itemEnd(url);\n }, undefined, function () {\n scope.manager.itemError(url);\n scope.manager.itemEnd(url);\n });\n }\n\n if (json !== undefined && json.length > 0) {\n var manager = new LoadingManager(onLoad);\n var loader = new ImageLoader(manager);\n loader.setCrossOrigin(this.crossOrigin);\n\n for (var i = 0, il = json.length; i < il; i++) {\n var image = json[i];\n var url = image.url;\n\n if (Array.isArray(url)) {\n // load array of images e.g CubeTexture\n images[image.uuid] = [];\n\n for (var j = 0, jl = url.length; j < jl; j++) {\n var currentUrl = url[j];\n var path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(currentUrl) ? currentUrl : scope.resourcePath + currentUrl;\n images[image.uuid].push(loadImage(path));\n }\n } else {\n // load single image\n var path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(image.url) ? image.url : scope.resourcePath + image.url;\n images[image.uuid] = loadImage(path);\n }\n }\n }\n\n return images;\n },\n parseTextures: function parseTextures(json, images) {\n function parseConstant(value, type) {\n if (typeof value === 'number') return value;\n console.warn('THREE.ObjectLoader.parseTexture: Constant should be in numeric form.', value);\n return type[value];\n }\n\n var textures = {};\n\n if (json !== undefined) {\n for (var i = 0, l = json.length; i < l; i++) {\n var data = json[i];\n\n if (data.image === undefined) {\n console.warn('THREE.ObjectLoader: No \"image\" specified for', data.uuid);\n }\n\n if (images[data.image] === undefined) {\n console.warn('THREE.ObjectLoader: Undefined image', data.image);\n }\n\n var texture;\n\n if (Array.isArray(images[data.image])) {\n texture = new CubeTexture(images[data.image]);\n } else {\n texture = new Texture(images[data.image]);\n }\n\n texture.needsUpdate = true;\n texture.uuid = data.uuid;\n if (data.name !== undefined) texture.name = data.name;\n if (data.mapping !== undefined) texture.mapping = parseConstant(data.mapping, TEXTURE_MAPPING);\n if (data.offset !== undefined) texture.offset.fromArray(data.offset);\n if (data.repeat !== undefined) texture.repeat.fromArray(data.repeat);\n if (data.center !== undefined) texture.center.fromArray(data.center);\n if (data.rotation !== undefined) texture.rotation = data.rotation;\n\n if (data.wrap !== undefined) {\n texture.wrapS = parseConstant(data.wrap[0], TEXTURE_WRAPPING);\n texture.wrapT = parseConstant(data.wrap[1], TEXTURE_WRAPPING);\n }\n\n if (data.format !== undefined) texture.format = data.format;\n if (data.type !== undefined) texture.type = data.type;\n if (data.encoding !== undefined) texture.encoding = data.encoding;\n if (data.minFilter !== undefined) texture.minFilter = parseConstant(data.minFilter, TEXTURE_FILTER);\n if (data.magFilter !== undefined) texture.magFilter = parseConstant(data.magFilter, TEXTURE_FILTER);\n if (data.anisotropy !== undefined) texture.anisotropy = data.anisotropy;\n if (data.flipY !== undefined) texture.flipY = data.flipY;\n if (data.premultiplyAlpha !== undefined) texture.premultiplyAlpha = data.premultiplyAlpha;\n if (data.unpackAlignment !== undefined) texture.unpackAlignment = data.unpackAlignment;\n textures[data.uuid] = texture;\n }\n }\n\n return textures;\n },\n parseObject: function parseObject(data, geometries, materials) {\n var object;\n\n function getGeometry(name) {\n if (geometries[name] === undefined) {\n console.warn('THREE.ObjectLoader: Undefined geometry', name);\n }\n\n return geometries[name];\n }\n\n function getMaterial(name) {\n if (name === undefined) return undefined;\n\n if (Array.isArray(name)) {\n var array = [];\n\n for (var i = 0, l = name.length; i < l; i++) {\n var uuid = name[i];\n\n if (materials[uuid] === undefined) {\n console.warn('THREE.ObjectLoader: Undefined material', uuid);\n }\n\n array.push(materials[uuid]);\n }\n\n return array;\n }\n\n if (materials[name] === undefined) {\n console.warn('THREE.ObjectLoader: Undefined material', name);\n }\n\n return materials[name];\n }\n\n switch (data.type) {\n case 'Scene':\n object = new Scene();\n\n if (data.background !== undefined) {\n if (Number.isInteger(data.background)) {\n object.background = new Color(data.background);\n }\n }\n\n if (data.fog !== undefined) {\n if (data.fog.type === 'Fog') {\n object.fog = new Fog(data.fog.color, data.fog.near, data.fog.far);\n } else if (data.fog.type === 'FogExp2') {\n object.fog = new FogExp2(data.fog.color, data.fog.density);\n }\n }\n\n break;\n\n case 'PerspectiveCamera':\n object = new PerspectiveCamera(data.fov, data.aspect, data.near, data.far);\n if (data.focus !== undefined) object.focus = data.focus;\n if (data.zoom !== undefined) object.zoom = data.zoom;\n if (data.filmGauge !== undefined) object.filmGauge = data.filmGauge;\n if (data.filmOffset !== undefined) object.filmOffset = data.filmOffset;\n if (data.view !== undefined) object.view = Object.assign({}, data.view);\n break;\n\n case 'OrthographicCamera':\n object = new OrthographicCamera(data.left, data.right, data.top, data.bottom, data.near, data.far);\n if (data.zoom !== undefined) object.zoom = data.zoom;\n if (data.view !== undefined) object.view = Object.assign({}, data.view);\n break;\n\n case 'AmbientLight':\n object = new AmbientLight(data.color, data.intensity);\n break;\n\n case 'DirectionalLight':\n object = new DirectionalLight(data.color, data.intensity);\n break;\n\n case 'PointLight':\n object = new PointLight(data.color, data.intensity, data.distance, data.decay);\n break;\n\n case 'RectAreaLight':\n object = new RectAreaLight(data.color, data.intensity, data.width, data.height);\n break;\n\n case 'SpotLight':\n object = new SpotLight(data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay);\n break;\n\n case 'HemisphereLight':\n object = new HemisphereLight(data.color, data.groundColor, data.intensity);\n break;\n\n case 'SkinnedMesh':\n console.warn('THREE.ObjectLoader.parseObject() does not support SkinnedMesh yet.');\n\n case 'Mesh':\n var geometry = getGeometry(data.geometry);\n var material = getMaterial(data.material);\n\n if (geometry.bones && geometry.bones.length > 0) {\n object = new SkinnedMesh(geometry, material);\n } else {\n object = new Mesh(geometry, material);\n }\n\n break;\n\n case 'InstancedMesh':\n var geometry = getGeometry(data.geometry);\n var material = getMaterial(data.material);\n var count = data.count;\n var instanceMatrix = data.instanceMatrix;\n object = new InstancedMesh(geometry, material, count);\n object.instanceMatrix = new BufferAttribute(new Float32Array(instanceMatrix.array), 16);\n break;\n\n case 'LOD':\n object = new LOD();\n break;\n\n case 'Line':\n object = new Line(getGeometry(data.geometry), getMaterial(data.material), data.mode);\n break;\n\n case 'LineLoop':\n object = new LineLoop(getGeometry(data.geometry), getMaterial(data.material));\n break;\n\n case 'LineSegments':\n object = new LineSegments(getGeometry(data.geometry), getMaterial(data.material));\n break;\n\n case 'PointCloud':\n case 'Points':\n object = new Points(getGeometry(data.geometry), getMaterial(data.material));\n break;\n\n case 'Sprite':\n object = new Sprite(getMaterial(data.material));\n break;\n\n case 'Group':\n object = new Group();\n break;\n\n default:\n object = new Object3D();\n }\n\n object.uuid = data.uuid;\n if (data.name !== undefined) object.name = data.name;\n\n if (data.matrix !== undefined) {\n object.matrix.fromArray(data.matrix);\n if (data.matrixAutoUpdate !== undefined) object.matrixAutoUpdate = data.matrixAutoUpdate;\n if (object.matrixAutoUpdate) object.matrix.decompose(object.position, object.quaternion, object.scale);\n } else {\n if (data.position !== undefined) object.position.fromArray(data.position);\n if (data.rotation !== undefined) object.rotation.fromArray(data.rotation);\n if (data.quaternion !== undefined) object.quaternion.fromArray(data.quaternion);\n if (data.scale !== undefined) object.scale.fromArray(data.scale);\n }\n\n if (data.castShadow !== undefined) object.castShadow = data.castShadow;\n if (data.receiveShadow !== undefined) object.receiveShadow = data.receiveShadow;\n\n if (data.shadow) {\n if (data.shadow.bias !== undefined) object.shadow.bias = data.shadow.bias;\n if (data.shadow.radius !== undefined) object.shadow.radius = data.shadow.radius;\n if (data.shadow.mapSize !== undefined) object.shadow.mapSize.fromArray(data.shadow.mapSize);\n if (data.shadow.camera !== undefined) object.shadow.camera = this.parseObject(data.shadow.camera);\n }\n\n if (data.visible !== undefined) object.visible = data.visible;\n if (data.frustumCulled !== undefined) object.frustumCulled = data.frustumCulled;\n if (data.renderOrder !== undefined) object.renderOrder = data.renderOrder;\n if (data.userData !== undefined) object.userData = data.userData;\n if (data.layers !== undefined) object.layers.mask = data.layers;\n if (data.drawMode !== undefined) object.setDrawMode(data.drawMode);\n\n if (data.children !== undefined) {\n var children = data.children;\n\n for (var i = 0; i < children.length; i++) {\n object.add(this.parseObject(children[i], geometries, materials));\n }\n }\n\n if (data.type === 'LOD') {\n var levels = data.levels;\n\n for (var l = 0; l < levels.length; l++) {\n var level = levels[l];\n var child = object.getObjectByProperty('uuid', level.object);\n\n if (child !== undefined) {\n object.addLevel(child, level.distance);\n }\n }\n }\n\n return object;\n }\n});\nvar TEXTURE_MAPPING = {\n UVMapping: UVMapping,\n CubeReflectionMapping: CubeReflectionMapping,\n CubeRefractionMapping: CubeRefractionMapping,\n EquirectangularReflectionMapping: EquirectangularReflectionMapping,\n EquirectangularRefractionMapping: EquirectangularRefractionMapping,\n SphericalReflectionMapping: SphericalReflectionMapping,\n CubeUVReflectionMapping: CubeUVReflectionMapping,\n CubeUVRefractionMapping: CubeUVRefractionMapping\n};\nvar TEXTURE_WRAPPING = {\n RepeatWrapping: RepeatWrapping,\n ClampToEdgeWrapping: ClampToEdgeWrapping,\n MirroredRepeatWrapping: MirroredRepeatWrapping\n};\nvar TEXTURE_FILTER = {\n NearestFilter: NearestFilter,\n NearestMipmapNearestFilter: NearestMipmapNearestFilter,\n NearestMipmapLinearFilter: NearestMipmapLinearFilter,\n LinearFilter: LinearFilter,\n LinearMipmapNearestFilter: LinearMipmapNearestFilter,\n LinearMipmapLinearFilter: LinearMipmapLinearFilter\n};\n/**\n * @author thespite / http://clicktorelease.com/\n */\n\nfunction ImageBitmapLoader(manager) {\n if (typeof createImageBitmap === 'undefined') {\n console.warn('THREE.ImageBitmapLoader: createImageBitmap() not supported.');\n }\n\n if (typeof fetch === 'undefined') {\n console.warn('THREE.ImageBitmapLoader: fetch() not supported.');\n }\n\n Loader.call(this, manager);\n this.options = undefined;\n}\n\nImageBitmapLoader.prototype = Object.assign(Object.create(Loader.prototype), {\n constructor: ImageBitmapLoader,\n setOptions: function setOptions(options) {\n this.options = options;\n return this;\n },\n load: function load(url, onLoad, onProgress, onError) {\n if (url === undefined) url = '';\n if (this.path !== undefined) url = this.path + url;\n url = this.manager.resolveURL(url);\n var scope = this;\n var cached = Cache.get(url);\n\n if (cached !== undefined) {\n scope.manager.itemStart(url);\n setTimeout(function () {\n if (onLoad) onLoad(cached);\n scope.manager.itemEnd(url);\n }, 0);\n return cached;\n }\n\n fetch(url).then(function (res) {\n return res.blob();\n }).then(function (blob) {\n if (scope.options === undefined) {\n // Workaround for FireFox. It causes an error if you pass options.\n return createImageBitmap(blob);\n } else {\n return createImageBitmap(blob, scope.options);\n }\n }).then(function (imageBitmap) {\n Cache.add(url, imageBitmap);\n if (onLoad) onLoad(imageBitmap);\n scope.manager.itemEnd(url);\n }).catch(function (e) {\n if (onError) onError(e);\n scope.manager.itemError(url);\n scope.manager.itemEnd(url);\n });\n scope.manager.itemStart(url);\n }\n});\n/**\n * @author zz85 / http://www.lab4games.net/zz85/blog\n * minimal class for proxing functions to Path. Replaces old \"extractSubpaths()\"\n **/\n\nfunction ShapePath() {\n this.type = 'ShapePath';\n this.color = new Color();\n this.subPaths = [];\n this.currentPath = null;\n}\n\nObject.assign(ShapePath.prototype, {\n moveTo: function moveTo(x, y) {\n this.currentPath = new Path();\n this.subPaths.push(this.currentPath);\n this.currentPath.moveTo(x, y);\n return this;\n },\n lineTo: function lineTo(x, y) {\n this.currentPath.lineTo(x, y);\n return this;\n },\n quadraticCurveTo: function quadraticCurveTo(aCPx, aCPy, aX, aY) {\n this.currentPath.quadraticCurveTo(aCPx, aCPy, aX, aY);\n return this;\n },\n bezierCurveTo: function bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) {\n this.currentPath.bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY);\n return this;\n },\n splineThru: function splineThru(pts) {\n this.currentPath.splineThru(pts);\n return this;\n },\n toShapes: function toShapes(isCCW, noHoles) {\n function toShapesNoHoles(inSubpaths) {\n var shapes = [];\n\n for (var i = 0, l = inSubpaths.length; i < l; i++) {\n var tmpPath = inSubpaths[i];\n var tmpShape = new Shape();\n tmpShape.curves = tmpPath.curves;\n shapes.push(tmpShape);\n }\n\n return shapes;\n }\n\n function isPointInsidePolygon(inPt, inPolygon) {\n var polyLen = inPolygon.length; // inPt on polygon contour => immediate success or\n // toggling of inside/outside at every single! intersection point of an edge\n // with the horizontal line through inPt, left of inPt\n // not counting lowerY endpoints of edges and whole edges on that line\n\n var inside = false;\n\n for (var p = polyLen - 1, q = 0; q < polyLen; p = q++) {\n var edgeLowPt = inPolygon[p];\n var edgeHighPt = inPolygon[q];\n var edgeDx = edgeHighPt.x - edgeLowPt.x;\n var edgeDy = edgeHighPt.y - edgeLowPt.y;\n\n if (Math.abs(edgeDy) > Number.EPSILON) {\n // not parallel\n if (edgeDy < 0) {\n edgeLowPt = inPolygon[q];\n edgeDx = -edgeDx;\n edgeHighPt = inPolygon[p];\n edgeDy = -edgeDy;\n }\n\n if (inPt.y < edgeLowPt.y || inPt.y > edgeHighPt.y) continue;\n\n if (inPt.y === edgeLowPt.y) {\n if (inPt.x === edgeLowPt.x) return true; // inPt is on contour ?\n // continue;\t\t\t\t// no intersection or edgeLowPt => doesn't count !!!\n } else {\n var perpEdge = edgeDy * (inPt.x - edgeLowPt.x) - edgeDx * (inPt.y - edgeLowPt.y);\n if (perpEdge === 0) return true; // inPt is on contour ?\n\n if (perpEdge < 0) continue;\n inside = !inside; // true intersection left of inPt\n }\n } else {\n // parallel or collinear\n if (inPt.y !== edgeLowPt.y) continue; // parallel\n // edge lies on the same horizontal line as inPt\n\n if (edgeHighPt.x <= inPt.x && inPt.x <= edgeLowPt.x || edgeLowPt.x <= inPt.x && inPt.x <= edgeHighPt.x) return true; // inPt: Point on contour !\n // continue;\n }\n }\n\n return inside;\n }\n\n var isClockWise = ShapeUtils.isClockWise;\n var subPaths = this.subPaths;\n if (subPaths.length === 0) return [];\n if (noHoles === true) return toShapesNoHoles(subPaths);\n var solid,\n tmpPath,\n tmpShape,\n shapes = [];\n\n if (subPaths.length === 1) {\n tmpPath = subPaths[0];\n tmpShape = new Shape();\n tmpShape.curves = tmpPath.curves;\n shapes.push(tmpShape);\n return shapes;\n }\n\n var holesFirst = !isClockWise(subPaths[0].getPoints());\n holesFirst = isCCW ? !holesFirst : holesFirst; // console.log(\"Holes first\", holesFirst);\n\n var betterShapeHoles = [];\n var newShapes = [];\n var newShapeHoles = [];\n var mainIdx = 0;\n var tmpPoints;\n newShapes[mainIdx] = undefined;\n newShapeHoles[mainIdx] = [];\n\n for (var i = 0, l = subPaths.length; i < l; i++) {\n tmpPath = subPaths[i];\n tmpPoints = tmpPath.getPoints();\n solid = isClockWise(tmpPoints);\n solid = isCCW ? !solid : solid;\n\n if (solid) {\n if (!holesFirst && newShapes[mainIdx]) mainIdx++;\n newShapes[mainIdx] = {\n s: new Shape(),\n p: tmpPoints\n };\n newShapes[mainIdx].s.curves = tmpPath.curves;\n if (holesFirst) mainIdx++;\n newShapeHoles[mainIdx] = []; //console.log('cw', i);\n } else {\n newShapeHoles[mainIdx].push({\n h: tmpPath,\n p: tmpPoints[0]\n }); //console.log('ccw', i);\n }\n } // only Holes? -> probably all Shapes with wrong orientation\n\n\n if (!newShapes[0]) return toShapesNoHoles(subPaths);\n\n if (newShapes.length > 1) {\n var ambiguous = false;\n var toChange = [];\n\n for (var sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx++) {\n betterShapeHoles[sIdx] = [];\n }\n\n for (var sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx++) {\n var sho = newShapeHoles[sIdx];\n\n for (var hIdx = 0; hIdx < sho.length; hIdx++) {\n var ho = sho[hIdx];\n var hole_unassigned = true;\n\n for (var s2Idx = 0; s2Idx < newShapes.length; s2Idx++) {\n if (isPointInsidePolygon(ho.p, newShapes[s2Idx].p)) {\n if (sIdx !== s2Idx) toChange.push({\n froms: sIdx,\n tos: s2Idx,\n hole: hIdx\n });\n\n if (hole_unassigned) {\n hole_unassigned = false;\n betterShapeHoles[s2Idx].push(ho);\n } else {\n ambiguous = true;\n }\n }\n }\n\n if (hole_unassigned) {\n betterShapeHoles[sIdx].push(ho);\n }\n }\n } // console.log(\"ambiguous: \", ambiguous);\n\n\n if (toChange.length > 0) {\n // console.log(\"to change: \", toChange);\n if (!ambiguous) newShapeHoles = betterShapeHoles;\n }\n }\n\n var tmpHoles;\n\n for (var i = 0, il = newShapes.length; i < il; i++) {\n tmpShape = newShapes[i].s;\n shapes.push(tmpShape);\n tmpHoles = newShapeHoles[i];\n\n for (var j = 0, jl = tmpHoles.length; j < jl; j++) {\n tmpShape.holes.push(tmpHoles[j].h);\n }\n } //console.log(\"shape\", shapes);\n\n\n return shapes;\n }\n});\n/**\n * @author zz85 / http://www.lab4games.net/zz85/blog\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction Font(data) {\n this.type = 'Font';\n this.data = data;\n}\n\nObject.assign(Font.prototype, {\n isFont: true,\n generateShapes: function generateShapes(text, size) {\n if (size === undefined) size = 100;\n var shapes = [];\n var paths = createPaths(text, size, this.data);\n\n for (var p = 0, pl = paths.length; p < pl; p++) {\n Array.prototype.push.apply(shapes, paths[p].toShapes());\n }\n\n return shapes;\n }\n});\n\nfunction createPaths(text, size, data) {\n var chars = Array.from ? Array.from(text) : String(text).split(''); // see #13988\n\n var scale = size / data.resolution;\n var line_height = (data.boundingBox.yMax - data.boundingBox.yMin + data.underlineThickness) * scale;\n var paths = [];\n var offsetX = 0,\n offsetY = 0;\n\n for (var i = 0; i < chars.length; i++) {\n var char = chars[i];\n\n if (char === '\\n') {\n offsetX = 0;\n offsetY -= line_height;\n } else {\n var ret = createPath(char, scale, offsetX, offsetY, data);\n offsetX += ret.offsetX;\n paths.push(ret.path);\n }\n }\n\n return paths;\n}\n\nfunction createPath(char, scale, offsetX, offsetY, data) {\n var glyph = data.glyphs[char] || data.glyphs['?'];\n\n if (!glyph) {\n console.error('THREE.Font: character \"' + char + '\" does not exists in font family ' + data.familyName + '.');\n return;\n }\n\n var path = new ShapePath();\n var x, y, cpx, cpy, cpx1, cpy1, cpx2, cpy2;\n\n if (glyph.o) {\n var outline = glyph._cachedOutline || (glyph._cachedOutline = glyph.o.split(' '));\n\n for (var i = 0, l = outline.length; i < l;) {\n var action = outline[i++];\n\n switch (action) {\n case 'm':\n // moveTo\n x = outline[i++] * scale + offsetX;\n y = outline[i++] * scale + offsetY;\n path.moveTo(x, y);\n break;\n\n case 'l':\n // lineTo\n x = outline[i++] * scale + offsetX;\n y = outline[i++] * scale + offsetY;\n path.lineTo(x, y);\n break;\n\n case 'q':\n // quadraticCurveTo\n cpx = outline[i++] * scale + offsetX;\n cpy = outline[i++] * scale + offsetY;\n cpx1 = outline[i++] * scale + offsetX;\n cpy1 = outline[i++] * scale + offsetY;\n path.quadraticCurveTo(cpx1, cpy1, cpx, cpy);\n break;\n\n case 'b':\n // bezierCurveTo\n cpx = outline[i++] * scale + offsetX;\n cpy = outline[i++] * scale + offsetY;\n cpx1 = outline[i++] * scale + offsetX;\n cpy1 = outline[i++] * scale + offsetY;\n cpx2 = outline[i++] * scale + offsetX;\n cpy2 = outline[i++] * scale + offsetY;\n path.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, cpx, cpy);\n break;\n }\n }\n }\n\n return {\n offsetX: glyph.ha * scale,\n path: path\n };\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction FontLoader(manager) {\n Loader.call(this, manager);\n}\n\nFontLoader.prototype = Object.assign(Object.create(Loader.prototype), {\n constructor: FontLoader,\n load: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var loader = new FileLoader(this.manager);\n loader.setPath(this.path);\n loader.load(url, function (text) {\n var json;\n\n try {\n json = JSON.parse(text);\n } catch (e) {\n console.warn('THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead.');\n json = JSON.parse(text.substring(65, text.length - 2));\n }\n\n var font = scope.parse(json);\n if (onLoad) onLoad(font);\n }, onProgress, onError);\n },\n parse: function parse(json) {\n return new Font(json);\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nvar _context;\n\nvar AudioContext = {\n getContext: function getContext() {\n if (_context === undefined) {\n _context = new (window.AudioContext || window.webkitAudioContext)();\n }\n\n return _context;\n },\n setContext: function setContext(value) {\n _context = value;\n }\n};\n/**\n * @author Reece Aaron Lecrivain / http://reecenotes.com/\n */\n\nfunction AudioLoader(manager) {\n Loader.call(this, manager);\n}\n\nAudioLoader.prototype = Object.assign(Object.create(Loader.prototype), {\n constructor: AudioLoader,\n load: function load(url, onLoad, onProgress, onError) {\n var loader = new FileLoader(this.manager);\n loader.setResponseType('arraybuffer');\n loader.setPath(this.path);\n loader.load(url, function (buffer) {\n // Create a copy of the buffer. The `decodeAudioData` method\n // detaches the buffer when complete, preventing reuse.\n var bufferCopy = buffer.slice(0);\n var context = AudioContext.getContext();\n context.decodeAudioData(bufferCopy, function (audioBuffer) {\n onLoad(audioBuffer);\n });\n }, onProgress, onError);\n }\n});\n/**\n * @author bhouston / http://clara.io\n * @author WestLangley / http://github.com/WestLangley\n *\n * Primary reference:\n * https://graphics.stanford.edu/papers/envmap/envmap.pdf\n *\n * Secondary reference:\n * https://www.ppsloan.org/publications/StupidSH36.pdf\n */\n// 3-band SH defined by 9 coefficients\n\nfunction SphericalHarmonics3() {\n this.coefficients = [];\n\n for (var i = 0; i < 9; i++) {\n this.coefficients.push(new Vector3());\n }\n}\n\nObject.assign(SphericalHarmonics3.prototype, {\n isSphericalHarmonics3: true,\n set: function set(coefficients) {\n for (var i = 0; i < 9; i++) {\n this.coefficients[i].copy(coefficients[i]);\n }\n\n return this;\n },\n zero: function zero() {\n for (var i = 0; i < 9; i++) {\n this.coefficients[i].set(0, 0, 0);\n }\n\n return this;\n },\n // get the radiance in the direction of the normal\n // target is a Vector3\n getAt: function getAt(normal, target) {\n // normal is assumed to be unit length\n var x = normal.x,\n y = normal.y,\n z = normal.z;\n var coeff = this.coefficients; // band 0\n\n target.copy(coeff[0]).multiplyScalar(0.282095); // band 1\n\n target.addScale(coeff[1], 0.488603 * y);\n target.addScale(coeff[2], 0.488603 * z);\n target.addScale(coeff[3], 0.488603 * x); // band 2\n\n target.addScale(coeff[4], 1.092548 * (x * y));\n target.addScale(coeff[5], 1.092548 * (y * z));\n target.addScale(coeff[6], 0.315392 * (3.0 * z * z - 1.0));\n target.addScale(coeff[7], 1.092548 * (x * z));\n target.addScale(coeff[8], 0.546274 * (x * x - y * y));\n return target;\n },\n // get the irradiance (radiance convolved with cosine lobe) in the direction of the normal\n // target is a Vector3\n // https://graphics.stanford.edu/papers/envmap/envmap.pdf\n getIrradianceAt: function getIrradianceAt(normal, target) {\n // normal is assumed to be unit length\n var x = normal.x,\n y = normal.y,\n z = normal.z;\n var coeff = this.coefficients; // band 0\n\n target.copy(coeff[0]).multiplyScalar(0.886227); // π * 0.282095\n // band 1\n\n target.addScale(coeff[1], 2.0 * 0.511664 * y); // ( 2 * π / 3 ) * 0.488603\n\n target.addScale(coeff[2], 2.0 * 0.511664 * z);\n target.addScale(coeff[3], 2.0 * 0.511664 * x); // band 2\n\n target.addScale(coeff[4], 2.0 * 0.429043 * x * y); // ( π / 4 ) * 1.092548\n\n target.addScale(coeff[5], 2.0 * 0.429043 * y * z);\n target.addScale(coeff[6], 0.743125 * z * z - 0.247708); // ( π / 4 ) * 0.315392 * 3\n\n target.addScale(coeff[7], 2.0 * 0.429043 * x * z);\n target.addScale(coeff[8], 0.429043 * (x * x - y * y)); // ( π / 4 ) * 0.546274\n\n return target;\n },\n add: function add(sh) {\n for (var i = 0; i < 9; i++) {\n this.coefficients[i].add(sh.coefficients[i]);\n }\n\n return this;\n },\n scale: function scale(s) {\n for (var i = 0; i < 9; i++) {\n this.coefficients[i].multiplyScalar(s);\n }\n\n return this;\n },\n lerp: function lerp(sh, alpha) {\n for (var i = 0; i < 9; i++) {\n this.coefficients[i].lerp(sh.coefficients[i], alpha);\n }\n\n return this;\n },\n equals: function equals(sh) {\n for (var i = 0; i < 9; i++) {\n if (!this.coefficients[i].equals(sh.coefficients[i])) {\n return false;\n }\n }\n\n return true;\n },\n copy: function copy(sh) {\n return this.set(sh.coefficients);\n },\n clone: function clone() {\n return new this.constructor().copy(this);\n },\n fromArray: function fromArray(array, offset) {\n if (offset === undefined) offset = 0;\n var coefficients = this.coefficients;\n\n for (var i = 0; i < 9; i++) {\n coefficients[i].fromArray(array, offset + i * 3);\n }\n\n return this;\n },\n toArray: function toArray(array, offset) {\n if (array === undefined) array = [];\n if (offset === undefined) offset = 0;\n var coefficients = this.coefficients;\n\n for (var i = 0; i < 9; i++) {\n coefficients[i].toArray(array, offset + i * 3);\n }\n\n return array;\n }\n});\nObject.assign(SphericalHarmonics3, {\n // evaluate the basis functions\n // shBasis is an Array[ 9 ]\n getBasisAt: function getBasisAt(normal, shBasis) {\n // normal is assumed to be unit length\n var x = normal.x,\n y = normal.y,\n z = normal.z; // band 0\n\n shBasis[0] = 0.282095; // band 1\n\n shBasis[1] = 0.488603 * y;\n shBasis[2] = 0.488603 * z;\n shBasis[3] = 0.488603 * x; // band 2\n\n shBasis[4] = 1.092548 * x * y;\n shBasis[5] = 1.092548 * y * z;\n shBasis[6] = 0.315392 * (3 * z * z - 1);\n shBasis[7] = 1.092548 * x * z;\n shBasis[8] = 0.546274 * (x * x - y * y);\n }\n});\n/**\n * @author WestLangley / http://github.com/WestLangley\n *\n * A LightProbe is a source of indirect-diffuse light\n */\n\nfunction LightProbe(sh, intensity) {\n Light.call(this, undefined, intensity);\n this.sh = sh !== undefined ? sh : new SphericalHarmonics3();\n}\n\nLightProbe.prototype = Object.assign(Object.create(Light.prototype), {\n constructor: LightProbe,\n isLightProbe: true,\n copy: function copy(source) {\n Light.prototype.copy.call(this, source);\n this.sh.copy(source.sh);\n this.intensity = source.intensity;\n return this;\n },\n toJSON: function toJSON(meta) {\n var data = Light.prototype.toJSON.call(this, meta); // data.sh = this.sh.toArray(); // todo\n\n return data;\n }\n});\n/**\n * @author WestLangley / http://github.com/WestLangley\n */\n\nfunction HemisphereLightProbe(skyColor, groundColor, intensity) {\n LightProbe.call(this, undefined, intensity);\n var color1 = new Color().set(skyColor);\n var color2 = new Color().set(groundColor);\n var sky = new Vector3(color1.r, color1.g, color1.b);\n var ground = new Vector3(color2.r, color2.g, color2.b); // without extra factor of PI in the shader, should = 1 / Math.sqrt( Math.PI );\n\n var c0 = Math.sqrt(Math.PI);\n var c1 = c0 * Math.sqrt(0.75);\n this.sh.coefficients[0].copy(sky).add(ground).multiplyScalar(c0);\n this.sh.coefficients[1].copy(sky).sub(ground).multiplyScalar(c1);\n}\n\nHemisphereLightProbe.prototype = Object.assign(Object.create(LightProbe.prototype), {\n constructor: HemisphereLightProbe,\n isHemisphereLightProbe: true,\n copy: function copy(source) {\n // modifying colors not currently supported\n LightProbe.prototype.copy.call(this, source);\n return this;\n },\n toJSON: function toJSON(meta) {\n var data = LightProbe.prototype.toJSON.call(this, meta); // data.sh = this.sh.toArray(); // todo\n\n return data;\n }\n});\n/**\n * @author WestLangley / http://github.com/WestLangley\n */\n\nfunction AmbientLightProbe(color, intensity) {\n LightProbe.call(this, undefined, intensity);\n var color1 = new Color().set(color); // without extra factor of PI in the shader, would be 2 / Math.sqrt( Math.PI );\n\n this.sh.coefficients[0].set(color1.r, color1.g, color1.b).multiplyScalar(2 * Math.sqrt(Math.PI));\n}\n\nAmbientLightProbe.prototype = Object.assign(Object.create(LightProbe.prototype), {\n constructor: AmbientLightProbe,\n isAmbientLightProbe: true,\n copy: function copy(source) {\n // modifying color not currently supported\n LightProbe.prototype.copy.call(this, source);\n return this;\n },\n toJSON: function toJSON(meta) {\n var data = LightProbe.prototype.toJSON.call(this, meta); // data.sh = this.sh.toArray(); // todo\n\n return data;\n }\n});\n\nvar _eyeRight = new Matrix4();\n\nvar _eyeLeft = new Matrix4();\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction StereoCamera() {\n this.type = 'StereoCamera';\n this.aspect = 1;\n this.eyeSep = 0.064;\n this.cameraL = new PerspectiveCamera();\n this.cameraL.layers.enable(1);\n this.cameraL.matrixAutoUpdate = false;\n this.cameraR = new PerspectiveCamera();\n this.cameraR.layers.enable(2);\n this.cameraR.matrixAutoUpdate = false;\n this._cache = {\n focus: null,\n fov: null,\n aspect: null,\n near: null,\n far: null,\n zoom: null,\n eyeSep: null\n };\n}\n\nObject.assign(StereoCamera.prototype, {\n update: function update(camera) {\n var cache = this._cache;\n var needsUpdate = cache.focus !== camera.focus || cache.fov !== camera.fov || cache.aspect !== camera.aspect * this.aspect || cache.near !== camera.near || cache.far !== camera.far || cache.zoom !== camera.zoom || cache.eyeSep !== this.eyeSep;\n\n if (needsUpdate) {\n cache.focus = camera.focus;\n cache.fov = camera.fov;\n cache.aspect = camera.aspect * this.aspect;\n cache.near = camera.near;\n cache.far = camera.far;\n cache.zoom = camera.zoom;\n cache.eyeSep = this.eyeSep; // Off-axis stereoscopic effect based on\n // http://paulbourke.net/stereographics/stereorender/\n\n var projectionMatrix = camera.projectionMatrix.clone();\n var eyeSepHalf = cache.eyeSep / 2;\n var eyeSepOnProjection = eyeSepHalf * cache.near / cache.focus;\n var ymax = cache.near * Math.tan(_Math.DEG2RAD * cache.fov * 0.5) / cache.zoom;\n var xmin, xmax; // translate xOffset\n\n _eyeLeft.elements[12] = -eyeSepHalf;\n _eyeRight.elements[12] = eyeSepHalf; // for left eye\n\n xmin = -ymax * cache.aspect + eyeSepOnProjection;\n xmax = ymax * cache.aspect + eyeSepOnProjection;\n projectionMatrix.elements[0] = 2 * cache.near / (xmax - xmin);\n projectionMatrix.elements[8] = (xmax + xmin) / (xmax - xmin);\n this.cameraL.projectionMatrix.copy(projectionMatrix); // for right eye\n\n xmin = -ymax * cache.aspect - eyeSepOnProjection;\n xmax = ymax * cache.aspect - eyeSepOnProjection;\n projectionMatrix.elements[0] = 2 * cache.near / (xmax - xmin);\n projectionMatrix.elements[8] = (xmax + xmin) / (xmax - xmin);\n this.cameraR.projectionMatrix.copy(projectionMatrix);\n }\n\n this.cameraL.matrixWorld.copy(camera.matrixWorld).multiply(_eyeLeft);\n this.cameraR.matrixWorld.copy(camera.matrixWorld).multiply(_eyeRight);\n }\n});\n/**\n * @author alteredq / http://alteredqualia.com/\n */\n\nfunction Clock(autoStart) {\n this.autoStart = autoStart !== undefined ? autoStart : true;\n this.startTime = 0;\n this.oldTime = 0;\n this.elapsedTime = 0;\n this.running = false;\n}\n\nObject.assign(Clock.prototype, {\n start: function start() {\n this.startTime = (typeof performance === 'undefined' ? Date : performance).now(); // see #10732\n\n this.oldTime = this.startTime;\n this.elapsedTime = 0;\n this.running = true;\n },\n stop: function stop() {\n this.getElapsedTime();\n this.running = false;\n this.autoStart = false;\n },\n getElapsedTime: function getElapsedTime() {\n this.getDelta();\n return this.elapsedTime;\n },\n getDelta: function getDelta() {\n var diff = 0;\n\n if (this.autoStart && !this.running) {\n this.start();\n return 0;\n }\n\n if (this.running) {\n var newTime = (typeof performance === 'undefined' ? Date : performance).now();\n diff = (newTime - this.oldTime) / 1000;\n this.oldTime = newTime;\n this.elapsedTime += diff;\n }\n\n return diff;\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nvar _position$2 = new Vector3();\n\nvar _quaternion$3 = new Quaternion();\n\nvar _scale$1 = new Vector3();\n\nvar _orientation = new Vector3();\n\nfunction AudioListener() {\n Object3D.call(this);\n this.type = 'AudioListener';\n this.context = AudioContext.getContext();\n this.gain = this.context.createGain();\n this.gain.connect(this.context.destination);\n this.filter = null;\n this.timeDelta = 0; // private\n\n this._clock = new Clock();\n}\n\nAudioListener.prototype = Object.assign(Object.create(Object3D.prototype), {\n constructor: AudioListener,\n getInput: function getInput() {\n return this.gain;\n },\n removeFilter: function removeFilter() {\n if (this.filter !== null) {\n this.gain.disconnect(this.filter);\n this.filter.disconnect(this.context.destination);\n this.gain.connect(this.context.destination);\n this.filter = null;\n }\n\n return this;\n },\n getFilter: function getFilter() {\n return this.filter;\n },\n setFilter: function setFilter(value) {\n if (this.filter !== null) {\n this.gain.disconnect(this.filter);\n this.filter.disconnect(this.context.destination);\n } else {\n this.gain.disconnect(this.context.destination);\n }\n\n this.filter = value;\n this.gain.connect(this.filter);\n this.filter.connect(this.context.destination);\n return this;\n },\n getMasterVolume: function getMasterVolume() {\n return this.gain.gain.value;\n },\n setMasterVolume: function setMasterVolume(value) {\n this.gain.gain.setTargetAtTime(value, this.context.currentTime, 0.01);\n return this;\n },\n updateMatrixWorld: function updateMatrixWorld(force) {\n Object3D.prototype.updateMatrixWorld.call(this, force);\n var listener = this.context.listener;\n var up = this.up;\n this.timeDelta = this._clock.getDelta();\n this.matrixWorld.decompose(_position$2, _quaternion$3, _scale$1);\n\n _orientation.set(0, 0, -1).applyQuaternion(_quaternion$3);\n\n if (listener.positionX) {\n // code path for Chrome (see #14393)\n var endTime = this.context.currentTime + this.timeDelta;\n listener.positionX.linearRampToValueAtTime(_position$2.x, endTime);\n listener.positionY.linearRampToValueAtTime(_position$2.y, endTime);\n listener.positionZ.linearRampToValueAtTime(_position$2.z, endTime);\n listener.forwardX.linearRampToValueAtTime(_orientation.x, endTime);\n listener.forwardY.linearRampToValueAtTime(_orientation.y, endTime);\n listener.forwardZ.linearRampToValueAtTime(_orientation.z, endTime);\n listener.upX.linearRampToValueAtTime(up.x, endTime);\n listener.upY.linearRampToValueAtTime(up.y, endTime);\n listener.upZ.linearRampToValueAtTime(up.z, endTime);\n } else {\n listener.setPosition(_position$2.x, _position$2.y, _position$2.z);\n listener.setOrientation(_orientation.x, _orientation.y, _orientation.z, up.x, up.y, up.z);\n }\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author Reece Aaron Lecrivain / http://reecenotes.com/\n */\n\nfunction Audio(listener) {\n Object3D.call(this);\n this.type = 'Audio';\n this.listener = listener;\n this.context = listener.context;\n this.gain = this.context.createGain();\n this.gain.connect(listener.getInput());\n this.autoplay = false;\n this.buffer = null;\n this.detune = 0;\n this.loop = false;\n this.loopStart = 0;\n this.loopEnd = 0;\n this.offset = 0;\n this.duration = undefined;\n this.playbackRate = 1;\n this.isPlaying = false;\n this.hasPlaybackControl = true;\n this.sourceType = 'empty';\n this._startedAt = 0;\n this._pausedAt = 0;\n this.filters = [];\n}\n\nAudio.prototype = Object.assign(Object.create(Object3D.prototype), {\n constructor: Audio,\n getOutput: function getOutput() {\n return this.gain;\n },\n setNodeSource: function setNodeSource(audioNode) {\n this.hasPlaybackControl = false;\n this.sourceType = 'audioNode';\n this.source = audioNode;\n this.connect();\n return this;\n },\n setMediaElementSource: function setMediaElementSource(mediaElement) {\n this.hasPlaybackControl = false;\n this.sourceType = 'mediaNode';\n this.source = this.context.createMediaElementSource(mediaElement);\n this.connect();\n return this;\n },\n setMediaStreamSource: function setMediaStreamSource(mediaStream) {\n this.hasPlaybackControl = false;\n this.sourceType = 'mediaStreamNode';\n this.source = this.context.createMediaStreamSource(mediaStream);\n this.connect();\n return this;\n },\n setBuffer: function setBuffer(audioBuffer) {\n this.buffer = audioBuffer;\n this.sourceType = 'buffer';\n if (this.autoplay) this.play();\n return this;\n },\n play: function play(delay) {\n if (delay === undefined) delay = 0;\n\n if (this.isPlaying === true) {\n console.warn('THREE.Audio: Audio is already playing.');\n return;\n }\n\n if (this.hasPlaybackControl === false) {\n console.warn('THREE.Audio: this Audio has no playback control.');\n return;\n }\n\n this._startedAt = this.context.currentTime + delay;\n var source = this.context.createBufferSource();\n source.buffer = this.buffer;\n source.loop = this.loop;\n source.loopStart = this.loopStart;\n source.loopEnd = this.loopEnd;\n source.onended = this.onEnded.bind(this);\n source.start(this._startedAt, this._pausedAt + this.offset, this.duration);\n this.isPlaying = true;\n this.source = source;\n this.setDetune(this.detune);\n this.setPlaybackRate(this.playbackRate);\n return this.connect();\n },\n pause: function pause() {\n if (this.hasPlaybackControl === false) {\n console.warn('THREE.Audio: this Audio has no playback control.');\n return;\n }\n\n if (this.isPlaying === true) {\n this._pausedAt = (this.context.currentTime - this._startedAt) * this.playbackRate;\n this.source.stop();\n this.source.onended = null;\n this.isPlaying = false;\n }\n\n return this;\n },\n stop: function stop() {\n if (this.hasPlaybackControl === false) {\n console.warn('THREE.Audio: this Audio has no playback control.');\n return;\n }\n\n this._pausedAt = 0;\n this.source.stop();\n this.source.onended = null;\n this.isPlaying = false;\n return this;\n },\n connect: function connect() {\n if (this.filters.length > 0) {\n this.source.connect(this.filters[0]);\n\n for (var i = 1, l = this.filters.length; i < l; i++) {\n this.filters[i - 1].connect(this.filters[i]);\n }\n\n this.filters[this.filters.length - 1].connect(this.getOutput());\n } else {\n this.source.connect(this.getOutput());\n }\n\n return this;\n },\n disconnect: function disconnect() {\n if (this.filters.length > 0) {\n this.source.disconnect(this.filters[0]);\n\n for (var i = 1, l = this.filters.length; i < l; i++) {\n this.filters[i - 1].disconnect(this.filters[i]);\n }\n\n this.filters[this.filters.length - 1].disconnect(this.getOutput());\n } else {\n this.source.disconnect(this.getOutput());\n }\n\n return this;\n },\n getFilters: function getFilters() {\n return this.filters;\n },\n setFilters: function setFilters(value) {\n if (!value) value = [];\n\n if (this.isPlaying === true) {\n this.disconnect();\n this.filters = value;\n this.connect();\n } else {\n this.filters = value;\n }\n\n return this;\n },\n setDetune: function setDetune(value) {\n this.detune = value;\n if (this.source.detune === undefined) return; // only set detune when available\n\n if (this.isPlaying === true) {\n this.source.detune.setTargetAtTime(this.detune, this.context.currentTime, 0.01);\n }\n\n return this;\n },\n getDetune: function getDetune() {\n return this.detune;\n },\n getFilter: function getFilter() {\n return this.getFilters()[0];\n },\n setFilter: function setFilter(filter) {\n return this.setFilters(filter ? [filter] : []);\n },\n setPlaybackRate: function setPlaybackRate(value) {\n if (this.hasPlaybackControl === false) {\n console.warn('THREE.Audio: this Audio has no playback control.');\n return;\n }\n\n this.playbackRate = value;\n\n if (this.isPlaying === true) {\n this.source.playbackRate.setTargetAtTime(this.playbackRate, this.context.currentTime, 0.01);\n }\n\n return this;\n },\n getPlaybackRate: function getPlaybackRate() {\n return this.playbackRate;\n },\n onEnded: function onEnded() {\n this.isPlaying = false;\n },\n getLoop: function getLoop() {\n if (this.hasPlaybackControl === false) {\n console.warn('THREE.Audio: this Audio has no playback control.');\n return false;\n }\n\n return this.loop;\n },\n setLoop: function setLoop(value) {\n if (this.hasPlaybackControl === false) {\n console.warn('THREE.Audio: this Audio has no playback control.');\n return;\n }\n\n this.loop = value;\n\n if (this.isPlaying === true) {\n this.source.loop = this.loop;\n }\n\n return this;\n },\n setLoopStart: function setLoopStart(value) {\n this.loopStart = value;\n return this;\n },\n setLoopEnd: function setLoopEnd(value) {\n this.loopEnd = value;\n return this;\n },\n getVolume: function getVolume() {\n return this.gain.gain.value;\n },\n setVolume: function setVolume(value) {\n this.gain.gain.setTargetAtTime(value, this.context.currentTime, 0.01);\n return this;\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nvar _position$3 = new Vector3();\n\nvar _quaternion$4 = new Quaternion();\n\nvar _scale$2 = new Vector3();\n\nvar _orientation$1 = new Vector3();\n\nfunction PositionalAudio(listener) {\n Audio.call(this, listener);\n this.panner = this.context.createPanner();\n this.panner.panningModel = 'HRTF';\n this.panner.connect(this.gain);\n}\n\nPositionalAudio.prototype = Object.assign(Object.create(Audio.prototype), {\n constructor: PositionalAudio,\n getOutput: function getOutput() {\n return this.panner;\n },\n getRefDistance: function getRefDistance() {\n return this.panner.refDistance;\n },\n setRefDistance: function setRefDistance(value) {\n this.panner.refDistance = value;\n return this;\n },\n getRolloffFactor: function getRolloffFactor() {\n return this.panner.rolloffFactor;\n },\n setRolloffFactor: function setRolloffFactor(value) {\n this.panner.rolloffFactor = value;\n return this;\n },\n getDistanceModel: function getDistanceModel() {\n return this.panner.distanceModel;\n },\n setDistanceModel: function setDistanceModel(value) {\n this.panner.distanceModel = value;\n return this;\n },\n getMaxDistance: function getMaxDistance() {\n return this.panner.maxDistance;\n },\n setMaxDistance: function setMaxDistance(value) {\n this.panner.maxDistance = value;\n return this;\n },\n setDirectionalCone: function setDirectionalCone(coneInnerAngle, coneOuterAngle, coneOuterGain) {\n this.panner.coneInnerAngle = coneInnerAngle;\n this.panner.coneOuterAngle = coneOuterAngle;\n this.panner.coneOuterGain = coneOuterGain;\n return this;\n },\n updateMatrixWorld: function updateMatrixWorld(force) {\n Object3D.prototype.updateMatrixWorld.call(this, force);\n if (this.hasPlaybackControl === true && this.isPlaying === false) return;\n this.matrixWorld.decompose(_position$3, _quaternion$4, _scale$2);\n\n _orientation$1.set(0, 0, 1).applyQuaternion(_quaternion$4);\n\n var panner = this.panner;\n\n if (panner.positionX) {\n // code path for Chrome and Firefox (see #14393)\n var endTime = this.context.currentTime + this.listener.timeDelta;\n panner.positionX.linearRampToValueAtTime(_position$3.x, endTime);\n panner.positionY.linearRampToValueAtTime(_position$3.y, endTime);\n panner.positionZ.linearRampToValueAtTime(_position$3.z, endTime);\n panner.orientationX.linearRampToValueAtTime(_orientation$1.x, endTime);\n panner.orientationY.linearRampToValueAtTime(_orientation$1.y, endTime);\n panner.orientationZ.linearRampToValueAtTime(_orientation$1.z, endTime);\n } else {\n panner.setPosition(_position$3.x, _position$3.y, _position$3.z);\n panner.setOrientation(_orientation$1.x, _orientation$1.y, _orientation$1.z);\n }\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction AudioAnalyser(audio, fftSize) {\n this.analyser = audio.context.createAnalyser();\n this.analyser.fftSize = fftSize !== undefined ? fftSize : 2048;\n this.data = new Uint8Array(this.analyser.frequencyBinCount);\n audio.getOutput().connect(this.analyser);\n}\n\nObject.assign(AudioAnalyser.prototype, {\n getFrequencyData: function getFrequencyData() {\n this.analyser.getByteFrequencyData(this.data);\n return this.data;\n },\n getAverageFrequency: function getAverageFrequency() {\n var value = 0,\n data = this.getFrequencyData();\n\n for (var i = 0; i < data.length; i++) {\n value += data[i];\n }\n\n return value / data.length;\n }\n});\n/**\n *\n * Buffered scene graph property that allows weighted accumulation.\n *\n *\n * @author Ben Houston / http://clara.io/\n * @author David Sarno / http://lighthaus.us/\n * @author tschw\n */\n\nfunction PropertyMixer(binding, typeName, valueSize) {\n this.binding = binding;\n this.valueSize = valueSize;\n var bufferType = Float64Array,\n mixFunction;\n\n switch (typeName) {\n case 'quaternion':\n mixFunction = this._slerp;\n break;\n\n case 'string':\n case 'bool':\n bufferType = Array;\n mixFunction = this._select;\n break;\n\n default:\n mixFunction = this._lerp;\n }\n\n this.buffer = new bufferType(valueSize * 4); // layout: [ incoming | accu0 | accu1 | orig ]\n //\n // interpolators can use .buffer as their .result\n // the data then goes to 'incoming'\n //\n // 'accu0' and 'accu1' are used frame-interleaved for\n // the cumulative result and are compared to detect\n // changes\n //\n // 'orig' stores the original state of the property\n\n this._mixBufferRegion = mixFunction;\n this.cumulativeWeight = 0;\n this.useCount = 0;\n this.referenceCount = 0;\n}\n\nObject.assign(PropertyMixer.prototype, {\n // accumulate data in the 'incoming' region into 'accu'\n accumulate: function accumulate(accuIndex, weight) {\n // note: happily accumulating nothing when weight = 0, the caller knows\n // the weight and shouldn't have made the call in the first place\n var buffer = this.buffer,\n stride = this.valueSize,\n offset = accuIndex * stride + stride,\n currentWeight = this.cumulativeWeight;\n\n if (currentWeight === 0) {\n // accuN := incoming * weight\n for (var i = 0; i !== stride; ++i) {\n buffer[offset + i] = buffer[i];\n }\n\n currentWeight = weight;\n } else {\n // accuN := accuN + incoming * weight\n currentWeight += weight;\n var mix = weight / currentWeight;\n\n this._mixBufferRegion(buffer, offset, 0, mix, stride);\n }\n\n this.cumulativeWeight = currentWeight;\n },\n // apply the state of 'accu' to the binding when accus differ\n apply: function apply(accuIndex) {\n var stride = this.valueSize,\n buffer = this.buffer,\n offset = accuIndex * stride + stride,\n weight = this.cumulativeWeight,\n binding = this.binding;\n this.cumulativeWeight = 0;\n\n if (weight < 1) {\n // accuN := accuN + original * ( 1 - cumulativeWeight )\n var originalValueOffset = stride * 3;\n\n this._mixBufferRegion(buffer, offset, originalValueOffset, 1 - weight, stride);\n }\n\n for (var i = stride, e = stride + stride; i !== e; ++i) {\n if (buffer[i] !== buffer[i + stride]) {\n // value has changed -> update scene graph\n binding.setValue(buffer, offset);\n break;\n }\n }\n },\n // remember the state of the bound property and copy it to both accus\n saveOriginalState: function saveOriginalState() {\n var binding = this.binding;\n var buffer = this.buffer,\n stride = this.valueSize,\n originalValueOffset = stride * 3;\n binding.getValue(buffer, originalValueOffset); // accu[0..1] := orig -- initially detect changes against the original\n\n for (var i = stride, e = originalValueOffset; i !== e; ++i) {\n buffer[i] = buffer[originalValueOffset + i % stride];\n }\n\n this.cumulativeWeight = 0;\n },\n // apply the state previously taken via 'saveOriginalState' to the binding\n restoreOriginalState: function restoreOriginalState() {\n var originalValueOffset = this.valueSize * 3;\n this.binding.setValue(this.buffer, originalValueOffset);\n },\n // mix functions\n _select: function _select(buffer, dstOffset, srcOffset, t, stride) {\n if (t >= 0.5) {\n for (var i = 0; i !== stride; ++i) {\n buffer[dstOffset + i] = buffer[srcOffset + i];\n }\n }\n },\n _slerp: function _slerp(buffer, dstOffset, srcOffset, t) {\n Quaternion.slerpFlat(buffer, dstOffset, buffer, dstOffset, buffer, srcOffset, t);\n },\n _lerp: function _lerp(buffer, dstOffset, srcOffset, t, stride) {\n var s = 1 - t;\n\n for (var i = 0; i !== stride; ++i) {\n var j = dstOffset + i;\n buffer[j] = buffer[j] * s + buffer[srcOffset + i] * t;\n }\n }\n});\n/**\n *\n * A reference to a real property in the scene graph.\n *\n *\n * @author Ben Houston / http://clara.io/\n * @author David Sarno / http://lighthaus.us/\n * @author tschw\n */\n// Characters [].:/ are reserved for track binding syntax.\n\nvar _RESERVED_CHARS_RE = '\\\\[\\\\]\\\\.:\\\\/';\n\nvar _reservedRe = new RegExp('[' + _RESERVED_CHARS_RE + ']', 'g'); // Attempts to allow node names from any language. ES5's `\\w` regexp matches\n// only latin characters, and the unicode \\p{L} is not yet supported. So\n// instead, we exclude reserved characters and match everything else.\n\n\nvar _wordChar = '[^' + _RESERVED_CHARS_RE + ']';\n\nvar _wordCharOrDot = '[^' + _RESERVED_CHARS_RE.replace('\\\\.', '') + ']'; // Parent directories, delimited by '/' or ':'. Currently unused, but must\n// be matched to parse the rest of the track name.\n\n\nvar _directoryRe = /((?:WC+[\\/:])*)/.source.replace('WC', _wordChar); // Target node. May contain word characters (a-zA-Z0-9_) and '.' or '-'.\n\n\nvar _nodeRe = /(WCOD+)?/.source.replace('WCOD', _wordCharOrDot); // Object on target node, and accessor. May not contain reserved\n// characters. Accessor may contain any character except closing bracket.\n\n\nvar _objectRe = /(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace('WC', _wordChar); // Property and accessor. May not contain reserved characters. Accessor may\n// contain any non-bracket characters.\n\n\nvar _propertyRe = /\\.(WC+)(?:\\[(.+)\\])?/.source.replace('WC', _wordChar);\n\nvar _trackRe = new RegExp('' + '^' + _directoryRe + _nodeRe + _objectRe + _propertyRe + '$');\n\nvar _supportedObjectNames = ['material', 'materials', 'bones'];\n\nfunction Composite(targetGroup, path, optionalParsedPath) {\n var parsedPath = optionalParsedPath || PropertyBinding.parseTrackName(path);\n this._targetGroup = targetGroup;\n this._bindings = targetGroup.subscribe_(path, parsedPath);\n}\n\nObject.assign(Composite.prototype, {\n getValue: function getValue(array, offset) {\n this.bind(); // bind all binding\n\n var firstValidIndex = this._targetGroup.nCachedObjects_,\n binding = this._bindings[firstValidIndex]; // and only call .getValue on the first\n\n if (binding !== undefined) binding.getValue(array, offset);\n },\n setValue: function setValue(array, offset) {\n var bindings = this._bindings;\n\n for (var i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) {\n bindings[i].setValue(array, offset);\n }\n },\n bind: function bind() {\n var bindings = this._bindings;\n\n for (var i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) {\n bindings[i].bind();\n }\n },\n unbind: function unbind() {\n var bindings = this._bindings;\n\n for (var i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) {\n bindings[i].unbind();\n }\n }\n});\n\nfunction PropertyBinding(rootNode, path, parsedPath) {\n this.path = path;\n this.parsedPath = parsedPath || PropertyBinding.parseTrackName(path);\n this.node = PropertyBinding.findNode(rootNode, this.parsedPath.nodeName) || rootNode;\n this.rootNode = rootNode;\n}\n\nObject.assign(PropertyBinding, {\n Composite: Composite,\n create: function create(root, path, parsedPath) {\n if (!(root && root.isAnimationObjectGroup)) {\n return new PropertyBinding(root, path, parsedPath);\n } else {\n return new PropertyBinding.Composite(root, path, parsedPath);\n }\n },\n\n /**\n * Replaces spaces with underscores and removes unsupported characters from\n * node names, to ensure compatibility with parseTrackName().\n *\n * @param {string} name Node name to be sanitized.\n * @return {string}\n */\n sanitizeNodeName: function sanitizeNodeName(name) {\n return name.replace(/\\s/g, '_').replace(_reservedRe, '');\n },\n parseTrackName: function parseTrackName(trackName) {\n var matches = _trackRe.exec(trackName);\n\n if (!matches) {\n throw new Error('PropertyBinding: Cannot parse trackName: ' + trackName);\n }\n\n var results = {\n // directoryName: matches[ 1 ], // (tschw) currently unused\n nodeName: matches[2],\n objectName: matches[3],\n objectIndex: matches[4],\n propertyName: matches[5],\n // required\n propertyIndex: matches[6]\n };\n var lastDot = results.nodeName && results.nodeName.lastIndexOf('.');\n\n if (lastDot !== undefined && lastDot !== -1) {\n var objectName = results.nodeName.substring(lastDot + 1); // Object names must be checked against a whitelist. Otherwise, there\n // is no way to parse 'foo.bar.baz': 'baz' must be a property, but\n // 'bar' could be the objectName, or part of a nodeName (which can\n // include '.' characters).\n\n if (_supportedObjectNames.indexOf(objectName) !== -1) {\n results.nodeName = results.nodeName.substring(0, lastDot);\n results.objectName = objectName;\n }\n }\n\n if (results.propertyName === null || results.propertyName.length === 0) {\n throw new Error('PropertyBinding: can not parse propertyName from trackName: ' + trackName);\n }\n\n return results;\n },\n findNode: function findNode(root, nodeName) {\n if (!nodeName || nodeName === \"\" || nodeName === \"root\" || nodeName === \".\" || nodeName === -1 || nodeName === root.name || nodeName === root.uuid) {\n return root;\n } // search into skeleton bones.\n\n\n if (root.skeleton) {\n var bone = root.skeleton.getBoneByName(nodeName);\n\n if (bone !== undefined) {\n return bone;\n }\n } // search into node subtree.\n\n\n if (root.children) {\n var searchNodeSubtree = function searchNodeSubtree(children) {\n for (var i = 0; i < children.length; i++) {\n var childNode = children[i];\n\n if (childNode.name === nodeName || childNode.uuid === nodeName) {\n return childNode;\n }\n\n var result = searchNodeSubtree(childNode.children);\n if (result) return result;\n }\n\n return null;\n };\n\n var subTreeNode = searchNodeSubtree(root.children);\n\n if (subTreeNode) {\n return subTreeNode;\n }\n }\n\n return null;\n }\n});\nObject.assign(PropertyBinding.prototype, {\n // prototype, continued\n // these are used to \"bind\" a nonexistent property\n _getValue_unavailable: function _getValue_unavailable() {},\n _setValue_unavailable: function _setValue_unavailable() {},\n BindingType: {\n Direct: 0,\n EntireArray: 1,\n ArrayElement: 2,\n HasFromToArray: 3\n },\n Versioning: {\n None: 0,\n NeedsUpdate: 1,\n MatrixWorldNeedsUpdate: 2\n },\n GetterByBindingType: [function getValue_direct(buffer, offset) {\n buffer[offset] = this.node[this.propertyName];\n }, function getValue_array(buffer, offset) {\n var source = this.resolvedProperty;\n\n for (var i = 0, n = source.length; i !== n; ++i) {\n buffer[offset++] = source[i];\n }\n }, function getValue_arrayElement(buffer, offset) {\n buffer[offset] = this.resolvedProperty[this.propertyIndex];\n }, function getValue_toArray(buffer, offset) {\n this.resolvedProperty.toArray(buffer, offset);\n }],\n SetterByBindingTypeAndVersioning: [[// Direct\n function setValue_direct(buffer, offset) {\n this.targetObject[this.propertyName] = buffer[offset];\n }, function setValue_direct_setNeedsUpdate(buffer, offset) {\n this.targetObject[this.propertyName] = buffer[offset];\n this.targetObject.needsUpdate = true;\n }, function setValue_direct_setMatrixWorldNeedsUpdate(buffer, offset) {\n this.targetObject[this.propertyName] = buffer[offset];\n this.targetObject.matrixWorldNeedsUpdate = true;\n }], [// EntireArray\n function setValue_array(buffer, offset) {\n var dest = this.resolvedProperty;\n\n for (var i = 0, n = dest.length; i !== n; ++i) {\n dest[i] = buffer[offset++];\n }\n }, function setValue_array_setNeedsUpdate(buffer, offset) {\n var dest = this.resolvedProperty;\n\n for (var i = 0, n = dest.length; i !== n; ++i) {\n dest[i] = buffer[offset++];\n }\n\n this.targetObject.needsUpdate = true;\n }, function setValue_array_setMatrixWorldNeedsUpdate(buffer, offset) {\n var dest = this.resolvedProperty;\n\n for (var i = 0, n = dest.length; i !== n; ++i) {\n dest[i] = buffer[offset++];\n }\n\n this.targetObject.matrixWorldNeedsUpdate = true;\n }], [// ArrayElement\n function setValue_arrayElement(buffer, offset) {\n this.resolvedProperty[this.propertyIndex] = buffer[offset];\n }, function setValue_arrayElement_setNeedsUpdate(buffer, offset) {\n this.resolvedProperty[this.propertyIndex] = buffer[offset];\n this.targetObject.needsUpdate = true;\n }, function setValue_arrayElement_setMatrixWorldNeedsUpdate(buffer, offset) {\n this.resolvedProperty[this.propertyIndex] = buffer[offset];\n this.targetObject.matrixWorldNeedsUpdate = true;\n }], [// HasToFromArray\n function setValue_fromArray(buffer, offset) {\n this.resolvedProperty.fromArray(buffer, offset);\n }, function setValue_fromArray_setNeedsUpdate(buffer, offset) {\n this.resolvedProperty.fromArray(buffer, offset);\n this.targetObject.needsUpdate = true;\n }, function setValue_fromArray_setMatrixWorldNeedsUpdate(buffer, offset) {\n this.resolvedProperty.fromArray(buffer, offset);\n this.targetObject.matrixWorldNeedsUpdate = true;\n }]],\n getValue: function getValue_unbound(targetArray, offset) {\n this.bind();\n this.getValue(targetArray, offset); // Note: This class uses a State pattern on a per-method basis:\n // 'bind' sets 'this.getValue' / 'setValue' and shadows the\n // prototype version of these methods with one that represents\n // the bound state. When the property is not found, the methods\n // become no-ops.\n },\n setValue: function getValue_unbound(sourceArray, offset) {\n this.bind();\n this.setValue(sourceArray, offset);\n },\n // create getter / setter pair for a property in the scene graph\n bind: function bind() {\n var targetObject = this.node,\n parsedPath = this.parsedPath,\n objectName = parsedPath.objectName,\n propertyName = parsedPath.propertyName,\n propertyIndex = parsedPath.propertyIndex;\n\n if (!targetObject) {\n targetObject = PropertyBinding.findNode(this.rootNode, parsedPath.nodeName) || this.rootNode;\n this.node = targetObject;\n } // set fail state so we can just 'return' on error\n\n\n this.getValue = this._getValue_unavailable;\n this.setValue = this._setValue_unavailable; // ensure there is a value node\n\n if (!targetObject) {\n console.error('THREE.PropertyBinding: Trying to update node for track: ' + this.path + ' but it wasn\\'t found.');\n return;\n }\n\n if (objectName) {\n var objectIndex = parsedPath.objectIndex; // special cases were we need to reach deeper into the hierarchy to get the face materials....\n\n switch (objectName) {\n case 'materials':\n if (!targetObject.material) {\n console.error('THREE.PropertyBinding: Can not bind to material as node does not have a material.', this);\n return;\n }\n\n if (!targetObject.material.materials) {\n console.error('THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.', this);\n return;\n }\n\n targetObject = targetObject.material.materials;\n break;\n\n case 'bones':\n if (!targetObject.skeleton) {\n console.error('THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.', this);\n return;\n } // potential future optimization: skip this if propertyIndex is already an integer\n // and convert the integer string to a true integer.\n\n\n targetObject = targetObject.skeleton.bones; // support resolving morphTarget names into indices.\n\n for (var i = 0; i < targetObject.length; i++) {\n if (targetObject[i].name === objectIndex) {\n objectIndex = i;\n break;\n }\n }\n\n break;\n\n default:\n if (targetObject[objectName] === undefined) {\n console.error('THREE.PropertyBinding: Can not bind to objectName of node undefined.', this);\n return;\n }\n\n targetObject = targetObject[objectName];\n }\n\n if (objectIndex !== undefined) {\n if (targetObject[objectIndex] === undefined) {\n console.error('THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.', this, targetObject);\n return;\n }\n\n targetObject = targetObject[objectIndex];\n }\n } // resolve property\n\n\n var nodeProperty = targetObject[propertyName];\n\n if (nodeProperty === undefined) {\n var nodeName = parsedPath.nodeName;\n console.error('THREE.PropertyBinding: Trying to update property for track: ' + nodeName + '.' + propertyName + ' but it wasn\\'t found.', targetObject);\n return;\n } // determine versioning scheme\n\n\n var versioning = this.Versioning.None;\n this.targetObject = targetObject;\n\n if (targetObject.needsUpdate !== undefined) {\n // material\n versioning = this.Versioning.NeedsUpdate;\n } else if (targetObject.matrixWorldNeedsUpdate !== undefined) {\n // node transform\n versioning = this.Versioning.MatrixWorldNeedsUpdate;\n } // determine how the property gets bound\n\n\n var bindingType = this.BindingType.Direct;\n\n if (propertyIndex !== undefined) {\n // access a sub element of the property array (only primitives are supported right now)\n if (propertyName === \"morphTargetInfluences\") {\n // potential optimization, skip this if propertyIndex is already an integer, and convert the integer string to a true integer.\n // support resolving morphTarget names into indices.\n if (!targetObject.geometry) {\n console.error('THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.', this);\n return;\n }\n\n if (targetObject.geometry.isBufferGeometry) {\n if (!targetObject.geometry.morphAttributes) {\n console.error('THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.', this);\n return;\n }\n\n for (var i = 0; i < this.node.geometry.morphAttributes.position.length; i++) {\n if (targetObject.geometry.morphAttributes.position[i].name === propertyIndex) {\n propertyIndex = i;\n break;\n }\n }\n } else {\n if (!targetObject.geometry.morphTargets) {\n console.error('THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphTargets.', this);\n return;\n }\n\n for (var i = 0; i < this.node.geometry.morphTargets.length; i++) {\n if (targetObject.geometry.morphTargets[i].name === propertyIndex) {\n propertyIndex = i;\n break;\n }\n }\n }\n }\n\n bindingType = this.BindingType.ArrayElement;\n this.resolvedProperty = nodeProperty;\n this.propertyIndex = propertyIndex;\n } else if (nodeProperty.fromArray !== undefined && nodeProperty.toArray !== undefined) {\n // must use copy for Object3D.Euler/Quaternion\n bindingType = this.BindingType.HasFromToArray;\n this.resolvedProperty = nodeProperty;\n } else if (Array.isArray(nodeProperty)) {\n bindingType = this.BindingType.EntireArray;\n this.resolvedProperty = nodeProperty;\n } else {\n this.propertyName = propertyName;\n } // select getter / setter\n\n\n this.getValue = this.GetterByBindingType[bindingType];\n this.setValue = this.SetterByBindingTypeAndVersioning[bindingType][versioning];\n },\n unbind: function unbind() {\n this.node = null; // back to the prototype version of getValue / setValue\n // note: avoiding to mutate the shape of 'this' via 'delete'\n\n this.getValue = this._getValue_unbound;\n this.setValue = this._setValue_unbound;\n }\n}); //!\\ DECLARE ALIAS AFTER assign prototype !\n\nObject.assign(PropertyBinding.prototype, {\n // initial state of these methods that calls 'bind'\n _getValue_unbound: PropertyBinding.prototype.getValue,\n _setValue_unbound: PropertyBinding.prototype.setValue\n});\n/**\n *\n * A group of objects that receives a shared animation state.\n *\n * Usage:\n *\n * - Add objects you would otherwise pass as 'root' to the\n * constructor or the .clipAction method of AnimationMixer.\n *\n * - Instead pass this object as 'root'.\n *\n * - You can also add and remove objects later when the mixer\n * is running.\n *\n * Note:\n *\n * Objects of this class appear as one object to the mixer,\n * so cache control of the individual objects must be done\n * on the group.\n *\n * Limitation:\n *\n * - The animated properties must be compatible among the\n * all objects in the group.\n *\n * - A single property can either be controlled through a\n * target group or directly, but not both.\n *\n * @author tschw\n */\n\nfunction AnimationObjectGroup() {\n this.uuid = _Math.generateUUID(); // cached objects followed by the active ones\n\n this._objects = Array.prototype.slice.call(arguments);\n this.nCachedObjects_ = 0; // threshold\n // note: read by PropertyBinding.Composite\n\n var indices = {};\n this._indicesByUUID = indices; // for bookkeeping\n\n for (var i = 0, n = arguments.length; i !== n; ++i) {\n indices[arguments[i].uuid] = i;\n }\n\n this._paths = []; // inside: string\n\n this._parsedPaths = []; // inside: { we don't care, here }\n\n this._bindings = []; // inside: Array< PropertyBinding >\n\n this._bindingsIndicesByPath = {}; // inside: indices in these arrays\n\n var scope = this;\n this.stats = {\n objects: {\n get total() {\n return scope._objects.length;\n },\n\n get inUse() {\n return this.total - scope.nCachedObjects_;\n }\n\n },\n\n get bindingsPerObject() {\n return scope._bindings.length;\n }\n\n };\n}\n\nObject.assign(AnimationObjectGroup.prototype, {\n isAnimationObjectGroup: true,\n add: function add() {\n var objects = this._objects,\n nObjects = objects.length,\n nCachedObjects = this.nCachedObjects_,\n indicesByUUID = this._indicesByUUID,\n paths = this._paths,\n parsedPaths = this._parsedPaths,\n bindings = this._bindings,\n nBindings = bindings.length,\n knownObject = undefined;\n\n for (var i = 0, n = arguments.length; i !== n; ++i) {\n var object = arguments[i],\n uuid = object.uuid,\n index = indicesByUUID[uuid];\n\n if (index === undefined) {\n // unknown object -> add it to the ACTIVE region\n index = nObjects++;\n indicesByUUID[uuid] = index;\n objects.push(object); // accounting is done, now do the same for all bindings\n\n for (var j = 0, m = nBindings; j !== m; ++j) {\n bindings[j].push(new PropertyBinding(object, paths[j], parsedPaths[j]));\n }\n } else if (index < nCachedObjects) {\n knownObject = objects[index]; // move existing object to the ACTIVE region\n\n var firstActiveIndex = --nCachedObjects,\n lastCachedObject = objects[firstActiveIndex];\n indicesByUUID[lastCachedObject.uuid] = index;\n objects[index] = lastCachedObject;\n indicesByUUID[uuid] = firstActiveIndex;\n objects[firstActiveIndex] = object; // accounting is done, now do the same for all bindings\n\n for (var j = 0, m = nBindings; j !== m; ++j) {\n var bindingsForPath = bindings[j],\n lastCached = bindingsForPath[firstActiveIndex],\n binding = bindingsForPath[index];\n bindingsForPath[index] = lastCached;\n\n if (binding === undefined) {\n // since we do not bother to create new bindings\n // for objects that are cached, the binding may\n // or may not exist\n binding = new PropertyBinding(object, paths[j], parsedPaths[j]);\n }\n\n bindingsForPath[firstActiveIndex] = binding;\n }\n } else if (objects[index] !== knownObject) {\n console.error('THREE.AnimationObjectGroup: Different objects with the same UUID ' + 'detected. Clean the caches or recreate your infrastructure when reloading scenes.');\n } // else the object is already where we want it to be\n\n } // for arguments\n\n\n this.nCachedObjects_ = nCachedObjects;\n },\n remove: function remove() {\n var objects = this._objects,\n nCachedObjects = this.nCachedObjects_,\n indicesByUUID = this._indicesByUUID,\n bindings = this._bindings,\n nBindings = bindings.length;\n\n for (var i = 0, n = arguments.length; i !== n; ++i) {\n var object = arguments[i],\n uuid = object.uuid,\n index = indicesByUUID[uuid];\n\n if (index !== undefined && index >= nCachedObjects) {\n // move existing object into the CACHED region\n var lastCachedIndex = nCachedObjects++,\n firstActiveObject = objects[lastCachedIndex];\n indicesByUUID[firstActiveObject.uuid] = index;\n objects[index] = firstActiveObject;\n indicesByUUID[uuid] = lastCachedIndex;\n objects[lastCachedIndex] = object; // accounting is done, now do the same for all bindings\n\n for (var j = 0, m = nBindings; j !== m; ++j) {\n var bindingsForPath = bindings[j],\n firstActive = bindingsForPath[lastCachedIndex],\n binding = bindingsForPath[index];\n bindingsForPath[index] = firstActive;\n bindingsForPath[lastCachedIndex] = binding;\n }\n }\n } // for arguments\n\n\n this.nCachedObjects_ = nCachedObjects;\n },\n // remove & forget\n uncache: function uncache() {\n var objects = this._objects,\n nObjects = objects.length,\n nCachedObjects = this.nCachedObjects_,\n indicesByUUID = this._indicesByUUID,\n bindings = this._bindings,\n nBindings = bindings.length;\n\n for (var i = 0, n = arguments.length; i !== n; ++i) {\n var object = arguments[i],\n uuid = object.uuid,\n index = indicesByUUID[uuid];\n\n if (index !== undefined) {\n delete indicesByUUID[uuid];\n\n if (index < nCachedObjects) {\n // object is cached, shrink the CACHED region\n var firstActiveIndex = --nCachedObjects,\n lastCachedObject = objects[firstActiveIndex],\n lastIndex = --nObjects,\n lastObject = objects[lastIndex]; // last cached object takes this object's place\n\n indicesByUUID[lastCachedObject.uuid] = index;\n objects[index] = lastCachedObject; // last object goes to the activated slot and pop\n\n indicesByUUID[lastObject.uuid] = firstActiveIndex;\n objects[firstActiveIndex] = lastObject;\n objects.pop(); // accounting is done, now do the same for all bindings\n\n for (var j = 0, m = nBindings; j !== m; ++j) {\n var bindingsForPath = bindings[j],\n lastCached = bindingsForPath[firstActiveIndex],\n last = bindingsForPath[lastIndex];\n bindingsForPath[index] = lastCached;\n bindingsForPath[firstActiveIndex] = last;\n bindingsForPath.pop();\n }\n } else {\n // object is active, just swap with the last and pop\n var lastIndex = --nObjects,\n lastObject = objects[lastIndex];\n indicesByUUID[lastObject.uuid] = index;\n objects[index] = lastObject;\n objects.pop(); // accounting is done, now do the same for all bindings\n\n for (var j = 0, m = nBindings; j !== m; ++j) {\n var bindingsForPath = bindings[j];\n bindingsForPath[index] = bindingsForPath[lastIndex];\n bindingsForPath.pop();\n }\n } // cached or active\n\n } // if object is known\n\n } // for arguments\n\n\n this.nCachedObjects_ = nCachedObjects;\n },\n // Internal interface used by befriended PropertyBinding.Composite:\n subscribe_: function subscribe_(path, parsedPath) {\n // returns an array of bindings for the given path that is changed\n // according to the contained objects in the group\n var indicesByPath = this._bindingsIndicesByPath,\n index = indicesByPath[path],\n bindings = this._bindings;\n if (index !== undefined) return bindings[index];\n var paths = this._paths,\n parsedPaths = this._parsedPaths,\n objects = this._objects,\n nObjects = objects.length,\n nCachedObjects = this.nCachedObjects_,\n bindingsForPath = new Array(nObjects);\n index = bindings.length;\n indicesByPath[path] = index;\n paths.push(path);\n parsedPaths.push(parsedPath);\n bindings.push(bindingsForPath);\n\n for (var i = nCachedObjects, n = objects.length; i !== n; ++i) {\n var object = objects[i];\n bindingsForPath[i] = new PropertyBinding(object, path, parsedPath);\n }\n\n return bindingsForPath;\n },\n unsubscribe_: function unsubscribe_(path) {\n // tells the group to forget about a property path and no longer\n // update the array previously obtained with 'subscribe_'\n var indicesByPath = this._bindingsIndicesByPath,\n index = indicesByPath[path];\n\n if (index !== undefined) {\n var paths = this._paths,\n parsedPaths = this._parsedPaths,\n bindings = this._bindings,\n lastBindingsIndex = bindings.length - 1,\n lastBindings = bindings[lastBindingsIndex],\n lastBindingsPath = path[lastBindingsIndex];\n indicesByPath[lastBindingsPath] = index;\n bindings[index] = lastBindings;\n bindings.pop();\n parsedPaths[index] = parsedPaths[lastBindingsIndex];\n parsedPaths.pop();\n paths[index] = paths[lastBindingsIndex];\n paths.pop();\n }\n }\n});\n/**\n *\n * Action provided by AnimationMixer for scheduling clip playback on specific\n * objects.\n *\n * @author Ben Houston / http://clara.io/\n * @author David Sarno / http://lighthaus.us/\n * @author tschw\n *\n */\n\nfunction AnimationAction(mixer, clip, localRoot) {\n this._mixer = mixer;\n this._clip = clip;\n this._localRoot = localRoot || null;\n var tracks = clip.tracks,\n nTracks = tracks.length,\n interpolants = new Array(nTracks);\n var interpolantSettings = {\n endingStart: ZeroCurvatureEnding,\n endingEnd: ZeroCurvatureEnding\n };\n\n for (var i = 0; i !== nTracks; ++i) {\n var interpolant = tracks[i].createInterpolant(null);\n interpolants[i] = interpolant;\n interpolant.settings = interpolantSettings;\n }\n\n this._interpolantSettings = interpolantSettings;\n this._interpolants = interpolants; // bound by the mixer\n // inside: PropertyMixer (managed by the mixer)\n\n this._propertyBindings = new Array(nTracks);\n this._cacheIndex = null; // for the memory manager\n\n this._byClipCacheIndex = null; // for the memory manager\n\n this._timeScaleInterpolant = null;\n this._weightInterpolant = null;\n this.loop = LoopRepeat;\n this._loopCount = -1; // global mixer time when the action is to be started\n // it's set back to 'null' upon start of the action\n\n this._startTime = null; // scaled local time of the action\n // gets clamped or wrapped to 0..clip.duration according to loop\n\n this.time = 0;\n this.timeScale = 1;\n this._effectiveTimeScale = 1;\n this.weight = 1;\n this._effectiveWeight = 1;\n this.repetitions = Infinity; // no. of repetitions when looping\n\n this.paused = false; // true -> zero effective time scale\n\n this.enabled = true; // false -> zero effective weight\n\n this.clampWhenFinished = false; // keep feeding the last frame?\n\n this.zeroSlopeAtStart = true; // for smooth interpolation w/o separate\n\n this.zeroSlopeAtEnd = true; // clips for start, loop and end\n}\n\nObject.assign(AnimationAction.prototype, {\n // State & Scheduling\n play: function play() {\n this._mixer._activateAction(this);\n\n return this;\n },\n stop: function stop() {\n this._mixer._deactivateAction(this);\n\n return this.reset();\n },\n reset: function reset() {\n this.paused = false;\n this.enabled = true;\n this.time = 0; // restart clip\n\n this._loopCount = -1; // forget previous loops\n\n this._startTime = null; // forget scheduling\n\n return this.stopFading().stopWarping();\n },\n isRunning: function isRunning() {\n return this.enabled && !this.paused && this.timeScale !== 0 && this._startTime === null && this._mixer._isActiveAction(this);\n },\n // return true when play has been called\n isScheduled: function isScheduled() {\n return this._mixer._isActiveAction(this);\n },\n startAt: function startAt(time) {\n this._startTime = time;\n return this;\n },\n setLoop: function setLoop(mode, repetitions) {\n this.loop = mode;\n this.repetitions = repetitions;\n return this;\n },\n // Weight\n // set the weight stopping any scheduled fading\n // although .enabled = false yields an effective weight of zero, this\n // method does *not* change .enabled, because it would be confusing\n setEffectiveWeight: function setEffectiveWeight(weight) {\n this.weight = weight; // note: same logic as when updated at runtime\n\n this._effectiveWeight = this.enabled ? weight : 0;\n return this.stopFading();\n },\n // return the weight considering fading and .enabled\n getEffectiveWeight: function getEffectiveWeight() {\n return this._effectiveWeight;\n },\n fadeIn: function fadeIn(duration) {\n return this._scheduleFading(duration, 0, 1);\n },\n fadeOut: function fadeOut(duration) {\n return this._scheduleFading(duration, 1, 0);\n },\n crossFadeFrom: function crossFadeFrom(fadeOutAction, duration, warp) {\n fadeOutAction.fadeOut(duration);\n this.fadeIn(duration);\n\n if (warp) {\n var fadeInDuration = this._clip.duration,\n fadeOutDuration = fadeOutAction._clip.duration,\n startEndRatio = fadeOutDuration / fadeInDuration,\n endStartRatio = fadeInDuration / fadeOutDuration;\n fadeOutAction.warp(1.0, startEndRatio, duration);\n this.warp(endStartRatio, 1.0, duration);\n }\n\n return this;\n },\n crossFadeTo: function crossFadeTo(fadeInAction, duration, warp) {\n return fadeInAction.crossFadeFrom(this, duration, warp);\n },\n stopFading: function stopFading() {\n var weightInterpolant = this._weightInterpolant;\n\n if (weightInterpolant !== null) {\n this._weightInterpolant = null;\n\n this._mixer._takeBackControlInterpolant(weightInterpolant);\n }\n\n return this;\n },\n // Time Scale Control\n // set the time scale stopping any scheduled warping\n // although .paused = true yields an effective time scale of zero, this\n // method does *not* change .paused, because it would be confusing\n setEffectiveTimeScale: function setEffectiveTimeScale(timeScale) {\n this.timeScale = timeScale;\n this._effectiveTimeScale = this.paused ? 0 : timeScale;\n return this.stopWarping();\n },\n // return the time scale considering warping and .paused\n getEffectiveTimeScale: function getEffectiveTimeScale() {\n return this._effectiveTimeScale;\n },\n setDuration: function setDuration(duration) {\n this.timeScale = this._clip.duration / duration;\n return this.stopWarping();\n },\n syncWith: function syncWith(action) {\n this.time = action.time;\n this.timeScale = action.timeScale;\n return this.stopWarping();\n },\n halt: function halt(duration) {\n return this.warp(this._effectiveTimeScale, 0, duration);\n },\n warp: function warp(startTimeScale, endTimeScale, duration) {\n var mixer = this._mixer,\n now = mixer.time,\n interpolant = this._timeScaleInterpolant,\n timeScale = this.timeScale;\n\n if (interpolant === null) {\n interpolant = mixer._lendControlInterpolant();\n this._timeScaleInterpolant = interpolant;\n }\n\n var times = interpolant.parameterPositions,\n values = interpolant.sampleValues;\n times[0] = now;\n times[1] = now + duration;\n values[0] = startTimeScale / timeScale;\n values[1] = endTimeScale / timeScale;\n return this;\n },\n stopWarping: function stopWarping() {\n var timeScaleInterpolant = this._timeScaleInterpolant;\n\n if (timeScaleInterpolant !== null) {\n this._timeScaleInterpolant = null;\n\n this._mixer._takeBackControlInterpolant(timeScaleInterpolant);\n }\n\n return this;\n },\n // Object Accessors\n getMixer: function getMixer() {\n return this._mixer;\n },\n getClip: function getClip() {\n return this._clip;\n },\n getRoot: function getRoot() {\n return this._localRoot || this._mixer._root;\n },\n // Interna\n _update: function _update(time, deltaTime, timeDirection, accuIndex) {\n // called by the mixer\n if (!this.enabled) {\n // call ._updateWeight() to update ._effectiveWeight\n this._updateWeight(time);\n\n return;\n }\n\n var startTime = this._startTime;\n\n if (startTime !== null) {\n // check for scheduled start of action\n var timeRunning = (time - startTime) * timeDirection;\n\n if (timeRunning < 0 || timeDirection === 0) {\n return; // yet to come / don't decide when delta = 0\n } // start\n\n\n this._startTime = null; // unschedule\n\n deltaTime = timeDirection * timeRunning;\n } // apply time scale and advance time\n\n\n deltaTime *= this._updateTimeScale(time);\n\n var clipTime = this._updateTime(deltaTime); // note: _updateTime may disable the action resulting in\n // an effective weight of 0\n\n\n var weight = this._updateWeight(time);\n\n if (weight > 0) {\n var interpolants = this._interpolants;\n var propertyMixers = this._propertyBindings;\n\n for (var j = 0, m = interpolants.length; j !== m; ++j) {\n interpolants[j].evaluate(clipTime);\n propertyMixers[j].accumulate(accuIndex, weight);\n }\n }\n },\n _updateWeight: function _updateWeight(time) {\n var weight = 0;\n\n if (this.enabled) {\n weight = this.weight;\n var interpolant = this._weightInterpolant;\n\n if (interpolant !== null) {\n var interpolantValue = interpolant.evaluate(time)[0];\n weight *= interpolantValue;\n\n if (time > interpolant.parameterPositions[1]) {\n this.stopFading();\n\n if (interpolantValue === 0) {\n // faded out, disable\n this.enabled = false;\n }\n }\n }\n }\n\n this._effectiveWeight = weight;\n return weight;\n },\n _updateTimeScale: function _updateTimeScale(time) {\n var timeScale = 0;\n\n if (!this.paused) {\n timeScale = this.timeScale;\n var interpolant = this._timeScaleInterpolant;\n\n if (interpolant !== null) {\n var interpolantValue = interpolant.evaluate(time)[0];\n timeScale *= interpolantValue;\n\n if (time > interpolant.parameterPositions[1]) {\n this.stopWarping();\n\n if (timeScale === 0) {\n // motion has halted, pause\n this.paused = true;\n } else {\n // warp done - apply final time scale\n this.timeScale = timeScale;\n }\n }\n }\n }\n\n this._effectiveTimeScale = timeScale;\n return timeScale;\n },\n _updateTime: function _updateTime(deltaTime) {\n var time = this.time + deltaTime;\n var duration = this._clip.duration;\n var loop = this.loop;\n var loopCount = this._loopCount;\n var pingPong = loop === LoopPingPong;\n\n if (deltaTime === 0) {\n if (loopCount === -1) return time;\n return pingPong && (loopCount & 1) === 1 ? duration - time : time;\n }\n\n if (loop === LoopOnce) {\n if (loopCount === -1) {\n // just started\n this._loopCount = 0;\n\n this._setEndings(true, true, false);\n }\n\n handle_stop: {\n if (time >= duration) {\n time = duration;\n } else if (time < 0) {\n time = 0;\n } else {\n this.time = time;\n break handle_stop;\n }\n\n if (this.clampWhenFinished) this.paused = true;else this.enabled = false;\n this.time = time;\n\n this._mixer.dispatchEvent({\n type: 'finished',\n action: this,\n direction: deltaTime < 0 ? -1 : 1\n });\n }\n } else {\n // repetitive Repeat or PingPong\n if (loopCount === -1) {\n // just started\n if (deltaTime >= 0) {\n loopCount = 0;\n\n this._setEndings(true, this.repetitions === 0, pingPong);\n } else {\n // when looping in reverse direction, the initial\n // transition through zero counts as a repetition,\n // so leave loopCount at -1\n this._setEndings(this.repetitions === 0, true, pingPong);\n }\n }\n\n if (time >= duration || time < 0) {\n // wrap around\n var loopDelta = Math.floor(time / duration); // signed\n\n time -= duration * loopDelta;\n loopCount += Math.abs(loopDelta);\n var pending = this.repetitions - loopCount;\n\n if (pending <= 0) {\n // have to stop (switch state, clamp time, fire event)\n if (this.clampWhenFinished) this.paused = true;else this.enabled = false;\n time = deltaTime > 0 ? duration : 0;\n this.time = time;\n\n this._mixer.dispatchEvent({\n type: 'finished',\n action: this,\n direction: deltaTime > 0 ? 1 : -1\n });\n } else {\n // keep running\n if (pending === 1) {\n // entering the last round\n var atStart = deltaTime < 0;\n\n this._setEndings(atStart, !atStart, pingPong);\n } else {\n this._setEndings(false, false, pingPong);\n }\n\n this._loopCount = loopCount;\n this.time = time;\n\n this._mixer.dispatchEvent({\n type: 'loop',\n action: this,\n loopDelta: loopDelta\n });\n }\n } else {\n this.time = time;\n }\n\n if (pingPong && (loopCount & 1) === 1) {\n // invert time for the \"pong round\"\n return duration - time;\n }\n }\n\n return time;\n },\n _setEndings: function _setEndings(atStart, atEnd, pingPong) {\n var settings = this._interpolantSettings;\n\n if (pingPong) {\n settings.endingStart = ZeroSlopeEnding;\n settings.endingEnd = ZeroSlopeEnding;\n } else {\n // assuming for LoopOnce atStart == atEnd == true\n if (atStart) {\n settings.endingStart = this.zeroSlopeAtStart ? ZeroSlopeEnding : ZeroCurvatureEnding;\n } else {\n settings.endingStart = WrapAroundEnding;\n }\n\n if (atEnd) {\n settings.endingEnd = this.zeroSlopeAtEnd ? ZeroSlopeEnding : ZeroCurvatureEnding;\n } else {\n settings.endingEnd = WrapAroundEnding;\n }\n }\n },\n _scheduleFading: function _scheduleFading(duration, weightNow, weightThen) {\n var mixer = this._mixer,\n now = mixer.time,\n interpolant = this._weightInterpolant;\n\n if (interpolant === null) {\n interpolant = mixer._lendControlInterpolant();\n this._weightInterpolant = interpolant;\n }\n\n var times = interpolant.parameterPositions,\n values = interpolant.sampleValues;\n times[0] = now;\n values[0] = weightNow;\n times[1] = now + duration;\n values[1] = weightThen;\n return this;\n }\n});\n/**\n *\n * Player for AnimationClips.\n *\n *\n * @author Ben Houston / http://clara.io/\n * @author David Sarno / http://lighthaus.us/\n * @author tschw\n */\n\nfunction AnimationMixer(root) {\n this._root = root;\n\n this._initMemoryManager();\n\n this._accuIndex = 0;\n this.time = 0;\n this.timeScale = 1.0;\n}\n\nAnimationMixer.prototype = Object.assign(Object.create(EventDispatcher.prototype), {\n constructor: AnimationMixer,\n _bindAction: function _bindAction(action, prototypeAction) {\n var root = action._localRoot || this._root,\n tracks = action._clip.tracks,\n nTracks = tracks.length,\n bindings = action._propertyBindings,\n interpolants = action._interpolants,\n rootUuid = root.uuid,\n bindingsByRoot = this._bindingsByRootAndName,\n bindingsByName = bindingsByRoot[rootUuid];\n\n if (bindingsByName === undefined) {\n bindingsByName = {};\n bindingsByRoot[rootUuid] = bindingsByName;\n }\n\n for (var i = 0; i !== nTracks; ++i) {\n var track = tracks[i],\n trackName = track.name,\n binding = bindingsByName[trackName];\n\n if (binding !== undefined) {\n bindings[i] = binding;\n } else {\n binding = bindings[i];\n\n if (binding !== undefined) {\n // existing binding, make sure the cache knows\n if (binding._cacheIndex === null) {\n ++binding.referenceCount;\n\n this._addInactiveBinding(binding, rootUuid, trackName);\n }\n\n continue;\n }\n\n var path = prototypeAction && prototypeAction._propertyBindings[i].binding.parsedPath;\n binding = new PropertyMixer(PropertyBinding.create(root, trackName, path), track.ValueTypeName, track.getValueSize());\n ++binding.referenceCount;\n\n this._addInactiveBinding(binding, rootUuid, trackName);\n\n bindings[i] = binding;\n }\n\n interpolants[i].resultBuffer = binding.buffer;\n }\n },\n _activateAction: function _activateAction(action) {\n if (!this._isActiveAction(action)) {\n if (action._cacheIndex === null) {\n // this action has been forgotten by the cache, but the user\n // appears to be still using it -> rebind\n var rootUuid = (action._localRoot || this._root).uuid,\n clipUuid = action._clip.uuid,\n actionsForClip = this._actionsByClip[clipUuid];\n\n this._bindAction(action, actionsForClip && actionsForClip.knownActions[0]);\n\n this._addInactiveAction(action, clipUuid, rootUuid);\n }\n\n var bindings = action._propertyBindings; // increment reference counts / sort out state\n\n for (var i = 0, n = bindings.length; i !== n; ++i) {\n var binding = bindings[i];\n\n if (binding.useCount++ === 0) {\n this._lendBinding(binding);\n\n binding.saveOriginalState();\n }\n }\n\n this._lendAction(action);\n }\n },\n _deactivateAction: function _deactivateAction(action) {\n if (this._isActiveAction(action)) {\n var bindings = action._propertyBindings; // decrement reference counts / sort out state\n\n for (var i = 0, n = bindings.length; i !== n; ++i) {\n var binding = bindings[i];\n\n if (--binding.useCount === 0) {\n binding.restoreOriginalState();\n\n this._takeBackBinding(binding);\n }\n }\n\n this._takeBackAction(action);\n }\n },\n // Memory manager\n _initMemoryManager: function _initMemoryManager() {\n this._actions = []; // 'nActiveActions' followed by inactive ones\n\n this._nActiveActions = 0;\n this._actionsByClip = {}; // inside:\n // {\n // \tknownActions: Array< AnimationAction > - used as prototypes\n // \tactionByRoot: AnimationAction - lookup\n // }\n\n this._bindings = []; // 'nActiveBindings' followed by inactive ones\n\n this._nActiveBindings = 0;\n this._bindingsByRootAndName = {}; // inside: Map< name, PropertyMixer >\n\n this._controlInterpolants = []; // same game as above\n\n this._nActiveControlInterpolants = 0;\n var scope = this;\n this.stats = {\n actions: {\n get total() {\n return scope._actions.length;\n },\n\n get inUse() {\n return scope._nActiveActions;\n }\n\n },\n bindings: {\n get total() {\n return scope._bindings.length;\n },\n\n get inUse() {\n return scope._nActiveBindings;\n }\n\n },\n controlInterpolants: {\n get total() {\n return scope._controlInterpolants.length;\n },\n\n get inUse() {\n return scope._nActiveControlInterpolants;\n }\n\n }\n };\n },\n // Memory management for AnimationAction objects\n _isActiveAction: function _isActiveAction(action) {\n var index = action._cacheIndex;\n return index !== null && index < this._nActiveActions;\n },\n _addInactiveAction: function _addInactiveAction(action, clipUuid, rootUuid) {\n var actions = this._actions,\n actionsByClip = this._actionsByClip,\n actionsForClip = actionsByClip[clipUuid];\n\n if (actionsForClip === undefined) {\n actionsForClip = {\n knownActions: [action],\n actionByRoot: {}\n };\n action._byClipCacheIndex = 0;\n actionsByClip[clipUuid] = actionsForClip;\n } else {\n var knownActions = actionsForClip.knownActions;\n action._byClipCacheIndex = knownActions.length;\n knownActions.push(action);\n }\n\n action._cacheIndex = actions.length;\n actions.push(action);\n actionsForClip.actionByRoot[rootUuid] = action;\n },\n _removeInactiveAction: function _removeInactiveAction(action) {\n var actions = this._actions,\n lastInactiveAction = actions[actions.length - 1],\n cacheIndex = action._cacheIndex;\n lastInactiveAction._cacheIndex = cacheIndex;\n actions[cacheIndex] = lastInactiveAction;\n actions.pop();\n action._cacheIndex = null;\n var clipUuid = action._clip.uuid,\n actionsByClip = this._actionsByClip,\n actionsForClip = actionsByClip[clipUuid],\n knownActionsForClip = actionsForClip.knownActions,\n lastKnownAction = knownActionsForClip[knownActionsForClip.length - 1],\n byClipCacheIndex = action._byClipCacheIndex;\n lastKnownAction._byClipCacheIndex = byClipCacheIndex;\n knownActionsForClip[byClipCacheIndex] = lastKnownAction;\n knownActionsForClip.pop();\n action._byClipCacheIndex = null;\n var actionByRoot = actionsForClip.actionByRoot,\n rootUuid = (action._localRoot || this._root).uuid;\n delete actionByRoot[rootUuid];\n\n if (knownActionsForClip.length === 0) {\n delete actionsByClip[clipUuid];\n }\n\n this._removeInactiveBindingsForAction(action);\n },\n _removeInactiveBindingsForAction: function _removeInactiveBindingsForAction(action) {\n var bindings = action._propertyBindings;\n\n for (var i = 0, n = bindings.length; i !== n; ++i) {\n var binding = bindings[i];\n\n if (--binding.referenceCount === 0) {\n this._removeInactiveBinding(binding);\n }\n }\n },\n _lendAction: function _lendAction(action) {\n // [ active actions | inactive actions ]\n // [ active actions >| inactive actions ]\n // s a\n // <-swap->\n // a s\n var actions = this._actions,\n prevIndex = action._cacheIndex,\n lastActiveIndex = this._nActiveActions++,\n firstInactiveAction = actions[lastActiveIndex];\n action._cacheIndex = lastActiveIndex;\n actions[lastActiveIndex] = action;\n firstInactiveAction._cacheIndex = prevIndex;\n actions[prevIndex] = firstInactiveAction;\n },\n _takeBackAction: function _takeBackAction(action) {\n // [ active actions | inactive actions ]\n // [ active actions |< inactive actions ]\n // a s\n // <-swap->\n // s a\n var actions = this._actions,\n prevIndex = action._cacheIndex,\n firstInactiveIndex = --this._nActiveActions,\n lastActiveAction = actions[firstInactiveIndex];\n action._cacheIndex = firstInactiveIndex;\n actions[firstInactiveIndex] = action;\n lastActiveAction._cacheIndex = prevIndex;\n actions[prevIndex] = lastActiveAction;\n },\n // Memory management for PropertyMixer objects\n _addInactiveBinding: function _addInactiveBinding(binding, rootUuid, trackName) {\n var bindingsByRoot = this._bindingsByRootAndName,\n bindingByName = bindingsByRoot[rootUuid],\n bindings = this._bindings;\n\n if (bindingByName === undefined) {\n bindingByName = {};\n bindingsByRoot[rootUuid] = bindingByName;\n }\n\n bindingByName[trackName] = binding;\n binding._cacheIndex = bindings.length;\n bindings.push(binding);\n },\n _removeInactiveBinding: function _removeInactiveBinding(binding) {\n var bindings = this._bindings,\n propBinding = binding.binding,\n rootUuid = propBinding.rootNode.uuid,\n trackName = propBinding.path,\n bindingsByRoot = this._bindingsByRootAndName,\n bindingByName = bindingsByRoot[rootUuid],\n lastInactiveBinding = bindings[bindings.length - 1],\n cacheIndex = binding._cacheIndex;\n lastInactiveBinding._cacheIndex = cacheIndex;\n bindings[cacheIndex] = lastInactiveBinding;\n bindings.pop();\n delete bindingByName[trackName];\n\n if (Object.keys(bindingByName).length === 0) {\n delete bindingsByRoot[rootUuid];\n }\n },\n _lendBinding: function _lendBinding(binding) {\n var bindings = this._bindings,\n prevIndex = binding._cacheIndex,\n lastActiveIndex = this._nActiveBindings++,\n firstInactiveBinding = bindings[lastActiveIndex];\n binding._cacheIndex = lastActiveIndex;\n bindings[lastActiveIndex] = binding;\n firstInactiveBinding._cacheIndex = prevIndex;\n bindings[prevIndex] = firstInactiveBinding;\n },\n _takeBackBinding: function _takeBackBinding(binding) {\n var bindings = this._bindings,\n prevIndex = binding._cacheIndex,\n firstInactiveIndex = --this._nActiveBindings,\n lastActiveBinding = bindings[firstInactiveIndex];\n binding._cacheIndex = firstInactiveIndex;\n bindings[firstInactiveIndex] = binding;\n lastActiveBinding._cacheIndex = prevIndex;\n bindings[prevIndex] = lastActiveBinding;\n },\n // Memory management of Interpolants for weight and time scale\n _lendControlInterpolant: function _lendControlInterpolant() {\n var interpolants = this._controlInterpolants,\n lastActiveIndex = this._nActiveControlInterpolants++,\n interpolant = interpolants[lastActiveIndex];\n\n if (interpolant === undefined) {\n interpolant = new LinearInterpolant(new Float32Array(2), new Float32Array(2), 1, this._controlInterpolantsResultBuffer);\n interpolant.__cacheIndex = lastActiveIndex;\n interpolants[lastActiveIndex] = interpolant;\n }\n\n return interpolant;\n },\n _takeBackControlInterpolant: function _takeBackControlInterpolant(interpolant) {\n var interpolants = this._controlInterpolants,\n prevIndex = interpolant.__cacheIndex,\n firstInactiveIndex = --this._nActiveControlInterpolants,\n lastActiveInterpolant = interpolants[firstInactiveIndex];\n interpolant.__cacheIndex = firstInactiveIndex;\n interpolants[firstInactiveIndex] = interpolant;\n lastActiveInterpolant.__cacheIndex = prevIndex;\n interpolants[prevIndex] = lastActiveInterpolant;\n },\n _controlInterpolantsResultBuffer: new Float32Array(1),\n // return an action for a clip optionally using a custom root target\n // object (this method allocates a lot of dynamic memory in case a\n // previously unknown clip/root combination is specified)\n clipAction: function clipAction(clip, optionalRoot) {\n var root = optionalRoot || this._root,\n rootUuid = root.uuid,\n clipObject = typeof clip === 'string' ? AnimationClip.findByName(root, clip) : clip,\n clipUuid = clipObject !== null ? clipObject.uuid : clip,\n actionsForClip = this._actionsByClip[clipUuid],\n prototypeAction = null;\n\n if (actionsForClip !== undefined) {\n var existingAction = actionsForClip.actionByRoot[rootUuid];\n\n if (existingAction !== undefined) {\n return existingAction;\n } // we know the clip, so we don't have to parse all\n // the bindings again but can just copy\n\n\n prototypeAction = actionsForClip.knownActions[0]; // also, take the clip from the prototype action\n\n if (clipObject === null) clipObject = prototypeAction._clip;\n } // clip must be known when specified via string\n\n\n if (clipObject === null) return null; // allocate all resources required to run it\n\n var newAction = new AnimationAction(this, clipObject, optionalRoot);\n\n this._bindAction(newAction, prototypeAction); // and make the action known to the memory manager\n\n\n this._addInactiveAction(newAction, clipUuid, rootUuid);\n\n return newAction;\n },\n // get an existing action\n existingAction: function existingAction(clip, optionalRoot) {\n var root = optionalRoot || this._root,\n rootUuid = root.uuid,\n clipObject = typeof clip === 'string' ? AnimationClip.findByName(root, clip) : clip,\n clipUuid = clipObject ? clipObject.uuid : clip,\n actionsForClip = this._actionsByClip[clipUuid];\n\n if (actionsForClip !== undefined) {\n return actionsForClip.actionByRoot[rootUuid] || null;\n }\n\n return null;\n },\n // deactivates all previously scheduled actions\n stopAllAction: function stopAllAction() {\n var actions = this._actions,\n nActions = this._nActiveActions,\n bindings = this._bindings,\n nBindings = this._nActiveBindings;\n this._nActiveActions = 0;\n this._nActiveBindings = 0;\n\n for (var i = 0; i !== nActions; ++i) {\n actions[i].reset();\n }\n\n for (var i = 0; i !== nBindings; ++i) {\n bindings[i].useCount = 0;\n }\n\n return this;\n },\n // advance the time and update apply the animation\n update: function update(deltaTime) {\n deltaTime *= this.timeScale;\n var actions = this._actions,\n nActions = this._nActiveActions,\n time = this.time += deltaTime,\n timeDirection = Math.sign(deltaTime),\n accuIndex = this._accuIndex ^= 1; // run active actions\n\n for (var i = 0; i !== nActions; ++i) {\n var action = actions[i];\n\n action._update(time, deltaTime, timeDirection, accuIndex);\n } // update scene graph\n\n\n var bindings = this._bindings,\n nBindings = this._nActiveBindings;\n\n for (var i = 0; i !== nBindings; ++i) {\n bindings[i].apply(accuIndex);\n }\n\n return this;\n },\n // Allows you to seek to a specific time in an animation.\n setTime: function setTime(timeInSeconds) {\n this.time = 0; // Zero out time attribute for AnimationMixer object;\n\n for (var i = 0; i < this._actions.length; i++) {\n this._actions[i].time = 0; // Zero out time attribute for all associated AnimationAction objects.\n }\n\n return this.update(timeInSeconds); // Update used to set exact time. Returns \"this\" AnimationMixer object.\n },\n // return this mixer's root target object\n getRoot: function getRoot() {\n return this._root;\n },\n // free all resources specific to a particular clip\n uncacheClip: function uncacheClip(clip) {\n var actions = this._actions,\n clipUuid = clip.uuid,\n actionsByClip = this._actionsByClip,\n actionsForClip = actionsByClip[clipUuid];\n\n if (actionsForClip !== undefined) {\n // note: just calling _removeInactiveAction would mess up the\n // iteration state and also require updating the state we can\n // just throw away\n var actionsToRemove = actionsForClip.knownActions;\n\n for (var i = 0, n = actionsToRemove.length; i !== n; ++i) {\n var action = actionsToRemove[i];\n\n this._deactivateAction(action);\n\n var cacheIndex = action._cacheIndex,\n lastInactiveAction = actions[actions.length - 1];\n action._cacheIndex = null;\n action._byClipCacheIndex = null;\n lastInactiveAction._cacheIndex = cacheIndex;\n actions[cacheIndex] = lastInactiveAction;\n actions.pop();\n\n this._removeInactiveBindingsForAction(action);\n }\n\n delete actionsByClip[clipUuid];\n }\n },\n // free all resources specific to a particular root target object\n uncacheRoot: function uncacheRoot(root) {\n var rootUuid = root.uuid,\n actionsByClip = this._actionsByClip;\n\n for (var clipUuid in actionsByClip) {\n var actionByRoot = actionsByClip[clipUuid].actionByRoot,\n action = actionByRoot[rootUuid];\n\n if (action !== undefined) {\n this._deactivateAction(action);\n\n this._removeInactiveAction(action);\n }\n }\n\n var bindingsByRoot = this._bindingsByRootAndName,\n bindingByName = bindingsByRoot[rootUuid];\n\n if (bindingByName !== undefined) {\n for (var trackName in bindingByName) {\n var binding = bindingByName[trackName];\n binding.restoreOriginalState();\n\n this._removeInactiveBinding(binding);\n }\n }\n },\n // remove a targeted clip from the cache\n uncacheAction: function uncacheAction(clip, optionalRoot) {\n var action = this.existingAction(clip, optionalRoot);\n\n if (action !== null) {\n this._deactivateAction(action);\n\n this._removeInactiveAction(action);\n }\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction Uniform(value) {\n if (typeof value === 'string') {\n console.warn('THREE.Uniform: Type parameter is no longer needed.');\n value = arguments[1];\n }\n\n this.value = value;\n}\n\nUniform.prototype.clone = function () {\n return new Uniform(this.value.clone === undefined ? this.value : this.value.clone());\n};\n/**\n * @author benaadams / https://twitter.com/ben_a_adams\n */\n\n\nfunction InstancedInterleavedBuffer(array, stride, meshPerAttribute) {\n InterleavedBuffer.call(this, array, stride);\n this.meshPerAttribute = meshPerAttribute || 1;\n}\n\nInstancedInterleavedBuffer.prototype = Object.assign(Object.create(InterleavedBuffer.prototype), {\n constructor: InstancedInterleavedBuffer,\n isInstancedInterleavedBuffer: true,\n copy: function copy(source) {\n InterleavedBuffer.prototype.copy.call(this, source);\n this.meshPerAttribute = source.meshPerAttribute;\n return this;\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author bhouston / http://clara.io/\n * @author stephomi / http://stephaneginier.com/\n */\n\nfunction Raycaster(origin, direction, near, far) {\n this.ray = new Ray(origin, direction); // direction is assumed to be normalized (for accurate distance calculations)\n\n this.near = near || 0;\n this.far = far || Infinity;\n this.camera = null;\n this.params = {\n Mesh: {},\n Line: {},\n LOD: {},\n Points: {\n threshold: 1\n },\n Sprite: {}\n };\n Object.defineProperties(this.params, {\n PointCloud: {\n get: function get() {\n console.warn('THREE.Raycaster: params.PointCloud has been renamed to params.Points.');\n return this.Points;\n }\n }\n });\n}\n\nfunction ascSort(a, b) {\n return a.distance - b.distance;\n}\n\nfunction _intersectObject(object, raycaster, intersects, recursive) {\n if (object.visible === false) return;\n object.raycast(raycaster, intersects);\n\n if (recursive === true) {\n var children = object.children;\n\n for (var i = 0, l = children.length; i < l; i++) {\n _intersectObject(children[i], raycaster, intersects, true);\n }\n }\n}\n\nObject.assign(Raycaster.prototype, {\n linePrecision: 1,\n set: function set(origin, direction) {\n // direction is assumed to be normalized (for accurate distance calculations)\n this.ray.set(origin, direction);\n },\n setFromCamera: function setFromCamera(coords, camera) {\n if (camera && camera.isPerspectiveCamera) {\n this.ray.origin.setFromMatrixPosition(camera.matrixWorld);\n this.ray.direction.set(coords.x, coords.y, 0.5).unproject(camera).sub(this.ray.origin).normalize();\n this.camera = camera;\n } else if (camera && camera.isOrthographicCamera) {\n this.ray.origin.set(coords.x, coords.y, (camera.near + camera.far) / (camera.near - camera.far)).unproject(camera); // set origin in plane of camera\n\n this.ray.direction.set(0, 0, -1).transformDirection(camera.matrixWorld);\n this.camera = camera;\n } else {\n console.error('THREE.Raycaster: Unsupported camera type.');\n }\n },\n intersectObject: function intersectObject(object, recursive, optionalTarget) {\n var intersects = optionalTarget || [];\n\n _intersectObject(object, this, intersects, recursive);\n\n intersects.sort(ascSort);\n return intersects;\n },\n intersectObjects: function intersectObjects(objects, recursive, optionalTarget) {\n var intersects = optionalTarget || [];\n\n if (Array.isArray(objects) === false) {\n console.warn('THREE.Raycaster.intersectObjects: objects is not an Array.');\n return intersects;\n }\n\n for (var i = 0, l = objects.length; i < l; i++) {\n _intersectObject(objects[i], this, intersects, recursive);\n }\n\n intersects.sort(ascSort);\n return intersects;\n }\n});\n/**\n * @author bhouston / http://clara.io\n * @author WestLangley / http://github.com/WestLangley\n *\n * Ref: https://en.wikipedia.org/wiki/Spherical_coordinate_system\n *\n * The polar angle (phi) is measured from the positive y-axis. The positive y-axis is up.\n * The azimuthal angle (theta) is measured from the positive z-axis.\n */\n\nfunction Spherical(radius, phi, theta) {\n this.radius = radius !== undefined ? radius : 1.0;\n this.phi = phi !== undefined ? phi : 0; // polar angle\n\n this.theta = theta !== undefined ? theta : 0; // azimuthal angle\n\n return this;\n}\n\nObject.assign(Spherical.prototype, {\n set: function set(radius, phi, theta) {\n this.radius = radius;\n this.phi = phi;\n this.theta = theta;\n return this;\n },\n clone: function clone() {\n return new this.constructor().copy(this);\n },\n copy: function copy(other) {\n this.radius = other.radius;\n this.phi = other.phi;\n this.theta = other.theta;\n return this;\n },\n // restrict phi to be betwee EPS and PI-EPS\n makeSafe: function makeSafe() {\n var EPS = 0.000001;\n this.phi = Math.max(EPS, Math.min(Math.PI - EPS, this.phi));\n return this;\n },\n setFromVector3: function setFromVector3(v) {\n return this.setFromCartesianCoords(v.x, v.y, v.z);\n },\n setFromCartesianCoords: function setFromCartesianCoords(x, y, z) {\n this.radius = Math.sqrt(x * x + y * y + z * z);\n\n if (this.radius === 0) {\n this.theta = 0;\n this.phi = 0;\n } else {\n this.theta = Math.atan2(x, z);\n this.phi = Math.acos(_Math.clamp(y / this.radius, -1, 1));\n }\n\n return this;\n }\n});\n/**\n * @author Mugen87 / https://github.com/Mugen87\n *\n * Ref: https://en.wikipedia.org/wiki/Cylindrical_coordinate_system\n *\n */\n\nfunction Cylindrical(radius, theta, y) {\n this.radius = radius !== undefined ? radius : 1.0; // distance from the origin to a point in the x-z plane\n\n this.theta = theta !== undefined ? theta : 0; // counterclockwise angle in the x-z plane measured in radians from the positive z-axis\n\n this.y = y !== undefined ? y : 0; // height above the x-z plane\n\n return this;\n}\n\nObject.assign(Cylindrical.prototype, {\n set: function set(radius, theta, y) {\n this.radius = radius;\n this.theta = theta;\n this.y = y;\n return this;\n },\n clone: function clone() {\n return new this.constructor().copy(this);\n },\n copy: function copy(other) {\n this.radius = other.radius;\n this.theta = other.theta;\n this.y = other.y;\n return this;\n },\n setFromVector3: function setFromVector3(v) {\n return this.setFromCartesianCoords(v.x, v.y, v.z);\n },\n setFromCartesianCoords: function setFromCartesianCoords(x, y, z) {\n this.radius = Math.sqrt(x * x + z * z);\n this.theta = Math.atan2(x, z);\n this.y = y;\n return this;\n }\n});\n/**\n * @author bhouston / http://clara.io\n */\n\nvar _vector$6 = new Vector2();\n\nfunction Box2(min, max) {\n this.min = min !== undefined ? min : new Vector2(+Infinity, +Infinity);\n this.max = max !== undefined ? max : new Vector2(-Infinity, -Infinity);\n}\n\nObject.assign(Box2.prototype, {\n set: function set(min, max) {\n this.min.copy(min);\n this.max.copy(max);\n return this;\n },\n setFromPoints: function setFromPoints(points) {\n this.makeEmpty();\n\n for (var i = 0, il = points.length; i < il; i++) {\n this.expandByPoint(points[i]);\n }\n\n return this;\n },\n setFromCenterAndSize: function setFromCenterAndSize(center, size) {\n var halfSize = _vector$6.copy(size).multiplyScalar(0.5);\n\n this.min.copy(center).sub(halfSize);\n this.max.copy(center).add(halfSize);\n return this;\n },\n clone: function clone() {\n return new this.constructor().copy(this);\n },\n copy: function copy(box) {\n this.min.copy(box.min);\n this.max.copy(box.max);\n return this;\n },\n makeEmpty: function makeEmpty() {\n this.min.x = this.min.y = +Infinity;\n this.max.x = this.max.y = -Infinity;\n return this;\n },\n isEmpty: function isEmpty() {\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 || this.max.y < this.min.y;\n },\n getCenter: function getCenter(target) {\n if (target === undefined) {\n console.warn('THREE.Box2: .getCenter() target is now required');\n target = new Vector2();\n }\n\n return this.isEmpty() ? target.set(0, 0) : target.addVectors(this.min, this.max).multiplyScalar(0.5);\n },\n getSize: function getSize(target) {\n if (target === undefined) {\n console.warn('THREE.Box2: .getSize() target is now required');\n target = new Vector2();\n }\n\n return this.isEmpty() ? target.set(0, 0) : target.subVectors(this.max, this.min);\n },\n expandByPoint: function expandByPoint(point) {\n this.min.min(point);\n this.max.max(point);\n return this;\n },\n expandByVector: function expandByVector(vector) {\n this.min.sub(vector);\n this.max.add(vector);\n return this;\n },\n expandByScalar: function expandByScalar(scalar) {\n this.min.addScalar(-scalar);\n this.max.addScalar(scalar);\n return this;\n },\n containsPoint: function containsPoint(point) {\n return point.x < this.min.x || point.x > this.max.x || point.y < this.min.y || point.y > this.max.y ? false : true;\n },\n containsBox: function containsBox(box) {\n return this.min.x <= box.min.x && box.max.x <= this.max.x && this.min.y <= box.min.y && box.max.y <= this.max.y;\n },\n getParameter: function getParameter(point, target) {\n // This can potentially have a divide by zero if the box\n // has a size dimension of 0.\n if (target === undefined) {\n console.warn('THREE.Box2: .getParameter() target is now required');\n target = new Vector2();\n }\n\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));\n },\n intersectsBox: function intersectsBox(box) {\n // using 4 splitting planes to rule out intersections\n return box.max.x < this.min.x || box.min.x > this.max.x || box.max.y < this.min.y || box.min.y > this.max.y ? false : true;\n },\n clampPoint: function clampPoint(point, target) {\n if (target === undefined) {\n console.warn('THREE.Box2: .clampPoint() target is now required');\n target = new Vector2();\n }\n\n return target.copy(point).clamp(this.min, this.max);\n },\n distanceToPoint: function distanceToPoint(point) {\n var clampedPoint = _vector$6.copy(point).clamp(this.min, this.max);\n\n return clampedPoint.sub(point).length();\n },\n intersect: function intersect(box) {\n this.min.max(box.min);\n this.max.min(box.max);\n return this;\n },\n union: function union(box) {\n this.min.min(box.min);\n this.max.max(box.max);\n return this;\n },\n translate: function translate(offset) {\n this.min.add(offset);\n this.max.add(offset);\n return this;\n },\n equals: function equals(box) {\n return box.min.equals(this.min) && box.max.equals(this.max);\n }\n});\n/**\n * @author bhouston / http://clara.io\n */\n\nvar _startP = new Vector3();\n\nvar _startEnd = new Vector3();\n\nfunction Line3(start, end) {\n this.start = start !== undefined ? start : new Vector3();\n this.end = end !== undefined ? end : new Vector3();\n}\n\nObject.assign(Line3.prototype, {\n set: function set(start, end) {\n this.start.copy(start);\n this.end.copy(end);\n return this;\n },\n clone: function clone() {\n return new this.constructor().copy(this);\n },\n copy: function copy(line) {\n this.start.copy(line.start);\n this.end.copy(line.end);\n return this;\n },\n getCenter: function getCenter(target) {\n if (target === undefined) {\n console.warn('THREE.Line3: .getCenter() target is now required');\n target = new Vector3();\n }\n\n return target.addVectors(this.start, this.end).multiplyScalar(0.5);\n },\n delta: function delta(target) {\n if (target === undefined) {\n console.warn('THREE.Line3: .delta() target is now required');\n target = new Vector3();\n }\n\n return target.subVectors(this.end, this.start);\n },\n distanceSq: function distanceSq() {\n return this.start.distanceToSquared(this.end);\n },\n distance: function distance() {\n return this.start.distanceTo(this.end);\n },\n at: function at(t, target) {\n if (target === undefined) {\n console.warn('THREE.Line3: .at() target is now required');\n target = new Vector3();\n }\n\n return this.delta(target).multiplyScalar(t).add(this.start);\n },\n closestPointToPointParameter: function closestPointToPointParameter(point, clampToLine) {\n _startP.subVectors(point, this.start);\n\n _startEnd.subVectors(this.end, this.start);\n\n var startEnd2 = _startEnd.dot(_startEnd);\n\n var startEnd_startP = _startEnd.dot(_startP);\n\n var t = startEnd_startP / startEnd2;\n\n if (clampToLine) {\n t = _Math.clamp(t, 0, 1);\n }\n\n return t;\n },\n closestPointToPoint: function closestPointToPoint(point, clampToLine, target) {\n var t = this.closestPointToPointParameter(point, clampToLine);\n\n if (target === undefined) {\n console.warn('THREE.Line3: .closestPointToPoint() target is now required');\n target = new Vector3();\n }\n\n return this.delta(target).multiplyScalar(t).add(this.start);\n },\n applyMatrix4: function applyMatrix4(matrix) {\n this.start.applyMatrix4(matrix);\n this.end.applyMatrix4(matrix);\n return this;\n },\n equals: function equals(line) {\n return line.start.equals(this.start) && line.end.equals(this.end);\n }\n});\n/**\n * @author alteredq / http://alteredqualia.com/\n */\n\nfunction ImmediateRenderObject(material) {\n Object3D.call(this);\n this.material = material;\n\n this.render = function ()\n /* renderCallback */\n {};\n}\n\nImmediateRenderObject.prototype = Object.create(Object3D.prototype);\nImmediateRenderObject.prototype.constructor = ImmediateRenderObject;\nImmediateRenderObject.prototype.isImmediateRenderObject = true;\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author WestLangley / http://github.com/WestLangley\n */\n\nvar _v1$5 = new Vector3();\n\nvar _v2$3 = new Vector3();\n\nvar _normalMatrix$1 = new Matrix3();\n\nvar _keys = ['a', 'b', 'c'];\n\nfunction VertexNormalsHelper(object, size, hex, linewidth) {\n this.object = object;\n this.size = size !== undefined ? size : 1;\n var color = hex !== undefined ? hex : 0xff0000;\n var width = linewidth !== undefined ? linewidth : 1; //\n\n var nNormals = 0;\n var objGeometry = this.object.geometry;\n\n if (objGeometry && objGeometry.isGeometry) {\n nNormals = objGeometry.faces.length * 3;\n } else if (objGeometry && objGeometry.isBufferGeometry) {\n nNormals = objGeometry.attributes.normal.count;\n } //\n\n\n var geometry = new BufferGeometry();\n var positions = new Float32BufferAttribute(nNormals * 2 * 3, 3);\n geometry.setAttribute('position', positions);\n LineSegments.call(this, geometry, new LineBasicMaterial({\n color: color,\n linewidth: width\n })); //\n\n this.matrixAutoUpdate = false;\n this.update();\n}\n\nVertexNormalsHelper.prototype = Object.create(LineSegments.prototype);\nVertexNormalsHelper.prototype.constructor = VertexNormalsHelper;\n\nVertexNormalsHelper.prototype.update = function () {\n this.object.updateMatrixWorld(true);\n\n _normalMatrix$1.getNormalMatrix(this.object.matrixWorld);\n\n var matrixWorld = this.object.matrixWorld;\n var position = this.geometry.attributes.position; //\n\n var objGeometry = this.object.geometry;\n\n if (objGeometry && objGeometry.isGeometry) {\n var vertices = objGeometry.vertices;\n var faces = objGeometry.faces;\n var idx = 0;\n\n for (var i = 0, l = faces.length; i < l; i++) {\n var face = faces[i];\n\n for (var j = 0, jl = face.vertexNormals.length; j < jl; j++) {\n var vertex = vertices[face[_keys[j]]];\n var normal = face.vertexNormals[j];\n\n _v1$5.copy(vertex).applyMatrix4(matrixWorld);\n\n _v2$3.copy(normal).applyMatrix3(_normalMatrix$1).normalize().multiplyScalar(this.size).add(_v1$5);\n\n position.setXYZ(idx, _v1$5.x, _v1$5.y, _v1$5.z);\n idx = idx + 1;\n position.setXYZ(idx, _v2$3.x, _v2$3.y, _v2$3.z);\n idx = idx + 1;\n }\n }\n } else if (objGeometry && objGeometry.isBufferGeometry) {\n var objPos = objGeometry.attributes.position;\n var objNorm = objGeometry.attributes.normal;\n var idx = 0; // for simplicity, ignore index and drawcalls, and render every normal\n\n for (var j = 0, jl = objPos.count; j < jl; j++) {\n _v1$5.set(objPos.getX(j), objPos.getY(j), objPos.getZ(j)).applyMatrix4(matrixWorld);\n\n _v2$3.set(objNorm.getX(j), objNorm.getY(j), objNorm.getZ(j));\n\n _v2$3.applyMatrix3(_normalMatrix$1).normalize().multiplyScalar(this.size).add(_v1$5);\n\n position.setXYZ(idx, _v1$5.x, _v1$5.y, _v1$5.z);\n idx = idx + 1;\n position.setXYZ(idx, _v2$3.x, _v2$3.y, _v2$3.z);\n idx = idx + 1;\n }\n }\n\n position.needsUpdate = true;\n};\n/**\n * @author alteredq / http://alteredqualia.com/\n * @author mrdoob / http://mrdoob.com/\n * @author WestLangley / http://github.com/WestLangley\n */\n\n\nvar _vector$7 = new Vector3();\n\nfunction SpotLightHelper(light, color) {\n Object3D.call(this);\n this.light = light;\n this.light.updateMatrixWorld();\n this.matrix = light.matrixWorld;\n this.matrixAutoUpdate = false;\n this.color = color;\n var geometry = new BufferGeometry();\n var positions = [0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, -1, 1];\n\n for (var i = 0, j = 1, l = 32; i < l; i++, j++) {\n var p1 = i / l * Math.PI * 2;\n var p2 = j / l * Math.PI * 2;\n positions.push(Math.cos(p1), Math.sin(p1), 1, Math.cos(p2), Math.sin(p2), 1);\n }\n\n geometry.setAttribute('position', new Float32BufferAttribute(positions, 3));\n var material = new LineBasicMaterial({\n fog: false\n });\n this.cone = new LineSegments(geometry, material);\n this.add(this.cone);\n this.update();\n}\n\nSpotLightHelper.prototype = Object.create(Object3D.prototype);\nSpotLightHelper.prototype.constructor = SpotLightHelper;\n\nSpotLightHelper.prototype.dispose = function () {\n this.cone.geometry.dispose();\n this.cone.material.dispose();\n};\n\nSpotLightHelper.prototype.update = function () {\n this.light.updateMatrixWorld();\n var coneLength = this.light.distance ? this.light.distance : 1000;\n var coneWidth = coneLength * Math.tan(this.light.angle);\n this.cone.scale.set(coneWidth, coneWidth, coneLength);\n\n _vector$7.setFromMatrixPosition(this.light.target.matrixWorld);\n\n this.cone.lookAt(_vector$7);\n\n if (this.color !== undefined) {\n this.cone.material.color.set(this.color);\n } else {\n this.cone.material.color.copy(this.light.color);\n }\n};\n/**\n * @author Sean Griffin / http://twitter.com/sgrif\n * @author Michael Guerrero / http://realitymeltdown.com\n * @author mrdoob / http://mrdoob.com/\n * @author ikerr / http://verold.com\n * @author Mugen87 / https://github.com/Mugen87\n */\n\n\nvar _vector$8 = new Vector3();\n\nvar _boneMatrix = new Matrix4();\n\nvar _matrixWorldInv = new Matrix4();\n\nfunction getBoneList(object) {\n var boneList = [];\n\n if (object && object.isBone) {\n boneList.push(object);\n }\n\n for (var i = 0; i < object.children.length; i++) {\n boneList.push.apply(boneList, getBoneList(object.children[i]));\n }\n\n return boneList;\n}\n\nfunction SkeletonHelper(object) {\n var bones = getBoneList(object);\n var geometry = new BufferGeometry();\n var vertices = [];\n var colors = [];\n var color1 = new Color(0, 0, 1);\n var color2 = new Color(0, 1, 0);\n\n for (var i = 0; i < bones.length; i++) {\n var bone = bones[i];\n\n if (bone.parent && bone.parent.isBone) {\n vertices.push(0, 0, 0);\n vertices.push(0, 0, 0);\n colors.push(color1.r, color1.g, color1.b);\n colors.push(color2.r, color2.g, color2.b);\n }\n }\n\n geometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n geometry.setAttribute('color', new Float32BufferAttribute(colors, 3));\n var material = new LineBasicMaterial({\n vertexColors: VertexColors,\n depthTest: false,\n depthWrite: false,\n transparent: true\n });\n LineSegments.call(this, geometry, material);\n this.root = object;\n this.bones = bones;\n this.matrix = object.matrixWorld;\n this.matrixAutoUpdate = false;\n}\n\nSkeletonHelper.prototype = Object.create(LineSegments.prototype);\nSkeletonHelper.prototype.constructor = SkeletonHelper;\n\nSkeletonHelper.prototype.updateMatrixWorld = function (force) {\n var bones = this.bones;\n var geometry = this.geometry;\n var position = geometry.getAttribute('position');\n\n _matrixWorldInv.getInverse(this.root.matrixWorld);\n\n for (var i = 0, j = 0; i < bones.length; i++) {\n var bone = bones[i];\n\n if (bone.parent && bone.parent.isBone) {\n _boneMatrix.multiplyMatrices(_matrixWorldInv, bone.matrixWorld);\n\n _vector$8.setFromMatrixPosition(_boneMatrix);\n\n position.setXYZ(j, _vector$8.x, _vector$8.y, _vector$8.z);\n\n _boneMatrix.multiplyMatrices(_matrixWorldInv, bone.parent.matrixWorld);\n\n _vector$8.setFromMatrixPosition(_boneMatrix);\n\n position.setXYZ(j + 1, _vector$8.x, _vector$8.y, _vector$8.z);\n j += 2;\n }\n }\n\n geometry.getAttribute('position').needsUpdate = true;\n Object3D.prototype.updateMatrixWorld.call(this, force);\n};\n/**\n * @author alteredq / http://alteredqualia.com/\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction PointLightHelper(light, sphereSize, color) {\n this.light = light;\n this.light.updateMatrixWorld();\n this.color = color;\n var geometry = new SphereBufferGeometry(sphereSize, 4, 2);\n var material = new MeshBasicMaterial({\n wireframe: true,\n fog: false\n });\n Mesh.call(this, geometry, material);\n this.matrix = this.light.matrixWorld;\n this.matrixAutoUpdate = false;\n this.update();\n /*\n var distanceGeometry = new THREE.IcosahedronBufferGeometry( 1, 2 );\n var distanceMaterial = new THREE.MeshBasicMaterial( { color: hexColor, fog: false, wireframe: true, opacity: 0.1, transparent: true } );\n \tthis.lightSphere = new THREE.Mesh( bulbGeometry, bulbMaterial );\n this.lightDistance = new THREE.Mesh( distanceGeometry, distanceMaterial );\n \tvar d = light.distance;\n \tif ( d === 0.0 ) {\n \t\tthis.lightDistance.visible = false;\n \t} else {\n \t\tthis.lightDistance.scale.set( d, d, d );\n \t}\n \tthis.add( this.lightDistance );\n */\n}\n\nPointLightHelper.prototype = Object.create(Mesh.prototype);\nPointLightHelper.prototype.constructor = PointLightHelper;\n\nPointLightHelper.prototype.dispose = function () {\n this.geometry.dispose();\n this.material.dispose();\n};\n\nPointLightHelper.prototype.update = function () {\n if (this.color !== undefined) {\n this.material.color.set(this.color);\n } else {\n this.material.color.copy(this.light.color);\n }\n /*\n var d = this.light.distance;\n \tif ( d === 0.0 ) {\n \t\tthis.lightDistance.visible = false;\n \t} else {\n \t\tthis.lightDistance.visible = true;\n \tthis.lightDistance.scale.set( d, d, d );\n \t}\n */\n\n};\n/**\n * @author abelnation / http://github.com/abelnation\n * @author Mugen87 / http://github.com/Mugen87\n * @author WestLangley / http://github.com/WestLangley\n *\n * This helper must be added as a child of the light\n */\n\n\nfunction RectAreaLightHelper(light, color) {\n this.type = 'RectAreaLightHelper';\n this.light = light;\n this.color = color; // optional hardwired color for the helper\n\n var positions = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0, 1, 1, 0];\n var geometry = new BufferGeometry();\n geometry.setAttribute('position', new Float32BufferAttribute(positions, 3));\n geometry.computeBoundingSphere();\n var material = new LineBasicMaterial({\n fog: false\n });\n Line.call(this, geometry, material); //\n\n var positions2 = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, 1, 0, -1, -1, 0, 1, -1, 0];\n var geometry2 = new BufferGeometry();\n geometry2.setAttribute('position', new Float32BufferAttribute(positions2, 3));\n geometry2.computeBoundingSphere();\n this.add(new Mesh(geometry2, new MeshBasicMaterial({\n side: BackSide,\n fog: false\n })));\n this.update();\n}\n\nRectAreaLightHelper.prototype = Object.create(Line.prototype);\nRectAreaLightHelper.prototype.constructor = RectAreaLightHelper;\n\nRectAreaLightHelper.prototype.update = function () {\n this.scale.set(0.5 * this.light.width, 0.5 * this.light.height, 1);\n\n if (this.color !== undefined) {\n this.material.color.set(this.color);\n this.children[0].material.color.set(this.color);\n } else {\n this.material.color.copy(this.light.color).multiplyScalar(this.light.intensity); // prevent hue shift\n\n var c = this.material.color;\n var max = Math.max(c.r, c.g, c.b);\n if (max > 1) c.multiplyScalar(1 / max);\n this.children[0].material.color.copy(this.material.color);\n }\n};\n\nRectAreaLightHelper.prototype.dispose = function () {\n this.geometry.dispose();\n this.material.dispose();\n this.children[0].geometry.dispose();\n this.children[0].material.dispose();\n};\n/**\n * @author alteredq / http://alteredqualia.com/\n * @author mrdoob / http://mrdoob.com/\n * @author Mugen87 / https://github.com/Mugen87\n */\n\n\nvar _vector$9 = new Vector3();\n\nvar _color1 = new Color();\n\nvar _color2 = new Color();\n\nfunction HemisphereLightHelper(light, size, color) {\n Object3D.call(this);\n this.light = light;\n this.light.updateMatrixWorld();\n this.matrix = light.matrixWorld;\n this.matrixAutoUpdate = false;\n this.color = color;\n var geometry = new OctahedronBufferGeometry(size);\n geometry.rotateY(Math.PI * 0.5);\n this.material = new MeshBasicMaterial({\n wireframe: true,\n fog: false\n });\n if (this.color === undefined) this.material.vertexColors = VertexColors;\n var position = geometry.getAttribute('position');\n var colors = new Float32Array(position.count * 3);\n geometry.setAttribute('color', new BufferAttribute(colors, 3));\n this.add(new Mesh(geometry, this.material));\n this.update();\n}\n\nHemisphereLightHelper.prototype = Object.create(Object3D.prototype);\nHemisphereLightHelper.prototype.constructor = HemisphereLightHelper;\n\nHemisphereLightHelper.prototype.dispose = function () {\n this.children[0].geometry.dispose();\n this.children[0].material.dispose();\n};\n\nHemisphereLightHelper.prototype.update = function () {\n var mesh = this.children[0];\n\n if (this.color !== undefined) {\n this.material.color.set(this.color);\n } else {\n var colors = mesh.geometry.getAttribute('color');\n\n _color1.copy(this.light.color);\n\n _color2.copy(this.light.groundColor);\n\n for (var i = 0, l = colors.count; i < l; i++) {\n var color = i < l / 2 ? _color1 : _color2;\n colors.setXYZ(i, color.r, color.g, color.b);\n }\n\n colors.needsUpdate = true;\n }\n\n mesh.lookAt(_vector$9.setFromMatrixPosition(this.light.matrixWorld).negate());\n};\n/**\n * @author WestLangley / http://github.com/WestLangley\n */\n\n\nfunction LightProbeHelper(lightProbe, size) {\n this.lightProbe = lightProbe;\n this.size = size;\n var defines = {};\n defines['GAMMA_OUTPUT'] = \"\"; // material\n\n var material = new ShaderMaterial({\n defines: defines,\n uniforms: {\n sh: {\n value: this.lightProbe.sh.coefficients\n },\n // by reference\n intensity: {\n value: this.lightProbe.intensity\n }\n },\n vertexShader: ['varying vec3 vNormal;', 'void main() {', '\tvNormal = normalize( normalMatrix * normal );', '\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );', '}'].join('\\n'),\n fragmentShader: ['#define RECIPROCAL_PI 0.318309886', 'vec3 inverseTransformDirection( in vec3 normal, in mat4 matrix ) {', '\t// matrix is assumed to be orthogonal', '\treturn normalize( ( vec4( normal, 0.0 ) * matrix ).xyz );', '}', 'vec3 linearToOutput( in vec3 a ) {', '\t#ifdef GAMMA_OUTPUT', '\t\treturn pow( a, vec3( 1.0 / float( GAMMA_FACTOR ) ) );', '\t#else', '\t\treturn a;', '\t#endif', '}', '// source: https://graphics.stanford.edu/papers/envmap/envmap.pdf', 'vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {', '\t// normal is assumed to have unit length', '\tfloat x = normal.x, y = normal.y, z = normal.z;', '\t// band 0', '\tvec3 result = shCoefficients[ 0 ] * 0.886227;', '\t// band 1', '\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;', '\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;', '\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;', '\t// band 2', '\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;', '\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;', '\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );', '\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;', '\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );', '\treturn result;', '}', 'uniform vec3 sh[ 9 ]; // sh coefficients', 'uniform float intensity; // light probe intensity', 'varying vec3 vNormal;', 'void main() {', '\tvec3 normal = normalize( vNormal );', '\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );', '\tvec3 irradiance = shGetIrradianceAt( worldNormal, sh );', '\tvec3 outgoingLight = RECIPROCAL_PI * irradiance * intensity;', '\toutgoingLight = linearToOutput( outgoingLight );', '\tgl_FragColor = vec4( outgoingLight, 1.0 );', '}'].join('\\n')\n });\n var geometry = new SphereBufferGeometry(1, 32, 16);\n Mesh.call(this, geometry, material);\n this.onBeforeRender();\n}\n\nLightProbeHelper.prototype = Object.create(Mesh.prototype);\nLightProbeHelper.prototype.constructor = LightProbeHelper;\n\nLightProbeHelper.prototype.dispose = function () {\n this.geometry.dispose();\n this.material.dispose();\n};\n\nLightProbeHelper.prototype.onBeforeRender = function () {\n this.position.copy(this.lightProbe.position);\n this.scale.set(1, 1, 1).multiplyScalar(this.size);\n this.material.uniforms.intensity.value = this.lightProbe.intensity;\n};\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction GridHelper(size, divisions, color1, color2) {\n size = size || 10;\n divisions = divisions || 10;\n color1 = new Color(color1 !== undefined ? color1 : 0x444444);\n color2 = new Color(color2 !== undefined ? color2 : 0x888888);\n var center = divisions / 2;\n var step = size / divisions;\n var halfSize = size / 2;\n var vertices = [],\n colors = [];\n\n for (var i = 0, j = 0, k = -halfSize; i <= divisions; i++, k += step) {\n vertices.push(-halfSize, 0, k, halfSize, 0, k);\n vertices.push(k, 0, -halfSize, k, 0, halfSize);\n var color = i === center ? color1 : color2;\n color.toArray(colors, j);\n j += 3;\n color.toArray(colors, j);\n j += 3;\n color.toArray(colors, j);\n j += 3;\n color.toArray(colors, j);\n j += 3;\n }\n\n var geometry = new BufferGeometry();\n geometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n geometry.setAttribute('color', new Float32BufferAttribute(colors, 3));\n var material = new LineBasicMaterial({\n vertexColors: VertexColors\n });\n LineSegments.call(this, geometry, material);\n}\n\nGridHelper.prototype = Object.assign(Object.create(LineSegments.prototype), {\n constructor: GridHelper,\n copy: function copy(source) {\n LineSegments.prototype.copy.call(this, source);\n this.geometry.copy(source.geometry);\n this.material.copy(source.material);\n return this;\n },\n clone: function clone() {\n return new this.constructor().copy(this);\n }\n});\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author Mugen87 / http://github.com/Mugen87\n * @author Hectate / http://www.github.com/Hectate\n */\n\nfunction PolarGridHelper(radius, radials, circles, divisions, color1, color2) {\n radius = radius || 10;\n radials = radials || 16;\n circles = circles || 8;\n divisions = divisions || 64;\n color1 = new Color(color1 !== undefined ? color1 : 0x444444);\n color2 = new Color(color2 !== undefined ? color2 : 0x888888);\n var vertices = [];\n var colors = [];\n var x, z;\n var v, i, j, r, color; // create the radials\n\n for (i = 0; i <= radials; i++) {\n v = i / radials * (Math.PI * 2);\n x = Math.sin(v) * radius;\n z = Math.cos(v) * radius;\n vertices.push(0, 0, 0);\n vertices.push(x, 0, z);\n color = i & 1 ? color1 : color2;\n colors.push(color.r, color.g, color.b);\n colors.push(color.r, color.g, color.b);\n } // create the circles\n\n\n for (i = 0; i <= circles; i++) {\n color = i & 1 ? color1 : color2;\n r = radius - radius / circles * i;\n\n for (j = 0; j < divisions; j++) {\n // first vertex\n v = j / divisions * (Math.PI * 2);\n x = Math.sin(v) * r;\n z = Math.cos(v) * r;\n vertices.push(x, 0, z);\n colors.push(color.r, color.g, color.b); // second vertex\n\n v = (j + 1) / divisions * (Math.PI * 2);\n x = Math.sin(v) * r;\n z = Math.cos(v) * r;\n vertices.push(x, 0, z);\n colors.push(color.r, color.g, color.b);\n }\n }\n\n var geometry = new BufferGeometry();\n geometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n geometry.setAttribute('color', new Float32BufferAttribute(colors, 3));\n var material = new LineBasicMaterial({\n vertexColors: VertexColors\n });\n LineSegments.call(this, geometry, material);\n}\n\nPolarGridHelper.prototype = Object.create(LineSegments.prototype);\nPolarGridHelper.prototype.constructor = PolarGridHelper;\n/**\n * @author Mugen87 / http://github.com/Mugen87\n */\n\nfunction PositionalAudioHelper(audio, range, divisionsInnerAngle, divisionsOuterAngle) {\n this.audio = audio;\n this.range = range || 1;\n this.divisionsInnerAngle = divisionsInnerAngle || 16;\n this.divisionsOuterAngle = divisionsOuterAngle || 2;\n var geometry = new BufferGeometry();\n var divisions = this.divisionsInnerAngle + this.divisionsOuterAngle * 2;\n var positions = new Float32Array((divisions * 3 + 3) * 3);\n geometry.setAttribute('position', new BufferAttribute(positions, 3));\n var materialInnerAngle = new LineBasicMaterial({\n color: 0x00ff00\n });\n var materialOuterAngle = new LineBasicMaterial({\n color: 0xffff00\n });\n Line.call(this, geometry, [materialOuterAngle, materialInnerAngle]);\n this.update();\n}\n\nPositionalAudioHelper.prototype = Object.create(Line.prototype);\nPositionalAudioHelper.prototype.constructor = PositionalAudioHelper;\n\nPositionalAudioHelper.prototype.update = function () {\n var audio = this.audio;\n var range = this.range;\n var divisionsInnerAngle = this.divisionsInnerAngle;\n var divisionsOuterAngle = this.divisionsOuterAngle;\n\n var coneInnerAngle = _Math.degToRad(audio.panner.coneInnerAngle);\n\n var coneOuterAngle = _Math.degToRad(audio.panner.coneOuterAngle);\n\n var halfConeInnerAngle = coneInnerAngle / 2;\n var halfConeOuterAngle = coneOuterAngle / 2;\n var start = 0;\n var count = 0;\n var i, stride;\n var geometry = this.geometry;\n var positionAttribute = geometry.attributes.position;\n geometry.clearGroups(); //\n\n function generateSegment(from, to, divisions, materialIndex) {\n var step = (to - from) / divisions;\n positionAttribute.setXYZ(start, 0, 0, 0);\n count++;\n\n for (i = from; i < to; i += step) {\n stride = start + count;\n positionAttribute.setXYZ(stride, Math.sin(i) * range, 0, Math.cos(i) * range);\n positionAttribute.setXYZ(stride + 1, Math.sin(Math.min(i + step, to)) * range, 0, Math.cos(Math.min(i + step, to)) * range);\n positionAttribute.setXYZ(stride + 2, 0, 0, 0);\n count += 3;\n }\n\n geometry.addGroup(start, count, materialIndex);\n start += count;\n count = 0;\n } //\n\n\n generateSegment(-halfConeOuterAngle, -halfConeInnerAngle, divisionsOuterAngle, 0);\n generateSegment(-halfConeInnerAngle, halfConeInnerAngle, divisionsInnerAngle, 1);\n generateSegment(halfConeInnerAngle, halfConeOuterAngle, divisionsOuterAngle, 0); //\n\n positionAttribute.needsUpdate = true;\n if (coneInnerAngle === coneOuterAngle) this.material[0].visible = false;\n};\n\nPositionalAudioHelper.prototype.dispose = function () {\n this.geometry.dispose();\n this.material[0].dispose();\n this.material[1].dispose();\n};\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author WestLangley / http://github.com/WestLangley\n */\n\n\nvar _v1$6 = new Vector3();\n\nvar _v2$4 = new Vector3();\n\nvar _normalMatrix$2 = new Matrix3();\n\nfunction FaceNormalsHelper(object, size, hex, linewidth) {\n // FaceNormalsHelper only supports THREE.Geometry\n this.object = object;\n this.size = size !== undefined ? size : 1;\n var color = hex !== undefined ? hex : 0xffff00;\n var width = linewidth !== undefined ? linewidth : 1; //\n\n var nNormals = 0;\n var objGeometry = this.object.geometry;\n\n if (objGeometry && objGeometry.isGeometry) {\n nNormals = objGeometry.faces.length;\n } else {\n console.warn('THREE.FaceNormalsHelper: only THREE.Geometry is supported. Use THREE.VertexNormalsHelper, instead.');\n } //\n\n\n var geometry = new BufferGeometry();\n var positions = new Float32BufferAttribute(nNormals * 2 * 3, 3);\n geometry.setAttribute('position', positions);\n LineSegments.call(this, geometry, new LineBasicMaterial({\n color: color,\n linewidth: width\n })); //\n\n this.matrixAutoUpdate = false;\n this.update();\n}\n\nFaceNormalsHelper.prototype = Object.create(LineSegments.prototype);\nFaceNormalsHelper.prototype.constructor = FaceNormalsHelper;\n\nFaceNormalsHelper.prototype.update = function () {\n this.object.updateMatrixWorld(true);\n\n _normalMatrix$2.getNormalMatrix(this.object.matrixWorld);\n\n var matrixWorld = this.object.matrixWorld;\n var position = this.geometry.attributes.position; //\n\n var objGeometry = this.object.geometry;\n var vertices = objGeometry.vertices;\n var faces = objGeometry.faces;\n var idx = 0;\n\n for (var i = 0, l = faces.length; i < l; i++) {\n var face = faces[i];\n var normal = face.normal;\n\n _v1$6.copy(vertices[face.a]).add(vertices[face.b]).add(vertices[face.c]).divideScalar(3).applyMatrix4(matrixWorld);\n\n _v2$4.copy(normal).applyMatrix3(_normalMatrix$2).normalize().multiplyScalar(this.size).add(_v1$6);\n\n position.setXYZ(idx, _v1$6.x, _v1$6.y, _v1$6.z);\n idx = idx + 1;\n position.setXYZ(idx, _v2$4.x, _v2$4.y, _v2$4.z);\n idx = idx + 1;\n }\n\n position.needsUpdate = true;\n};\n/**\n * @author alteredq / http://alteredqualia.com/\n * @author mrdoob / http://mrdoob.com/\n * @author WestLangley / http://github.com/WestLangley\n */\n\n\nvar _v1$7 = new Vector3();\n\nvar _v2$5 = new Vector3();\n\nvar _v3$1 = new Vector3();\n\nfunction DirectionalLightHelper(light, size, color) {\n Object3D.call(this);\n this.light = light;\n this.light.updateMatrixWorld();\n this.matrix = light.matrixWorld;\n this.matrixAutoUpdate = false;\n this.color = color;\n if (size === undefined) size = 1;\n var geometry = new BufferGeometry();\n geometry.setAttribute('position', new Float32BufferAttribute([-size, size, 0, size, size, 0, size, -size, 0, -size, -size, 0, -size, size, 0], 3));\n var material = new LineBasicMaterial({\n fog: false\n });\n this.lightPlane = new Line(geometry, material);\n this.add(this.lightPlane);\n geometry = new BufferGeometry();\n geometry.setAttribute('position', new Float32BufferAttribute([0, 0, 0, 0, 0, 1], 3));\n this.targetLine = new Line(geometry, material);\n this.add(this.targetLine);\n this.update();\n}\n\nDirectionalLightHelper.prototype = Object.create(Object3D.prototype);\nDirectionalLightHelper.prototype.constructor = DirectionalLightHelper;\n\nDirectionalLightHelper.prototype.dispose = function () {\n this.lightPlane.geometry.dispose();\n this.lightPlane.material.dispose();\n this.targetLine.geometry.dispose();\n this.targetLine.material.dispose();\n};\n\nDirectionalLightHelper.prototype.update = function () {\n _v1$7.setFromMatrixPosition(this.light.matrixWorld);\n\n _v2$5.setFromMatrixPosition(this.light.target.matrixWorld);\n\n _v3$1.subVectors(_v2$5, _v1$7);\n\n this.lightPlane.lookAt(_v2$5);\n\n if (this.color !== undefined) {\n this.lightPlane.material.color.set(this.color);\n this.targetLine.material.color.set(this.color);\n } else {\n this.lightPlane.material.color.copy(this.light.color);\n this.targetLine.material.color.copy(this.light.color);\n }\n\n this.targetLine.lookAt(_v2$5);\n this.targetLine.scale.z = _v3$1.length();\n};\n/**\n * @author alteredq / http://alteredqualia.com/\n * @author Mugen87 / https://github.com/Mugen87\n *\n *\t- shows frustum, line of sight and up of the camera\n *\t- suitable for fast updates\n * \t- based on frustum visualization in lightgl.js shadowmap example\n *\t\thttp://evanw.github.com/lightgl.js/tests/shadowmap.html\n */\n\n\nvar _vector$a = new Vector3();\n\nvar _camera = new Camera();\n\nfunction CameraHelper(camera) {\n var geometry = new BufferGeometry();\n var material = new LineBasicMaterial({\n color: 0xffffff,\n vertexColors: FaceColors\n });\n var vertices = [];\n var colors = [];\n var pointMap = {}; // colors\n\n var colorFrustum = new Color(0xffaa00);\n var colorCone = new Color(0xff0000);\n var colorUp = new Color(0x00aaff);\n var colorTarget = new Color(0xffffff);\n var colorCross = new Color(0x333333); // near\n\n addLine('n1', 'n2', colorFrustum);\n addLine('n2', 'n4', colorFrustum);\n addLine('n4', 'n3', colorFrustum);\n addLine('n3', 'n1', colorFrustum); // far\n\n addLine('f1', 'f2', colorFrustum);\n addLine('f2', 'f4', colorFrustum);\n addLine('f4', 'f3', colorFrustum);\n addLine('f3', 'f1', colorFrustum); // sides\n\n addLine('n1', 'f1', colorFrustum);\n addLine('n2', 'f2', colorFrustum);\n addLine('n3', 'f3', colorFrustum);\n addLine('n4', 'f4', colorFrustum); // cone\n\n addLine('p', 'n1', colorCone);\n addLine('p', 'n2', colorCone);\n addLine('p', 'n3', colorCone);\n addLine('p', 'n4', colorCone); // up\n\n addLine('u1', 'u2', colorUp);\n addLine('u2', 'u3', colorUp);\n addLine('u3', 'u1', colorUp); // target\n\n addLine('c', 't', colorTarget);\n addLine('p', 'c', colorCross); // cross\n\n addLine('cn1', 'cn2', colorCross);\n addLine('cn3', 'cn4', colorCross);\n addLine('cf1', 'cf2', colorCross);\n addLine('cf3', 'cf4', colorCross);\n\n function addLine(a, b, color) {\n addPoint(a, color);\n addPoint(b, color);\n }\n\n function addPoint(id, color) {\n vertices.push(0, 0, 0);\n colors.push(color.r, color.g, color.b);\n\n if (pointMap[id] === undefined) {\n pointMap[id] = [];\n }\n\n pointMap[id].push(vertices.length / 3 - 1);\n }\n\n geometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n geometry.setAttribute('color', new Float32BufferAttribute(colors, 3));\n LineSegments.call(this, geometry, material);\n this.camera = camera;\n if (this.camera.updateProjectionMatrix) this.camera.updateProjectionMatrix();\n this.matrix = camera.matrixWorld;\n this.matrixAutoUpdate = false;\n this.pointMap = pointMap;\n this.update();\n}\n\nCameraHelper.prototype = Object.create(LineSegments.prototype);\nCameraHelper.prototype.constructor = CameraHelper;\n\nCameraHelper.prototype.update = function () {\n var geometry = this.geometry;\n var pointMap = this.pointMap;\n var w = 1,\n h = 1; // we need just camera projection matrix inverse\n // world matrix must be identity\n\n _camera.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse); // center / target\n\n\n setPoint('c', pointMap, geometry, _camera, 0, 0, -1);\n setPoint('t', pointMap, geometry, _camera, 0, 0, 1); // near\n\n setPoint('n1', pointMap, geometry, _camera, -w, -h, -1);\n setPoint('n2', pointMap, geometry, _camera, w, -h, -1);\n setPoint('n3', pointMap, geometry, _camera, -w, h, -1);\n setPoint('n4', pointMap, geometry, _camera, w, h, -1); // far\n\n setPoint('f1', pointMap, geometry, _camera, -w, -h, 1);\n setPoint('f2', pointMap, geometry, _camera, w, -h, 1);\n setPoint('f3', pointMap, geometry, _camera, -w, h, 1);\n setPoint('f4', pointMap, geometry, _camera, w, h, 1); // up\n\n setPoint('u1', pointMap, geometry, _camera, w * 0.7, h * 1.1, -1);\n setPoint('u2', pointMap, geometry, _camera, -w * 0.7, h * 1.1, -1);\n setPoint('u3', pointMap, geometry, _camera, 0, h * 2, -1); // cross\n\n setPoint('cf1', pointMap, geometry, _camera, -w, 0, 1);\n setPoint('cf2', pointMap, geometry, _camera, w, 0, 1);\n setPoint('cf3', pointMap, geometry, _camera, 0, -h, 1);\n setPoint('cf4', pointMap, geometry, _camera, 0, h, 1);\n setPoint('cn1', pointMap, geometry, _camera, -w, 0, -1);\n setPoint('cn2', pointMap, geometry, _camera, w, 0, -1);\n setPoint('cn3', pointMap, geometry, _camera, 0, -h, -1);\n setPoint('cn4', pointMap, geometry, _camera, 0, h, -1);\n geometry.getAttribute('position').needsUpdate = true;\n};\n\nfunction setPoint(point, pointMap, geometry, camera, x, y, z) {\n _vector$a.set(x, y, z).unproject(camera);\n\n var points = pointMap[point];\n\n if (points !== undefined) {\n var position = geometry.getAttribute('position');\n\n for (var i = 0, l = points.length; i < l; i++) {\n position.setXYZ(points[i], _vector$a.x, _vector$a.y, _vector$a.z);\n }\n }\n}\n/**\n * @author mrdoob / http://mrdoob.com/\n * @author Mugen87 / http://github.com/Mugen87\n */\n\n\nvar _box$2 = new Box3();\n\nfunction BoxHelper(object, color) {\n this.object = object;\n if (color === undefined) color = 0xffff00;\n var indices = new Uint16Array([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7]);\n var positions = new Float32Array(8 * 3);\n var geometry = new BufferGeometry();\n geometry.setIndex(new BufferAttribute(indices, 1));\n geometry.setAttribute('position', new BufferAttribute(positions, 3));\n LineSegments.call(this, geometry, new LineBasicMaterial({\n color: color\n }));\n this.matrixAutoUpdate = false;\n this.update();\n}\n\nBoxHelper.prototype = Object.create(LineSegments.prototype);\nBoxHelper.prototype.constructor = BoxHelper;\n\nBoxHelper.prototype.update = function (object) {\n if (object !== undefined) {\n console.warn('THREE.BoxHelper: .update() has no longer arguments.');\n }\n\n if (this.object !== undefined) {\n _box$2.setFromObject(this.object);\n }\n\n if (_box$2.isEmpty()) return;\n var min = _box$2.min;\n var max = _box$2.max;\n /*\n 5____4\n 1/___0/|\n | 6__|_7\n 2/___3/\n \t0: max.x, max.y, max.z\n 1: min.x, max.y, max.z\n 2: min.x, min.y, max.z\n 3: max.x, min.y, max.z\n 4: max.x, max.y, min.z\n 5: min.x, max.y, min.z\n 6: min.x, min.y, min.z\n 7: max.x, min.y, min.z\n */\n\n var position = this.geometry.attributes.position;\n var array = position.array;\n array[0] = max.x;\n array[1] = max.y;\n array[2] = max.z;\n array[3] = min.x;\n array[4] = max.y;\n array[5] = max.z;\n array[6] = min.x;\n array[7] = min.y;\n array[8] = max.z;\n array[9] = max.x;\n array[10] = min.y;\n array[11] = max.z;\n array[12] = max.x;\n array[13] = max.y;\n array[14] = min.z;\n array[15] = min.x;\n array[16] = max.y;\n array[17] = min.z;\n array[18] = min.x;\n array[19] = min.y;\n array[20] = min.z;\n array[21] = max.x;\n array[22] = min.y;\n array[23] = min.z;\n position.needsUpdate = true;\n this.geometry.computeBoundingSphere();\n};\n\nBoxHelper.prototype.setFromObject = function (object) {\n this.object = object;\n this.update();\n return this;\n};\n\nBoxHelper.prototype.copy = function (source) {\n LineSegments.prototype.copy.call(this, source);\n this.object = source.object;\n return this;\n};\n\nBoxHelper.prototype.clone = function () {\n return new this.constructor().copy(this);\n};\n/**\n * @author WestLangley / http://github.com/WestLangley\n */\n\n\nfunction Box3Helper(box, color) {\n this.type = 'Box3Helper';\n this.box = box;\n color = color || 0xffff00;\n var indices = new Uint16Array([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7]);\n var positions = [1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1];\n var geometry = new BufferGeometry();\n geometry.setIndex(new BufferAttribute(indices, 1));\n geometry.setAttribute('position', new Float32BufferAttribute(positions, 3));\n LineSegments.call(this, geometry, new LineBasicMaterial({\n color: color\n }));\n this.geometry.computeBoundingSphere();\n}\n\nBox3Helper.prototype = Object.create(LineSegments.prototype);\nBox3Helper.prototype.constructor = Box3Helper;\n\nBox3Helper.prototype.updateMatrixWorld = function (force) {\n var box = this.box;\n if (box.isEmpty()) return;\n box.getCenter(this.position);\n box.getSize(this.scale);\n this.scale.multiplyScalar(0.5);\n Object3D.prototype.updateMatrixWorld.call(this, force);\n};\n/**\n * @author WestLangley / http://github.com/WestLangley\n */\n\n\nfunction PlaneHelper(plane, size, hex) {\n this.type = 'PlaneHelper';\n this.plane = plane;\n this.size = size === undefined ? 1 : size;\n var color = hex !== undefined ? hex : 0xffff00;\n var positions = [1, -1, 1, -1, 1, 1, -1, -1, 1, 1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0];\n var geometry = new BufferGeometry();\n geometry.setAttribute('position', new Float32BufferAttribute(positions, 3));\n geometry.computeBoundingSphere();\n Line.call(this, geometry, new LineBasicMaterial({\n color: color\n })); //\n\n var positions2 = [1, 1, 1, -1, 1, 1, -1, -1, 1, 1, 1, 1, -1, -1, 1, 1, -1, 1];\n var geometry2 = new BufferGeometry();\n geometry2.setAttribute('position', new Float32BufferAttribute(positions2, 3));\n geometry2.computeBoundingSphere();\n this.add(new Mesh(geometry2, new MeshBasicMaterial({\n color: color,\n opacity: 0.2,\n transparent: true,\n depthWrite: false\n })));\n}\n\nPlaneHelper.prototype = Object.create(Line.prototype);\nPlaneHelper.prototype.constructor = PlaneHelper;\n\nPlaneHelper.prototype.updateMatrixWorld = function (force) {\n var scale = -this.plane.constant;\n if (Math.abs(scale) < 1e-8) scale = 1e-8; // sign does not matter\n\n this.scale.set(0.5 * this.size, 0.5 * this.size, scale);\n this.children[0].material.side = scale < 0 ? BackSide : FrontSide; // renderer flips side when determinant < 0; flipping not wanted here\n\n this.lookAt(this.plane.normal);\n Object3D.prototype.updateMatrixWorld.call(this, force);\n};\n/**\n * @author WestLangley / http://github.com/WestLangley\n * @author zz85 / http://github.com/zz85\n * @author bhouston / http://clara.io\n *\n * Creates an arrow for visualizing directions\n *\n * Parameters:\n * dir - Vector3\n * origin - Vector3\n * length - Number\n * color - color in hex value\n * headLength - Number\n * headWidth - Number\n */\n\n\nvar _axis = new Vector3();\n\nvar _lineGeometry, _coneGeometry;\n\nfunction ArrowHelper(dir, origin, length, color, headLength, headWidth) {\n // dir is assumed to be normalized\n Object3D.call(this);\n if (dir === undefined) dir = new Vector3(0, 0, 1);\n if (origin === undefined) origin = new Vector3(0, 0, 0);\n if (length === undefined) length = 1;\n if (color === undefined) color = 0xffff00;\n if (headLength === undefined) headLength = 0.2 * length;\n if (headWidth === undefined) headWidth = 0.2 * headLength;\n\n if (_lineGeometry === undefined) {\n _lineGeometry = new BufferGeometry();\n\n _lineGeometry.setAttribute('position', new Float32BufferAttribute([0, 0, 0, 0, 1, 0], 3));\n\n _coneGeometry = new CylinderBufferGeometry(0, 0.5, 1, 5, 1);\n\n _coneGeometry.translate(0, -0.5, 0);\n }\n\n this.position.copy(origin);\n this.line = new Line(_lineGeometry, new LineBasicMaterial({\n color: color\n }));\n this.line.matrixAutoUpdate = false;\n this.add(this.line);\n this.cone = new Mesh(_coneGeometry, new MeshBasicMaterial({\n color: color\n }));\n this.cone.matrixAutoUpdate = false;\n this.add(this.cone);\n this.setDirection(dir);\n this.setLength(length, headLength, headWidth);\n}\n\nArrowHelper.prototype = Object.create(Object3D.prototype);\nArrowHelper.prototype.constructor = ArrowHelper;\n\nArrowHelper.prototype.setDirection = function (dir) {\n // dir is assumed to be normalized\n if (dir.y > 0.99999) {\n this.quaternion.set(0, 0, 0, 1);\n } else if (dir.y < -0.99999) {\n this.quaternion.set(1, 0, 0, 0);\n } else {\n _axis.set(dir.z, 0, -dir.x).normalize();\n\n var radians = Math.acos(dir.y);\n this.quaternion.setFromAxisAngle(_axis, radians);\n }\n};\n\nArrowHelper.prototype.setLength = function (length, headLength, headWidth) {\n if (headLength === undefined) headLength = 0.2 * length;\n if (headWidth === undefined) headWidth = 0.2 * headLength;\n this.line.scale.set(1, Math.max(0.0001, length - headLength), 1); // see #17458\n\n this.line.updateMatrix();\n this.cone.scale.set(headWidth, headLength, headWidth);\n this.cone.position.y = length;\n this.cone.updateMatrix();\n};\n\nArrowHelper.prototype.setColor = function (color) {\n this.line.material.color.set(color);\n this.cone.material.color.set(color);\n};\n\nArrowHelper.prototype.copy = function (source) {\n Object3D.prototype.copy.call(this, source, false);\n this.line.copy(source.line);\n this.cone.copy(source.cone);\n return this;\n};\n\nArrowHelper.prototype.clone = function () {\n return new this.constructor().copy(this);\n};\n/**\n * @author sroucheray / http://sroucheray.org/\n * @author mrdoob / http://mrdoob.com/\n */\n\n\nfunction AxesHelper(size) {\n size = size || 1;\n var vertices = [0, 0, 0, size, 0, 0, 0, 0, 0, 0, size, 0, 0, 0, 0, 0, 0, size];\n var colors = [1, 0, 0, 1, 0.6, 0, 0, 1, 0, 0.6, 1, 0, 0, 0, 1, 0, 0.6, 1];\n var geometry = new BufferGeometry();\n geometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n geometry.setAttribute('color', new Float32BufferAttribute(colors, 3));\n var material = new LineBasicMaterial({\n vertexColors: VertexColors\n });\n LineSegments.call(this, geometry, material);\n}\n\nAxesHelper.prototype = Object.create(LineSegments.prototype);\nAxesHelper.prototype.constructor = AxesHelper;\n/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nfunction Face4(a, b, c, d, normal, color, materialIndex) {\n console.warn('THREE.Face4 has been removed. A THREE.Face3 will be created instead.');\n return new Face3(a, b, c, normal, color, materialIndex);\n}\n\nvar LineStrip = 0;\nvar LinePieces = 1;\n\nfunction MeshFaceMaterial(materials) {\n console.warn('THREE.MeshFaceMaterial has been removed. Use an Array instead.');\n return materials;\n}\n\nfunction MultiMaterial(materials) {\n if (materials === undefined) materials = [];\n console.warn('THREE.MultiMaterial has been removed. Use an Array instead.');\n materials.isMultiMaterial = true;\n materials.materials = materials;\n\n materials.clone = function () {\n return materials.slice();\n };\n\n return materials;\n}\n\nfunction PointCloud(geometry, material) {\n console.warn('THREE.PointCloud has been renamed to THREE.Points.');\n return new Points(geometry, material);\n}\n\nfunction Particle(material) {\n console.warn('THREE.Particle has been renamed to THREE.Sprite.');\n return new Sprite(material);\n}\n\nfunction ParticleSystem(geometry, material) {\n console.warn('THREE.ParticleSystem has been renamed to THREE.Points.');\n return new Points(geometry, material);\n}\n\nfunction PointCloudMaterial(parameters) {\n console.warn('THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.');\n return new PointsMaterial(parameters);\n}\n\nfunction ParticleBasicMaterial(parameters) {\n console.warn('THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial.');\n return new PointsMaterial(parameters);\n}\n\nfunction ParticleSystemMaterial(parameters) {\n console.warn('THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial.');\n return new PointsMaterial(parameters);\n}\n\nfunction Vertex(x, y, z) {\n console.warn('THREE.Vertex has been removed. Use THREE.Vector3 instead.');\n return new Vector3(x, y, z);\n} //\n\n\nfunction DynamicBufferAttribute(array, itemSize) {\n console.warn('THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setDynamic( true ) instead.');\n return new BufferAttribute(array, itemSize).setDynamic(true);\n}\n\nfunction Int8Attribute(array, itemSize) {\n console.warn('THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead.');\n return new Int8BufferAttribute(array, itemSize);\n}\n\nfunction Uint8Attribute(array, itemSize) {\n console.warn('THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead.');\n return new Uint8BufferAttribute(array, itemSize);\n}\n\nfunction Uint8ClampedAttribute(array, itemSize) {\n console.warn('THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead.');\n return new Uint8ClampedBufferAttribute(array, itemSize);\n}\n\nfunction Int16Attribute(array, itemSize) {\n console.warn('THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead.');\n return new Int16BufferAttribute(array, itemSize);\n}\n\nfunction Uint16Attribute(array, itemSize) {\n console.warn('THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead.');\n return new Uint16BufferAttribute(array, itemSize);\n}\n\nfunction Int32Attribute(array, itemSize) {\n console.warn('THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead.');\n return new Int32BufferAttribute(array, itemSize);\n}\n\nfunction Uint32Attribute(array, itemSize) {\n console.warn('THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead.');\n return new Uint32BufferAttribute(array, itemSize);\n}\n\nfunction Float32Attribute(array, itemSize) {\n console.warn('THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead.');\n return new Float32BufferAttribute(array, itemSize);\n}\n\nfunction Float64Attribute(array, itemSize) {\n console.warn('THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead.');\n return new Float64BufferAttribute(array, itemSize);\n} //\n\n\nCurve.create = function (construct, getPoint) {\n console.log('THREE.Curve.create() has been deprecated');\n construct.prototype = Object.create(Curve.prototype);\n construct.prototype.constructor = construct;\n construct.prototype.getPoint = getPoint;\n return construct;\n}; //\n\n\nObject.assign(CurvePath.prototype, {\n createPointsGeometry: function createPointsGeometry(divisions) {\n console.warn('THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.'); // generate geometry from path points (for Line or Points objects)\n\n var pts = this.getPoints(divisions);\n return this.createGeometry(pts);\n },\n createSpacedPointsGeometry: function createSpacedPointsGeometry(divisions) {\n console.warn('THREE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.'); // generate geometry from equidistant sampling along the path\n\n var pts = this.getSpacedPoints(divisions);\n return this.createGeometry(pts);\n },\n createGeometry: function createGeometry(points) {\n console.warn('THREE.CurvePath: .createGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.');\n var geometry = new Geometry();\n\n for (var i = 0, l = points.length; i < l; i++) {\n var point = points[i];\n geometry.vertices.push(new Vector3(point.x, point.y, point.z || 0));\n }\n\n return geometry;\n }\n}); //\n\nObject.assign(Path.prototype, {\n fromPoints: function fromPoints(points) {\n console.warn('THREE.Path: .fromPoints() has been renamed to .setFromPoints().');\n return this.setFromPoints(points);\n }\n}); //\n\nfunction ClosedSplineCurve3(points) {\n console.warn('THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.');\n CatmullRomCurve3.call(this, points);\n this.type = 'catmullrom';\n this.closed = true;\n}\n\nClosedSplineCurve3.prototype = Object.create(CatmullRomCurve3.prototype); //\n\nfunction SplineCurve3(points) {\n console.warn('THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.');\n CatmullRomCurve3.call(this, points);\n this.type = 'catmullrom';\n}\n\nSplineCurve3.prototype = Object.create(CatmullRomCurve3.prototype); //\n\nfunction Spline(points) {\n console.warn('THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead.');\n CatmullRomCurve3.call(this, points);\n this.type = 'catmullrom';\n}\n\nSpline.prototype = Object.create(CatmullRomCurve3.prototype);\nObject.assign(Spline.prototype, {\n initFromArray: function initFromArray()\n /* a */\n {\n console.error('THREE.Spline: .initFromArray() has been removed.');\n },\n getControlPointsArray: function getControlPointsArray()\n /* optionalTarget */\n {\n console.error('THREE.Spline: .getControlPointsArray() has been removed.');\n },\n reparametrizeByArcLength: function reparametrizeByArcLength()\n /* samplingCoef */\n {\n console.error('THREE.Spline: .reparametrizeByArcLength() has been removed.');\n }\n}); //\n\nfunction AxisHelper(size) {\n console.warn('THREE.AxisHelper has been renamed to THREE.AxesHelper.');\n return new AxesHelper(size);\n}\n\nfunction BoundingBoxHelper(object, color) {\n console.warn('THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead.');\n return new BoxHelper(object, color);\n}\n\nfunction EdgesHelper(object, hex) {\n console.warn('THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead.');\n return new LineSegments(new EdgesGeometry(object.geometry), new LineBasicMaterial({\n color: hex !== undefined ? hex : 0xffffff\n }));\n}\n\nGridHelper.prototype.setColors = function () {\n console.error('THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.');\n};\n\nSkeletonHelper.prototype.update = function () {\n console.error('THREE.SkeletonHelper: update() no longer needs to be called.');\n};\n\nfunction WireframeHelper(object, hex) {\n console.warn('THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead.');\n return new LineSegments(new WireframeGeometry(object.geometry), new LineBasicMaterial({\n color: hex !== undefined ? hex : 0xffffff\n }));\n} //\n\n\nObject.assign(Loader.prototype, {\n extractUrlBase: function extractUrlBase(url) {\n console.warn('THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.');\n return LoaderUtils.extractUrlBase(url);\n }\n});\nLoader.Handlers = {\n add: function add()\n /* regex, loader */\n {\n console.error('THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.');\n },\n get: function get()\n /* file */\n {\n console.error('THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.');\n }\n};\n\nfunction XHRLoader(manager) {\n console.warn('THREE.XHRLoader has been renamed to THREE.FileLoader.');\n return new FileLoader(manager);\n}\n\nfunction BinaryTextureLoader(manager) {\n console.warn('THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader.');\n return new DataTextureLoader(manager);\n}\n\nObject.assign(ObjectLoader.prototype, {\n setTexturePath: function setTexturePath(value) {\n console.warn('THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath().');\n return this.setResourcePath(value);\n }\n}); //\n\nObject.assign(Box2.prototype, {\n center: function center(optionalTarget) {\n console.warn('THREE.Box2: .center() has been renamed to .getCenter().');\n return this.getCenter(optionalTarget);\n },\n empty: function empty() {\n console.warn('THREE.Box2: .empty() has been renamed to .isEmpty().');\n return this.isEmpty();\n },\n isIntersectionBox: function isIntersectionBox(box) {\n console.warn('THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().');\n return this.intersectsBox(box);\n },\n size: function size(optionalTarget) {\n console.warn('THREE.Box2: .size() has been renamed to .getSize().');\n return this.getSize(optionalTarget);\n }\n});\nObject.assign(Box3.prototype, {\n center: function center(optionalTarget) {\n console.warn('THREE.Box3: .center() has been renamed to .getCenter().');\n return this.getCenter(optionalTarget);\n },\n empty: function empty() {\n console.warn('THREE.Box3: .empty() has been renamed to .isEmpty().');\n return this.isEmpty();\n },\n isIntersectionBox: function isIntersectionBox(box) {\n console.warn('THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().');\n return this.intersectsBox(box);\n },\n isIntersectionSphere: function isIntersectionSphere(sphere) {\n console.warn('THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().');\n return this.intersectsSphere(sphere);\n },\n size: function size(optionalTarget) {\n console.warn('THREE.Box3: .size() has been renamed to .getSize().');\n return this.getSize(optionalTarget);\n }\n});\n\nLine3.prototype.center = function (optionalTarget) {\n console.warn('THREE.Line3: .center() has been renamed to .getCenter().');\n return this.getCenter(optionalTarget);\n};\n\nObject.assign(_Math, {\n random16: function random16() {\n console.warn('THREE.Math: .random16() has been deprecated. Use Math.random() instead.');\n return Math.random();\n },\n nearestPowerOfTwo: function nearestPowerOfTwo(value) {\n console.warn('THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo().');\n return _Math.floorPowerOfTwo(value);\n },\n nextPowerOfTwo: function nextPowerOfTwo(value) {\n console.warn('THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo().');\n return _Math.ceilPowerOfTwo(value);\n }\n});\nObject.assign(Matrix3.prototype, {\n flattenToArrayOffset: function flattenToArrayOffset(array, offset) {\n console.warn(\"THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.\");\n return this.toArray(array, offset);\n },\n multiplyVector3: function multiplyVector3(vector) {\n console.warn('THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.');\n return vector.applyMatrix3(this);\n },\n multiplyVector3Array: function multiplyVector3Array()\n /* a */\n {\n console.error('THREE.Matrix3: .multiplyVector3Array() has been removed.');\n },\n applyToBuffer: function applyToBuffer(buffer\n /*, offset, length */\n ) {\n console.warn('THREE.Matrix3: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead.');\n return this.applyToBufferAttribute(buffer);\n },\n applyToVector3Array: function applyToVector3Array()\n /* array, offset, length */\n {\n console.error('THREE.Matrix3: .applyToVector3Array() has been removed.');\n }\n});\nObject.assign(Matrix4.prototype, {\n extractPosition: function extractPosition(m) {\n console.warn('THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().');\n return this.copyPosition(m);\n },\n flattenToArrayOffset: function flattenToArrayOffset(array, offset) {\n console.warn(\"THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.\");\n return this.toArray(array, offset);\n },\n getPosition: function getPosition() {\n console.warn('THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.');\n return new Vector3().setFromMatrixColumn(this, 3);\n },\n setRotationFromQuaternion: function setRotationFromQuaternion(q) {\n console.warn('THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().');\n return this.makeRotationFromQuaternion(q);\n },\n multiplyToArray: function multiplyToArray() {\n console.warn('THREE.Matrix4: .multiplyToArray() has been removed.');\n },\n multiplyVector3: function multiplyVector3(vector) {\n console.warn('THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.');\n return vector.applyMatrix4(this);\n },\n multiplyVector4: function multiplyVector4(vector) {\n console.warn('THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.');\n return vector.applyMatrix4(this);\n },\n multiplyVector3Array: function multiplyVector3Array()\n /* a */\n {\n console.error('THREE.Matrix4: .multiplyVector3Array() has been removed.');\n },\n rotateAxis: function rotateAxis(v) {\n console.warn('THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.');\n v.transformDirection(this);\n },\n crossVector: function crossVector(vector) {\n console.warn('THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.');\n return vector.applyMatrix4(this);\n },\n translate: function translate() {\n console.error('THREE.Matrix4: .translate() has been removed.');\n },\n rotateX: function rotateX() {\n console.error('THREE.Matrix4: .rotateX() has been removed.');\n },\n rotateY: function rotateY() {\n console.error('THREE.Matrix4: .rotateY() has been removed.');\n },\n rotateZ: function rotateZ() {\n console.error('THREE.Matrix4: .rotateZ() has been removed.');\n },\n rotateByAxis: function rotateByAxis() {\n console.error('THREE.Matrix4: .rotateByAxis() has been removed.');\n },\n applyToBuffer: function applyToBuffer(buffer\n /*, offset, length */\n ) {\n console.warn('THREE.Matrix4: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead.');\n return this.applyToBufferAttribute(buffer);\n },\n applyToVector3Array: function applyToVector3Array()\n /* array, offset, length */\n {\n console.error('THREE.Matrix4: .applyToVector3Array() has been removed.');\n },\n makeFrustum: function makeFrustum(left, right, bottom, top, near, far) {\n console.warn('THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.');\n return this.makePerspective(left, right, top, bottom, near, far);\n }\n});\n\nPlane.prototype.isIntersectionLine = function (line) {\n console.warn('THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().');\n return this.intersectsLine(line);\n};\n\nQuaternion.prototype.multiplyVector3 = function (vector) {\n console.warn('THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.');\n return vector.applyQuaternion(this);\n};\n\nObject.assign(Ray.prototype, {\n isIntersectionBox: function isIntersectionBox(box) {\n console.warn('THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox().');\n return this.intersectsBox(box);\n },\n isIntersectionPlane: function isIntersectionPlane(plane) {\n console.warn('THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane().');\n return this.intersectsPlane(plane);\n },\n isIntersectionSphere: function isIntersectionSphere(sphere) {\n console.warn('THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().');\n return this.intersectsSphere(sphere);\n }\n});\nObject.assign(Triangle.prototype, {\n area: function area() {\n console.warn('THREE.Triangle: .area() has been renamed to .getArea().');\n return this.getArea();\n },\n barycoordFromPoint: function barycoordFromPoint(point, target) {\n console.warn('THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().');\n return this.getBarycoord(point, target);\n },\n midpoint: function midpoint(target) {\n console.warn('THREE.Triangle: .midpoint() has been renamed to .getMidpoint().');\n return this.getMidpoint(target);\n },\n normal: function normal(target) {\n console.warn('THREE.Triangle: .normal() has been renamed to .getNormal().');\n return this.getNormal(target);\n },\n plane: function plane(target) {\n console.warn('THREE.Triangle: .plane() has been renamed to .getPlane().');\n return this.getPlane(target);\n }\n});\nObject.assign(Triangle, {\n barycoordFromPoint: function barycoordFromPoint(point, a, b, c, target) {\n console.warn('THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().');\n return Triangle.getBarycoord(point, a, b, c, target);\n },\n normal: function normal(a, b, c, target) {\n console.warn('THREE.Triangle: .normal() has been renamed to .getNormal().');\n return Triangle.getNormal(a, b, c, target);\n }\n});\nObject.assign(Shape.prototype, {\n extractAllPoints: function extractAllPoints(divisions) {\n console.warn('THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead.');\n return this.extractPoints(divisions);\n },\n extrude: function extrude(options) {\n console.warn('THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.');\n return new ExtrudeGeometry(this, options);\n },\n makeGeometry: function makeGeometry(options) {\n console.warn('THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.');\n return new ShapeGeometry(this, options);\n }\n});\nObject.assign(Vector2.prototype, {\n fromAttribute: function fromAttribute(attribute, index, offset) {\n console.warn('THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().');\n return this.fromBufferAttribute(attribute, index, offset);\n },\n distanceToManhattan: function distanceToManhattan(v) {\n console.warn('THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo().');\n return this.manhattanDistanceTo(v);\n },\n lengthManhattan: function lengthManhattan() {\n console.warn('THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength().');\n return this.manhattanLength();\n }\n});\nObject.assign(Vector3.prototype, {\n setEulerFromRotationMatrix: function setEulerFromRotationMatrix() {\n console.error('THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.');\n },\n setEulerFromQuaternion: function setEulerFromQuaternion() {\n console.error('THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.');\n },\n getPositionFromMatrix: function getPositionFromMatrix(m) {\n console.warn('THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().');\n return this.setFromMatrixPosition(m);\n },\n getScaleFromMatrix: function getScaleFromMatrix(m) {\n console.warn('THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().');\n return this.setFromMatrixScale(m);\n },\n getColumnFromMatrix: function getColumnFromMatrix(index, matrix) {\n console.warn('THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().');\n return this.setFromMatrixColumn(matrix, index);\n },\n applyProjection: function applyProjection(m) {\n console.warn('THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead.');\n return this.applyMatrix4(m);\n },\n fromAttribute: function fromAttribute(attribute, index, offset) {\n console.warn('THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute().');\n return this.fromBufferAttribute(attribute, index, offset);\n },\n distanceToManhattan: function distanceToManhattan(v) {\n console.warn('THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo().');\n return this.manhattanDistanceTo(v);\n },\n lengthManhattan: function lengthManhattan() {\n console.warn('THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength().');\n return this.manhattanLength();\n }\n});\nObject.assign(Vector4.prototype, {\n fromAttribute: function fromAttribute(attribute, index, offset) {\n console.warn('THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute().');\n return this.fromBufferAttribute(attribute, index, offset);\n },\n lengthManhattan: function lengthManhattan() {\n console.warn('THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength().');\n return this.manhattanLength();\n }\n}); //\n\nObject.assign(Geometry.prototype, {\n computeTangents: function computeTangents() {\n console.error('THREE.Geometry: .computeTangents() has been removed.');\n },\n computeLineDistances: function computeLineDistances() {\n console.error('THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.');\n }\n});\nObject.assign(Object3D.prototype, {\n getChildByName: function getChildByName(name) {\n console.warn('THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().');\n return this.getObjectByName(name);\n },\n renderDepth: function renderDepth() {\n console.warn('THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.');\n },\n translate: function translate(distance, axis) {\n console.warn('THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.');\n return this.translateOnAxis(axis, distance);\n },\n getWorldRotation: function getWorldRotation() {\n console.error('THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.');\n }\n});\nObject.defineProperties(Object3D.prototype, {\n eulerOrder: {\n get: function get() {\n console.warn('THREE.Object3D: .eulerOrder is now .rotation.order.');\n return this.rotation.order;\n },\n set: function set(value) {\n console.warn('THREE.Object3D: .eulerOrder is now .rotation.order.');\n this.rotation.order = value;\n }\n },\n useQuaternion: {\n get: function get() {\n console.warn('THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.');\n },\n set: function set() {\n console.warn('THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.');\n }\n }\n});\nObject.defineProperties(LOD.prototype, {\n objects: {\n get: function get() {\n console.warn('THREE.LOD: .objects has been renamed to .levels.');\n return this.levels;\n }\n }\n});\nObject.defineProperty(Skeleton.prototype, 'useVertexTexture', {\n get: function get() {\n console.warn('THREE.Skeleton: useVertexTexture has been removed.');\n },\n set: function set() {\n console.warn('THREE.Skeleton: useVertexTexture has been removed.');\n }\n});\n\nSkinnedMesh.prototype.initBones = function () {\n console.error('THREE.SkinnedMesh: initBones() has been removed.');\n};\n\nObject.defineProperty(Curve.prototype, '__arcLengthDivisions', {\n get: function get() {\n console.warn('THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.');\n return this.arcLengthDivisions;\n },\n set: function set(value) {\n console.warn('THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.');\n this.arcLengthDivisions = value;\n }\n}); //\n\nPerspectiveCamera.prototype.setLens = function (focalLength, filmGauge) {\n console.warn(\"THREE.PerspectiveCamera.setLens is deprecated. \" + \"Use .setFocalLength and .filmGauge for a photographic setup.\");\n if (filmGauge !== undefined) this.filmGauge = filmGauge;\n this.setFocalLength(focalLength);\n}; //\n\n\nObject.defineProperties(Light.prototype, {\n onlyShadow: {\n set: function set() {\n console.warn('THREE.Light: .onlyShadow has been removed.');\n }\n },\n shadowCameraFov: {\n set: function set(value) {\n console.warn('THREE.Light: .shadowCameraFov is now .shadow.camera.fov.');\n this.shadow.camera.fov = value;\n }\n },\n shadowCameraLeft: {\n set: function set(value) {\n console.warn('THREE.Light: .shadowCameraLeft is now .shadow.camera.left.');\n this.shadow.camera.left = value;\n }\n },\n shadowCameraRight: {\n set: function set(value) {\n console.warn('THREE.Light: .shadowCameraRight is now .shadow.camera.right.');\n this.shadow.camera.right = value;\n }\n },\n shadowCameraTop: {\n set: function set(value) {\n console.warn('THREE.Light: .shadowCameraTop is now .shadow.camera.top.');\n this.shadow.camera.top = value;\n }\n },\n shadowCameraBottom: {\n set: function set(value) {\n console.warn('THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom.');\n this.shadow.camera.bottom = value;\n }\n },\n shadowCameraNear: {\n set: function set(value) {\n console.warn('THREE.Light: .shadowCameraNear is now .shadow.camera.near.');\n this.shadow.camera.near = value;\n }\n },\n shadowCameraFar: {\n set: function set(value) {\n console.warn('THREE.Light: .shadowCameraFar is now .shadow.camera.far.');\n this.shadow.camera.far = value;\n }\n },\n shadowCameraVisible: {\n set: function set() {\n console.warn('THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.');\n }\n },\n shadowBias: {\n set: function set(value) {\n console.warn('THREE.Light: .shadowBias is now .shadow.bias.');\n this.shadow.bias = value;\n }\n },\n shadowDarkness: {\n set: function set() {\n console.warn('THREE.Light: .shadowDarkness has been removed.');\n }\n },\n shadowMapWidth: {\n set: function set(value) {\n console.warn('THREE.Light: .shadowMapWidth is now .shadow.mapSize.width.');\n this.shadow.mapSize.width = value;\n }\n },\n shadowMapHeight: {\n set: function set(value) {\n console.warn('THREE.Light: .shadowMapHeight is now .shadow.mapSize.height.');\n this.shadow.mapSize.height = value;\n }\n }\n}); //\n\nObject.defineProperties(BufferAttribute.prototype, {\n length: {\n get: function get() {\n console.warn('THREE.BufferAttribute: .length has been deprecated. Use .count instead.');\n return this.array.length;\n }\n },\n dynamic: {\n get: function get() {\n console.warn('THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.');\n return this.usage === DynamicDrawUsage;\n },\n set: function set()\n /* value */\n {\n console.warn('THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.');\n this.setUsage(DynamicDrawUsage);\n }\n }\n});\nObject.assign(BufferAttribute.prototype, {\n setDynamic: function setDynamic(value) {\n console.warn('THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead.');\n this.setUsage(value === true ? DynamicDrawUsage : StaticDrawUsage);\n return this;\n },\n copyIndicesArray: function copyIndicesArray()\n /* indices */\n {\n console.error('THREE.BufferAttribute: .copyIndicesArray() has been removed.');\n },\n setArray: function setArray()\n /* array */\n {\n console.error('THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers');\n }\n});\nObject.assign(BufferGeometry.prototype, {\n addIndex: function addIndex(index) {\n console.warn('THREE.BufferGeometry: .addIndex() has been renamed to .setIndex().');\n this.setIndex(index);\n },\n addAttribute: function addAttribute(name, attribute) {\n console.warn('THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute().');\n\n if (!(attribute && attribute.isBufferAttribute) && !(attribute && attribute.isInterleavedBufferAttribute)) {\n console.warn('THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).');\n return this.setAttribute(name, new BufferAttribute(arguments[1], arguments[2]));\n }\n\n if (name === 'index') {\n console.warn('THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute.');\n this.setIndex(attribute);\n return this;\n }\n\n return this.setAttribute(name, attribute);\n },\n addDrawCall: function addDrawCall(start, count, indexOffset) {\n if (indexOffset !== undefined) {\n console.warn('THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset.');\n }\n\n console.warn('THREE.BufferGeometry: .addDrawCall() is now .addGroup().');\n this.addGroup(start, count);\n },\n clearDrawCalls: function clearDrawCalls() {\n console.warn('THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups().');\n this.clearGroups();\n },\n computeTangents: function computeTangents() {\n console.warn('THREE.BufferGeometry: .computeTangents() has been removed.');\n },\n computeOffsets: function computeOffsets() {\n console.warn('THREE.BufferGeometry: .computeOffsets() has been removed.');\n },\n removeAttribute: function removeAttribute(name) {\n console.warn('THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute().');\n return this.deleteAttribute(name);\n }\n});\nObject.defineProperties(BufferGeometry.prototype, {\n drawcalls: {\n get: function get() {\n console.error('THREE.BufferGeometry: .drawcalls has been renamed to .groups.');\n return this.groups;\n }\n },\n offsets: {\n get: function get() {\n console.warn('THREE.BufferGeometry: .offsets has been renamed to .groups.');\n return this.groups;\n }\n }\n});\nObject.defineProperties(InterleavedBuffer.prototype, {\n dynamic: {\n get: function get() {\n console.warn('THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead.');\n return this.usage === DynamicDrawUsage;\n },\n set: function set(value) {\n console.warn('THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead.');\n this.setUsage(value);\n }\n }\n});\nObject.assign(InterleavedBuffer.prototype, {\n setDynamic: function setDynamic(value) {\n console.warn('THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead.');\n this.setUsage(value === true ? DynamicDrawUsage : StaticDrawUsage);\n return this;\n },\n setArray: function setArray()\n /* array */\n {\n console.error('THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers');\n }\n}); //\n\nObject.assign(ExtrudeBufferGeometry.prototype, {\n getArrays: function getArrays() {\n console.error('THREE.ExtrudeBufferGeometry: .getArrays() has been removed.');\n },\n addShapeList: function addShapeList() {\n console.error('THREE.ExtrudeBufferGeometry: .addShapeList() has been removed.');\n },\n addShape: function addShape() {\n console.error('THREE.ExtrudeBufferGeometry: .addShape() has been removed.');\n }\n}); //\n\nObject.defineProperties(Uniform.prototype, {\n dynamic: {\n set: function set() {\n console.warn('THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.');\n }\n },\n onUpdate: {\n value: function value() {\n console.warn('THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead.');\n return this;\n }\n }\n}); //\n\nObject.defineProperties(Material.prototype, {\n wrapAround: {\n get: function get() {\n console.warn('THREE.Material: .wrapAround has been removed.');\n },\n set: function set() {\n console.warn('THREE.Material: .wrapAround has been removed.');\n }\n },\n overdraw: {\n get: function get() {\n console.warn('THREE.Material: .overdraw has been removed.');\n },\n set: function set() {\n console.warn('THREE.Material: .overdraw has been removed.');\n }\n },\n wrapRGB: {\n get: function get() {\n console.warn('THREE.Material: .wrapRGB has been removed.');\n return new Color();\n }\n },\n shading: {\n get: function get() {\n console.error('THREE.' + this.type + ': .shading has been removed. Use the boolean .flatShading instead.');\n },\n set: function set(value) {\n console.warn('THREE.' + this.type + ': .shading has been removed. Use the boolean .flatShading instead.');\n this.flatShading = value === FlatShading;\n }\n },\n stencilMask: {\n get: function get() {\n console.warn('THREE.' + this.type + ': .stencilMask has been removed. Use .stencilFuncMask instead.');\n return this.stencilFuncMask;\n },\n set: function set(value) {\n console.warn('THREE.' + this.type + ': .stencilMask has been removed. Use .stencilFuncMask instead.');\n this.stencilFuncMask = value;\n }\n }\n});\nObject.defineProperties(MeshPhongMaterial.prototype, {\n metal: {\n get: function get() {\n console.warn('THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead.');\n return false;\n },\n set: function set() {\n console.warn('THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead');\n }\n }\n});\nObject.defineProperties(ShaderMaterial.prototype, {\n derivatives: {\n get: function get() {\n console.warn('THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives.');\n return this.extensions.derivatives;\n },\n set: function set(value) {\n console.warn('THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives.');\n this.extensions.derivatives = value;\n }\n }\n}); //\n\nObject.assign(WebGLRenderer.prototype, {\n clearTarget: function clearTarget(renderTarget, color, depth, stencil) {\n console.warn('THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead.');\n this.setRenderTarget(renderTarget);\n this.clear(color, depth, stencil);\n },\n animate: function animate(callback) {\n console.warn('THREE.WebGLRenderer: .animate() is now .setAnimationLoop().');\n this.setAnimationLoop(callback);\n },\n getCurrentRenderTarget: function getCurrentRenderTarget() {\n console.warn('THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget().');\n return this.getRenderTarget();\n },\n getMaxAnisotropy: function getMaxAnisotropy() {\n console.warn('THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy().');\n return this.capabilities.getMaxAnisotropy();\n },\n getPrecision: function getPrecision() {\n console.warn('THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision.');\n return this.capabilities.precision;\n },\n resetGLState: function resetGLState() {\n console.warn('THREE.WebGLRenderer: .resetGLState() is now .state.reset().');\n return this.state.reset();\n },\n supportsFloatTextures: function supportsFloatTextures() {\n console.warn('THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( \\'OES_texture_float\\' ).');\n return this.extensions.get('OES_texture_float');\n },\n supportsHalfFloatTextures: function supportsHalfFloatTextures() {\n console.warn('THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( \\'OES_texture_half_float\\' ).');\n return this.extensions.get('OES_texture_half_float');\n },\n supportsStandardDerivatives: function supportsStandardDerivatives() {\n console.warn('THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( \\'OES_standard_derivatives\\' ).');\n return this.extensions.get('OES_standard_derivatives');\n },\n supportsCompressedTextureS3TC: function supportsCompressedTextureS3TC() {\n console.warn('THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( \\'WEBGL_compressed_texture_s3tc\\' ).');\n return this.extensions.get('WEBGL_compressed_texture_s3tc');\n },\n supportsCompressedTexturePVRTC: function supportsCompressedTexturePVRTC() {\n console.warn('THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( \\'WEBGL_compressed_texture_pvrtc\\' ).');\n return this.extensions.get('WEBGL_compressed_texture_pvrtc');\n },\n supportsBlendMinMax: function supportsBlendMinMax() {\n console.warn('THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( \\'EXT_blend_minmax\\' ).');\n return this.extensions.get('EXT_blend_minmax');\n },\n supportsVertexTextures: function supportsVertexTextures() {\n console.warn('THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures.');\n return this.capabilities.vertexTextures;\n },\n supportsInstancedArrays: function supportsInstancedArrays() {\n console.warn('THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( \\'ANGLE_instanced_arrays\\' ).');\n return this.extensions.get('ANGLE_instanced_arrays');\n },\n enableScissorTest: function enableScissorTest(boolean) {\n console.warn('THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest().');\n this.setScissorTest(boolean);\n },\n initMaterial: function initMaterial() {\n console.warn('THREE.WebGLRenderer: .initMaterial() has been removed.');\n },\n addPrePlugin: function addPrePlugin() {\n console.warn('THREE.WebGLRenderer: .addPrePlugin() has been removed.');\n },\n addPostPlugin: function addPostPlugin() {\n console.warn('THREE.WebGLRenderer: .addPostPlugin() has been removed.');\n },\n updateShadowMap: function updateShadowMap() {\n console.warn('THREE.WebGLRenderer: .updateShadowMap() has been removed.');\n },\n setFaceCulling: function setFaceCulling() {\n console.warn('THREE.WebGLRenderer: .setFaceCulling() has been removed.');\n },\n allocTextureUnit: function allocTextureUnit() {\n console.warn('THREE.WebGLRenderer: .allocTextureUnit() has been removed.');\n },\n setTexture: function setTexture() {\n console.warn('THREE.WebGLRenderer: .setTexture() has been removed.');\n },\n setTexture2D: function setTexture2D() {\n console.warn('THREE.WebGLRenderer: .setTexture2D() has been removed.');\n },\n setTextureCube: function setTextureCube() {\n console.warn('THREE.WebGLRenderer: .setTextureCube() has been removed.');\n },\n getActiveMipMapLevel: function getActiveMipMapLevel() {\n console.warn('THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel().');\n return this.getActiveMipmapLevel();\n }\n});\nObject.defineProperties(WebGLRenderer.prototype, {\n shadowMapEnabled: {\n get: function get() {\n return this.shadowMap.enabled;\n },\n set: function set(value) {\n console.warn('THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled.');\n this.shadowMap.enabled = value;\n }\n },\n shadowMapType: {\n get: function get() {\n return this.shadowMap.type;\n },\n set: function set(value) {\n console.warn('THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type.');\n this.shadowMap.type = value;\n }\n },\n shadowMapCullFace: {\n get: function get() {\n console.warn('THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.');\n return undefined;\n },\n set: function set()\n /* value */\n {\n console.warn('THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.');\n }\n },\n context: {\n get: function get() {\n console.warn('THREE.WebGLRenderer: .context has been removed. Use .getContext() instead.');\n return this.getContext();\n }\n }\n});\nObject.defineProperties(WebGLShadowMap.prototype, {\n cullFace: {\n get: function get() {\n console.warn('THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.');\n return undefined;\n },\n set: function set()\n /* cullFace */\n {\n console.warn('THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.');\n }\n },\n renderReverseSided: {\n get: function get() {\n console.warn('THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.');\n return undefined;\n },\n set: function set() {\n console.warn('THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.');\n }\n },\n renderSingleSided: {\n get: function get() {\n console.warn('THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.');\n return undefined;\n },\n set: function set() {\n console.warn('THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.');\n }\n }\n}); //\n\nObject.defineProperties(WebGLRenderTargetCube.prototype, {\n activeCubeFace: {\n set: function set()\n /* value */\n {\n console.warn('THREE.WebGLRenderTargetCube: .activeCubeFace has been removed. It is now the second parameter of WebGLRenderer.setRenderTarget().');\n }\n },\n activeMipMapLevel: {\n set: function set()\n /* value */\n {\n console.warn('THREE.WebGLRenderTargetCube: .activeMipMapLevel has been removed. It is now the third parameter of WebGLRenderer.setRenderTarget().');\n }\n }\n}); //\n\nObject.defineProperties(WebGLRenderTarget.prototype, {\n wrapS: {\n get: function get() {\n console.warn('THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.');\n return this.texture.wrapS;\n },\n set: function set(value) {\n console.warn('THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.');\n this.texture.wrapS = value;\n }\n },\n wrapT: {\n get: function get() {\n console.warn('THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.');\n return this.texture.wrapT;\n },\n set: function set(value) {\n console.warn('THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.');\n this.texture.wrapT = value;\n }\n },\n magFilter: {\n get: function get() {\n console.warn('THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.');\n return this.texture.magFilter;\n },\n set: function set(value) {\n console.warn('THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.');\n this.texture.magFilter = value;\n }\n },\n minFilter: {\n get: function get() {\n console.warn('THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.');\n return this.texture.minFilter;\n },\n set: function set(value) {\n console.warn('THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.');\n this.texture.minFilter = value;\n }\n },\n anisotropy: {\n get: function get() {\n console.warn('THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.');\n return this.texture.anisotropy;\n },\n set: function set(value) {\n console.warn('THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.');\n this.texture.anisotropy = value;\n }\n },\n offset: {\n get: function get() {\n console.warn('THREE.WebGLRenderTarget: .offset is now .texture.offset.');\n return this.texture.offset;\n },\n set: function set(value) {\n console.warn('THREE.WebGLRenderTarget: .offset is now .texture.offset.');\n this.texture.offset = value;\n }\n },\n repeat: {\n get: function get() {\n console.warn('THREE.WebGLRenderTarget: .repeat is now .texture.repeat.');\n return this.texture.repeat;\n },\n set: function set(value) {\n console.warn('THREE.WebGLRenderTarget: .repeat is now .texture.repeat.');\n this.texture.repeat = value;\n }\n },\n format: {\n get: function get() {\n console.warn('THREE.WebGLRenderTarget: .format is now .texture.format.');\n return this.texture.format;\n },\n set: function set(value) {\n console.warn('THREE.WebGLRenderTarget: .format is now .texture.format.');\n this.texture.format = value;\n }\n },\n type: {\n get: function get() {\n console.warn('THREE.WebGLRenderTarget: .type is now .texture.type.');\n return this.texture.type;\n },\n set: function set(value) {\n console.warn('THREE.WebGLRenderTarget: .type is now .texture.type.');\n this.texture.type = value;\n }\n },\n generateMipmaps: {\n get: function get() {\n console.warn('THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.');\n return this.texture.generateMipmaps;\n },\n set: function set(value) {\n console.warn('THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.');\n this.texture.generateMipmaps = value;\n }\n }\n}); //\n\nObject.defineProperties(WebVRManager.prototype, {\n standing: {\n set: function set()\n /* value */\n {\n console.warn('THREE.WebVRManager: .standing has been removed.');\n }\n },\n userHeight: {\n set: function set()\n /* value */\n {\n console.warn('THREE.WebVRManager: .userHeight has been removed.');\n }\n }\n}); //\n\nObject.defineProperties(Audio.prototype, {\n load: {\n value: function value(file) {\n console.warn('THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.');\n var scope = this;\n var audioLoader = new AudioLoader();\n audioLoader.load(file, function (buffer) {\n scope.setBuffer(buffer);\n });\n return this;\n }\n },\n startTime: {\n set: function set() {\n console.warn('THREE.Audio: .startTime is now .play( delay ).');\n }\n }\n});\n\nAudioAnalyser.prototype.getData = function () {\n console.warn('THREE.AudioAnalyser: .getData() is now .getFrequencyData().');\n return this.getFrequencyData();\n}; //\n\n\nCubeCamera.prototype.updateCubeMap = function (renderer, scene) {\n console.warn('THREE.CubeCamera: .updateCubeMap() is now .update().');\n return this.update(renderer, scene);\n}; //\n\n\nvar GeometryUtils = {\n merge: function merge(geometry1, geometry2, materialIndexOffset) {\n console.warn('THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.');\n var matrix;\n\n if (geometry2.isMesh) {\n geometry2.matrixAutoUpdate && geometry2.updateMatrix();\n matrix = geometry2.matrix;\n geometry2 = geometry2.geometry;\n }\n\n geometry1.merge(geometry2, matrix, materialIndexOffset);\n },\n center: function center(geometry) {\n console.warn('THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead.');\n return geometry.center();\n }\n};\nImageUtils.crossOrigin = undefined;\n\nImageUtils.loadTexture = function (url, mapping, onLoad, onError) {\n console.warn('THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.');\n var loader = new TextureLoader();\n loader.setCrossOrigin(this.crossOrigin);\n var texture = loader.load(url, onLoad, undefined, onError);\n if (mapping) texture.mapping = mapping;\n return texture;\n};\n\nImageUtils.loadTextureCube = function (urls, mapping, onLoad, onError) {\n console.warn('THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.');\n var loader = new CubeTextureLoader();\n loader.setCrossOrigin(this.crossOrigin);\n var texture = loader.load(urls, onLoad, undefined, onError);\n if (mapping) texture.mapping = mapping;\n return texture;\n};\n\nImageUtils.loadCompressedTexture = function () {\n console.error('THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.');\n};\n\nImageUtils.loadCompressedTextureCube = function () {\n console.error('THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.');\n}; //\n\n\nfunction CanvasRenderer() {\n console.error('THREE.CanvasRenderer has been removed');\n} //\n\n\nfunction JSONLoader() {\n console.error('THREE.JSONLoader has been removed.');\n} //\n\n\nvar SceneUtils = {\n createMultiMaterialObject: function createMultiMaterialObject()\n /* geometry, materials */\n {\n console.error('THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js');\n },\n detach: function detach()\n /* child, parent, scene */\n {\n console.error('THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js');\n },\n attach: function attach()\n /* child, scene, parent */\n {\n console.error('THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js');\n }\n}; //\n\nfunction LensFlare() {\n console.error('THREE.LensFlare has been moved to /examples/js/objects/Lensflare.js');\n}\n\nif (typeof __THREE_DEVTOOLS__ !== 'undefined') {\n /* eslint-disable no-undef */\n __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent('register', {\n detail: {\n revision: REVISION\n }\n }));\n /* eslint-enable no-undef */\n\n}\n\nexport { ACESFilmicToneMapping, AddEquation, AddOperation, AdditiveBlending, AlphaFormat, AlwaysDepth, AlwaysStencilFunc, AmbientLight, AmbientLightProbe, AnimationClip, AnimationLoader, AnimationMixer, AnimationObjectGroup, AnimationUtils, ArcCurve, ArrayCamera, ArrowHelper, Audio, AudioAnalyser, AudioContext, AudioListener, AudioLoader, AxesHelper, AxisHelper, BackSide, BasicDepthPacking, BasicShadowMap, BinaryTextureLoader, Bone, BooleanKeyframeTrack, BoundingBoxHelper, Box2, Box3, Box3Helper, BoxBufferGeometry, BoxGeometry, BoxHelper, BufferAttribute, BufferGeometry, BufferGeometryLoader, ByteType, Cache, Camera, CameraHelper, CanvasRenderer, CanvasTexture, CatmullRomCurve3, CineonToneMapping, CircleBufferGeometry, CircleGeometry, ClampToEdgeWrapping, Clock, ClosedSplineCurve3, Color, ColorKeyframeTrack, CompressedTexture, CompressedTextureLoader, ConeBufferGeometry, ConeGeometry, CubeCamera, BoxGeometry as CubeGeometry, CubeReflectionMapping, CubeRefractionMapping, CubeTexture, CubeTextureLoader, CubeUVReflectionMapping, CubeUVRefractionMapping, CubicBezierCurve, CubicBezierCurve3, CubicInterpolant, CullFaceBack, CullFaceFront, CullFaceFrontBack, CullFaceNone, Curve, CurvePath, CustomBlending, CylinderBufferGeometry, CylinderGeometry, Cylindrical, DataTexture, DataTexture2DArray, DataTexture3D, DataTextureLoader, DecrementStencilOp, DecrementWrapStencilOp, DefaultLoadingManager, DepthFormat, DepthStencilFormat, DepthTexture, DirectionalLight, DirectionalLightHelper, DirectionalLightShadow, DiscreteInterpolant, DodecahedronBufferGeometry, DodecahedronGeometry, DoubleSide, DstAlphaFactor, DstColorFactor, DynamicBufferAttribute, DynamicCopyUsage, DynamicDrawUsage, DynamicReadUsage, EdgesGeometry, EdgesHelper, EllipseCurve, EqualDepth, EqualStencilFunc, EquirectangularReflectionMapping, EquirectangularRefractionMapping, Euler, EventDispatcher, ExtrudeBufferGeometry, ExtrudeGeometry, Face3, Face4, FaceColors, FaceNormalsHelper, FileLoader, FlatShading, Float32Attribute, Float32BufferAttribute, Float64Attribute, Float64BufferAttribute, FloatType, Fog, FogExp2, Font, FontLoader, FrontFaceDirectionCCW, FrontFaceDirectionCW, FrontSide, Frustum, GammaEncoding, Geometry, GeometryUtils, GreaterDepth, GreaterEqualDepth, GreaterEqualStencilFunc, GreaterStencilFunc, GridHelper, Group, HalfFloatType, HemisphereLight, HemisphereLightHelper, HemisphereLightProbe, IcosahedronBufferGeometry, IcosahedronGeometry, ImageBitmapLoader, ImageLoader, ImageUtils, ImmediateRenderObject, IncrementStencilOp, IncrementWrapStencilOp, InstancedBufferAttribute, InstancedBufferGeometry, InstancedInterleavedBuffer, InstancedMesh, Int16Attribute, Int16BufferAttribute, Int32Attribute, Int32BufferAttribute, Int8Attribute, Int8BufferAttribute, IntType, InterleavedBuffer, InterleavedBufferAttribute, Interpolant, InterpolateDiscrete, InterpolateLinear, InterpolateSmooth, InvertStencilOp, JSONLoader, KeepStencilOp, KeyframeTrack, LOD, LatheBufferGeometry, LatheGeometry, Layers, LensFlare, LessDepth, LessEqualDepth, LessEqualStencilFunc, LessStencilFunc, Light, LightProbe, LightProbeHelper, LightShadow, Line, Line3, LineBasicMaterial, LineCurve, LineCurve3, LineDashedMaterial, LineLoop, LinePieces, LineSegments, LineStrip, LinearEncoding, LinearFilter, LinearInterpolant, LinearMipMapLinearFilter, LinearMipMapNearestFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, LinearToneMapping, Loader, LoaderUtils, LoadingManager, LogLuvEncoding, LoopOnce, LoopPingPong, LoopRepeat, LuminanceAlphaFormat, LuminanceFormat, MOUSE, Material, MaterialLoader, _Math as Math, Matrix3, Matrix4, MaxEquation, Mesh, MeshBasicMaterial, MeshDepthMaterial, MeshDistanceMaterial, MeshFaceMaterial, MeshLambertMaterial, MeshMatcapMaterial, MeshNormalMaterial, MeshPhongMaterial, MeshPhysicalMaterial, MeshStandardMaterial, MeshToonMaterial, MinEquation, MirroredRepeatWrapping, MixOperation, MultiMaterial, MultiplyBlending, MultiplyOperation, NearestFilter, NearestMipMapLinearFilter, NearestMipMapNearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, NeverDepth, NeverStencilFunc, NoBlending, NoColors, NoToneMapping, NormalBlending, NotEqualDepth, NotEqualStencilFunc, NumberKeyframeTrack, Object3D, ObjectLoader, ObjectSpaceNormalMap, OctahedronBufferGeometry, OctahedronGeometry, OneFactor, OneMinusDstAlphaFactor, OneMinusDstColorFactor, OneMinusSrcAlphaFactor, OneMinusSrcColorFactor, OrthographicCamera, PCFShadowMap, PCFSoftShadowMap, ParametricBufferGeometry, ParametricGeometry, Particle, ParticleBasicMaterial, ParticleSystem, ParticleSystemMaterial, Path, PerspectiveCamera, Plane, PlaneBufferGeometry, PlaneGeometry, PlaneHelper, PointCloud, PointCloudMaterial, PointLight, PointLightHelper, Points, PointsMaterial, PolarGridHelper, PolyhedronBufferGeometry, PolyhedronGeometry, PositionalAudio, PositionalAudioHelper, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, Quaternion, QuaternionKeyframeTrack, QuaternionLinearInterpolant, REVISION, RGBADepthPacking, RGBAFormat, RGBA_ASTC_10x10_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGBDEncoding, RGBEEncoding, RGBEFormat, RGBFormat, RGBM16Encoding, RGBM7Encoding, RGB_ETC1_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGB_S3TC_DXT1_Format, RawShaderMaterial, Ray, Raycaster, RectAreaLight, RectAreaLightHelper, RedFormat, ReinhardToneMapping, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, RingBufferGeometry, RingGeometry, Scene, SceneUtils, ShaderChunk, ShaderLib, ShaderMaterial, ShadowMaterial, Shape, ShapeBufferGeometry, ShapeGeometry, ShapePath, ShapeUtils, ShortType, Skeleton, SkeletonHelper, SkinnedMesh, SmoothShading, Sphere, SphereBufferGeometry, SphereGeometry, Spherical, SphericalHarmonics3, SphericalReflectionMapping, Spline, SplineCurve, SplineCurve3, SpotLight, SpotLightHelper, SpotLightShadow, Sprite, SpriteMaterial, SrcAlphaFactor, SrcAlphaSaturateFactor, SrcColorFactor, StaticCopyUsage, StaticDrawUsage, StaticReadUsage, StereoCamera, StreamCopyUsage, StreamDrawUsage, StreamReadUsage, StringKeyframeTrack, SubtractEquation, SubtractiveBlending, TOUCH, TangentSpaceNormalMap, TetrahedronBufferGeometry, TetrahedronGeometry, TextBufferGeometry, TextGeometry, Texture, TextureLoader, TorusBufferGeometry, TorusGeometry, TorusKnotBufferGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeBufferGeometry, TubeGeometry, UVMapping, Uint16Attribute, Uint16BufferAttribute, Uint32Attribute, Uint32BufferAttribute, Uint8Attribute, Uint8BufferAttribute, Uint8ClampedAttribute, Uint8ClampedBufferAttribute, Uncharted2ToneMapping, Uniform, UniformsLib, UniformsUtils, UnsignedByteType, UnsignedInt248Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShort565Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, VectorKeyframeTrack, Vertex, VertexColors, VertexNormalsHelper, VideoTexture, WebGLMultisampleRenderTarget, WebGLRenderTarget, WebGLRenderTargetCube, WebGLRenderer, WebGLUtils, WireframeGeometry, WireframeHelper, WrapAroundEnding, XHRLoader, ZeroCurvatureEnding, ZeroFactor, ZeroSlopeEnding, ZeroStencilOp, sRGBEncoding };","module.exports = require(\"regenerator-runtime\");\n","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","var global = require('../internals/global');\n\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar redefine = require('../internals/redefine');\n\nvar setGlobal = require('../internals/set-global');\n\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar isForced = require('../internals/is-forced');\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\n\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\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n\n if (target) for (key in source) {\n sourceProperty = source[key];\n\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); // contained in target\n\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n } // add a flag to not completely full polyfills\n\n\n if (options.sham || targetProperty && targetProperty.sham) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n } // extend global\n\n\n redefine(target, key, sourceProperty, options);\n }\n};","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport * from \"./abstractComponent\";\nexport * from \"./abstractComponent2\";\nexport * from \"./abstractPureComponent\";\nexport * from \"./abstractPureComponent2\";\nexport * from \"./alignment\";\nexport * from \"./boundary\";\nexport * from \"./colors\";\nexport * from \"./constructor\";\nexport * from \"./elevation\";\nexport * from \"./intent\";\nexport * from \"./position\";\nexport * from \"./props\";\nexport * from \"./refs\";\nimport * as Classes from \"./classes\";\nimport * as Keys from \"./keys\";\nimport * as Utils from \"./utils\";\nexport { Classes, Keys, Utils }; // NOTE: Errors is not exported in public API","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport * from \"./accessibility\";\nexport * from \"./common\";\nexport * from \"./components\";","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","var HttpResponse =\n/** @class */\nfunction () {\n function HttpResponse(options) {\n this.statusCode = options.statusCode;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n\n HttpResponse.isInstance = function (response) {\n //determine if response is a valid HttpResponse\n if (!response) return false;\n var resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n };\n\n return HttpResponse;\n}();\n\nexport { HttpResponse };","import { __assign, __read, __spreadArray } from \"tslib\";\n\nvar HttpRequest =\n/** @class */\nfunction () {\n function HttpRequest(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol ? options.protocol.substr(-1) !== \":\" ? options.protocol + \":\" : options.protocol : \"https:\";\n this.path = options.path ? options.path.charAt(0) !== \"/\" ? \"/\" + options.path : options.path : \"/\";\n }\n\n HttpRequest.isInstance = function (request) {\n //determine if request is a valid httpRequest\n if (!request) return false;\n var req = request;\n return \"method\" in req && \"protocol\" in req && \"hostname\" in req && \"path\" in req && typeof req[\"query\"] === \"object\" && typeof req[\"headers\"] === \"object\";\n };\n\n HttpRequest.prototype.clone = function () {\n var cloned = new HttpRequest(__assign(__assign({}, this), {\n headers: __assign({}, this.headers)\n }));\n if (cloned.query) cloned.query = cloneQuery(cloned.query);\n return cloned;\n };\n\n return HttpRequest;\n}();\n\nexport { HttpRequest };\n\nfunction cloneQuery(query) {\n return Object.keys(query).reduce(function (carry, paramName) {\n var _a;\n\n var param = query[paramName];\n return __assign(__assign({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? __spreadArray([], __read(param)) : param, _a));\n }, {});\n}","export function isValidHostname(hostname) {\n var hostPattern = /^[a-z0-9][a-z0-9\\.\\-]*[a-z0-9]$/;\n return hostPattern.test(hostname);\n}","export * from \"./httpResponse\";\nexport * from \"./httpRequest\";\nexport * from \"./httpHandler\";\nexport * from \"./isValidHostname\";","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : new P(function (resolve) {\n resolve(result.value);\n }).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator],\n i = 0;\n if (m) return m.call(o);\n return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n\n function classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n var argType = typeof arg;\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg) && arg.length) {\n var inner = classNames.apply(null, arg);\n\n if (inner) {\n classes.push(inner);\n }\n } else if (argType === 'object') {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n\n return classes.join(' ');\n }\n\n if (typeof module !== 'undefined' && module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n }\n\n return it;\n};","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign } from \"tslib\";\nexport var DISPLAYNAME_PREFIX = \"Blueprint3\";\n/** A collection of curated prop keys used across our Components which are not valid HTMLElement props. */\n\nvar INVALID_PROPS = [\"active\", \"alignText\", \"containerRef\", \"current\", \"elementRef\", \"fill\", \"icon\", \"inputRef\", \"intent\", \"inline\", \"large\", \"loading\", \"leftElement\", \"leftIcon\", \"minimal\", \"onRemove\", \"outlined\", \"panel\", \"panelClassName\", \"popoverProps\", \"rightElement\", \"rightIcon\", \"round\", \"small\", \"text\"];\n/**\n * Typically applied to HTMLElements to filter out blacklisted props. When applied to a Component,\n * can filter props from being passed down to the children. Can also filter by a combined list of\n * supplied prop keys and the blacklist (only appropriate for HTMLElements).\n * @param props The original props object to filter down.\n * @param {string[]} invalidProps If supplied, overwrites the default blacklist.\n * @param {boolean} shouldMerge If true, will merge supplied invalidProps and blacklist together.\n */\n\nexport function removeNonHTMLProps(props, invalidProps, shouldMerge) {\n if (invalidProps === void 0) {\n invalidProps = INVALID_PROPS;\n }\n\n if (shouldMerge === void 0) {\n shouldMerge = false;\n }\n\n if (shouldMerge) {\n invalidProps = invalidProps.concat(INVALID_PROPS);\n }\n\n return invalidProps.reduce(function (prev, curr) {\n // Props with hyphens (e.g. data-*) are always considered html props\n if (curr.indexOf(\"-\") !== -1) {\n return prev;\n }\n\n if (prev.hasOwnProperty(curr)) {\n delete prev[curr];\n }\n\n return prev;\n }, __assign({}, props));\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ReactCSS = exports.loop = exports.handleActive = exports.handleHover = exports.hover = undefined;\n\nvar _flattenNames = require('./flattenNames');\n\nvar _flattenNames2 = _interopRequireDefault(_flattenNames);\n\nvar _mergeClasses = require('./mergeClasses');\n\nvar _mergeClasses2 = _interopRequireDefault(_mergeClasses);\n\nvar _autoprefix = require('./autoprefix');\n\nvar _autoprefix2 = _interopRequireDefault(_autoprefix);\n\nvar _hover2 = require('./components/hover');\n\nvar _hover3 = _interopRequireDefault(_hover2);\n\nvar _active = require('./components/active');\n\nvar _active2 = _interopRequireDefault(_active);\n\nvar _loop2 = require('./loop');\n\nvar _loop3 = _interopRequireDefault(_loop2);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.hover = _hover3.default;\nexports.handleHover = _hover3.default;\nexports.handleActive = _active2.default;\nexports.loop = _loop3.default;\n\nvar ReactCSS = exports.ReactCSS = function ReactCSS(classes) {\n for (var _len = arguments.length, activations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n activations[_key - 1] = arguments[_key];\n }\n\n var activeNames = (0, _flattenNames2.default)(activations);\n var merged = (0, _mergeClasses2.default)(classes, activeNames);\n return (0, _autoprefix2.default)(merged);\n};\n\nexports.default = ReactCSS;","module.exports = false;","var check = function check(it) {\n return it && it.Math == Math && it;\n}; // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\n\nmodule.exports = // eslint-disable-next-line no-undef\ncheck(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || check(typeof self == 'object' && self) || check(typeof global == 'object' && global) || // eslint-disable-next-line no-new-func\nFunction('return this')();","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n } // Binding \"this\" is important for shallow renderer support.\n\n\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(prevProps, prevState);\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n} // React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\n\n\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (typeof Component.getDerivedStateFromProps !== 'function' && typeof prototype.getSnapshotBeforeUpdate !== 'function') {\n return Component;\n } // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n\n\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n\n if (foundWillMountName !== null || foundWillReceivePropsName !== null || foundWillUpdateName !== null) {\n var componentName = Component.displayName || Component.name;\n var newApiName = typeof Component.getDerivedStateFromProps === 'function' ? 'getDerivedStateFromProps()' : 'getSnapshotBeforeUpdate()';\n throw Error('Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' + componentName + ' uses ' + newApiName + ' but also contains the following legacy lifecycles:' + (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') + (foundWillReceivePropsName !== null ? '\\n ' + foundWillReceivePropsName : '') + (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') + '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' + 'https://fb.me/react-async-component-lifecycle-hooks');\n } // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n\n\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n } // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n\n\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error('Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype');\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(prevProps, prevState, maybeSnapshot) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag ? this.__reactInternalSnapshot : maybeSnapshot;\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}",";\n\n(function (root, factory) {\n if (typeof exports === \"object\") {\n // CommonJS\n module.exports = exports = factory();\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([], factory);\n } else {\n // Global (browser)\n root.CryptoJS = factory();\n }\n})(this, function () {\n /*globals window, global, require*/\n\n /**\n * CryptoJS core components.\n */\n var CryptoJS = CryptoJS || function (Math, undefined) {\n var crypto; // Native crypto from window (Browser)\n\n if (typeof window !== 'undefined' && window.crypto) {\n crypto = window.crypto;\n } // Native crypto in web worker (Browser)\n\n\n if (typeof self !== 'undefined' && self.crypto) {\n crypto = self.crypto;\n } // Native crypto from worker\n\n\n if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n crypto = globalThis.crypto;\n } // Native (experimental IE 11) crypto from window (Browser)\n\n\n if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n crypto = window.msCrypto;\n } // Native crypto from global (NodeJS)\n\n\n if (!crypto && typeof global !== 'undefined' && global.crypto) {\n crypto = global.crypto;\n } // Native crypto import via require (NodeJS)\n\n\n if (!crypto && typeof require === 'function') {\n try {\n crypto = require('crypto');\n } catch (err) {}\n }\n /*\n * Cryptographically secure pseudorandom number generator\n *\n * As Math.random() is cryptographically not safe to use\n */\n\n\n var cryptoSecureRandomInt = function cryptoSecureRandomInt() {\n if (crypto) {\n // Use getRandomValues method (Browser)\n if (typeof crypto.getRandomValues === 'function') {\n try {\n return crypto.getRandomValues(new Uint32Array(1))[0];\n } catch (err) {}\n } // Use randomBytes method (NodeJS)\n\n\n if (typeof crypto.randomBytes === 'function') {\n try {\n return crypto.randomBytes(4).readInt32LE();\n } catch (err) {}\n }\n }\n\n throw new Error('Native crypto module could not be used to get secure random number.');\n };\n /*\n * Local polyfill of Object.create\n */\n\n\n var create = Object.create || function () {\n function F() {}\n\n return function (obj) {\n var subtype;\n F.prototype = obj;\n subtype = new F();\n F.prototype = null;\n return subtype;\n };\n }();\n /**\n * CryptoJS namespace.\n */\n\n\n var C = {};\n /**\n * Library namespace.\n */\n\n var C_lib = C.lib = {};\n /**\n * Base object for prototypal inheritance.\n */\n\n var Base = C_lib.Base = function () {\n return {\n /**\n * Creates a new object that inherits from this object.\n *\n * @param {Object} overrides Properties to copy into the new object.\n *\n * @return {Object} The new object.\n *\n * @static\n *\n * @example\n *\n * var MyType = CryptoJS.lib.Base.extend({\n * field: 'value',\n *\n * method: function () {\n * }\n * });\n */\n extend: function extend(overrides) {\n // Spawn\n var subtype = create(this); // Augment\n\n if (overrides) {\n subtype.mixIn(overrides);\n } // Create default initializer\n\n\n if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n subtype.init = function () {\n subtype.$super.init.apply(this, arguments);\n };\n } // Initializer's prototype is the subtype object\n\n\n subtype.init.prototype = subtype; // Reference supertype\n\n subtype.$super = this;\n return subtype;\n },\n\n /**\n * Extends this object and runs the init method.\n * Arguments to create() will be passed to init().\n *\n * @return {Object} The new object.\n *\n * @static\n *\n * @example\n *\n * var instance = MyType.create();\n */\n create: function create() {\n var instance = this.extend();\n instance.init.apply(instance, arguments);\n return instance;\n },\n\n /**\n * Initializes a newly created object.\n * Override this method to add some logic when your objects are created.\n *\n * @example\n *\n * var MyType = CryptoJS.lib.Base.extend({\n * init: function () {\n * // ...\n * }\n * });\n */\n init: function init() {},\n\n /**\n * Copies properties into this object.\n *\n * @param {Object} properties The properties to mix in.\n *\n * @example\n *\n * MyType.mixIn({\n * field: 'value'\n * });\n */\n mixIn: function mixIn(properties) {\n for (var propertyName in properties) {\n if (properties.hasOwnProperty(propertyName)) {\n this[propertyName] = properties[propertyName];\n }\n } // IE won't copy toString using the loop above\n\n\n if (properties.hasOwnProperty('toString')) {\n this.toString = properties.toString;\n }\n },\n\n /**\n * Creates a copy of this object.\n *\n * @return {Object} The clone.\n *\n * @example\n *\n * var clone = instance.clone();\n */\n clone: function clone() {\n return this.init.prototype.extend(this);\n }\n };\n }();\n /**\n * An array of 32-bit words.\n *\n * @property {Array} words The array of 32-bit words.\n * @property {number} sigBytes The number of significant bytes in this word array.\n */\n\n\n var WordArray = C_lib.WordArray = Base.extend({\n /**\n * Initializes a newly created word array.\n *\n * @param {Array} words (Optional) An array of 32-bit words.\n * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n *\n * @example\n *\n * var wordArray = CryptoJS.lib.WordArray.create();\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n */\n init: function init(words, sigBytes) {\n words = this.words = words || [];\n\n if (sigBytes != undefined) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 4;\n }\n },\n\n /**\n * Converts this word array to a string.\n *\n * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n *\n * @return {string} The stringified word array.\n *\n * @example\n *\n * var string = wordArray + '';\n * var string = wordArray.toString();\n * var string = wordArray.toString(CryptoJS.enc.Utf8);\n */\n toString: function toString(encoder) {\n return (encoder || Hex).stringify(this);\n },\n\n /**\n * Concatenates a word array to this word array.\n *\n * @param {WordArray} wordArray The word array to append.\n *\n * @return {WordArray} This word array.\n *\n * @example\n *\n * wordArray1.concat(wordArray2);\n */\n concat: function concat(wordArray) {\n // Shortcuts\n var thisWords = this.words;\n var thatWords = wordArray.words;\n var thisSigBytes = this.sigBytes;\n var thatSigBytes = wordArray.sigBytes; // Clamp excess bits\n\n this.clamp(); // Concat\n\n if (thisSigBytes % 4) {\n // Copy one byte at a time\n for (var i = 0; i < thatSigBytes; i++) {\n var thatByte = thatWords[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n thisWords[thisSigBytes + i >>> 2] |= thatByte << 24 - (thisSigBytes + i) % 4 * 8;\n }\n } else {\n // Copy one word at a time\n for (var j = 0; j < thatSigBytes; j += 4) {\n thisWords[thisSigBytes + j >>> 2] = thatWords[j >>> 2];\n }\n }\n\n this.sigBytes += thatSigBytes; // Chainable\n\n return this;\n },\n\n /**\n * Removes insignificant bits.\n *\n * @example\n *\n * wordArray.clamp();\n */\n clamp: function clamp() {\n // Shortcuts\n var words = this.words;\n var sigBytes = this.sigBytes; // Clamp\n\n words[sigBytes >>> 2] &= 0xffffffff << 32 - sigBytes % 4 * 8;\n words.length = Math.ceil(sigBytes / 4);\n },\n\n /**\n * Creates a copy of this word array.\n *\n * @return {WordArray} The clone.\n *\n * @example\n *\n * var clone = wordArray.clone();\n */\n clone: function clone() {\n var clone = Base.clone.call(this);\n clone.words = this.words.slice(0);\n return clone;\n },\n\n /**\n * Creates a word array filled with random bytes.\n *\n * @param {number} nBytes The number of random bytes to generate.\n *\n * @return {WordArray} The random word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.lib.WordArray.random(16);\n */\n random: function random(nBytes) {\n var words = [];\n\n for (var i = 0; i < nBytes; i += 4) {\n words.push(cryptoSecureRandomInt());\n }\n\n return new WordArray.init(words, nBytes);\n }\n });\n /**\n * Encoder namespace.\n */\n\n var C_enc = C.enc = {};\n /**\n * Hex encoding strategy.\n */\n\n var Hex = C_enc.Hex = {\n /**\n * Converts a word array to a hex string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The hex string.\n *\n * @static\n *\n * @example\n *\n * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n */\n stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes; // Convert\n\n var hexChars = [];\n\n for (var i = 0; i < sigBytes; i++) {\n var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n hexChars.push((bite >>> 4).toString(16));\n hexChars.push((bite & 0x0f).toString(16));\n }\n\n return hexChars.join('');\n },\n\n /**\n * Converts a hex string to a word array.\n *\n * @param {string} hexStr The hex string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n */\n parse: function parse(hexStr) {\n // Shortcut\n var hexStrLength = hexStr.length; // Convert\n\n var words = [];\n\n for (var i = 0; i < hexStrLength; i += 2) {\n words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << 24 - i % 8 * 4;\n }\n\n return new WordArray.init(words, hexStrLength / 2);\n }\n };\n /**\n * Latin1 encoding strategy.\n */\n\n var Latin1 = C_enc.Latin1 = {\n /**\n * Converts a word array to a Latin1 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Latin1 string.\n *\n * @static\n *\n * @example\n *\n * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n */\n stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes; // Convert\n\n var latin1Chars = [];\n\n for (var i = 0; i < sigBytes; i++) {\n var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n latin1Chars.push(String.fromCharCode(bite));\n }\n\n return latin1Chars.join('');\n },\n\n /**\n * Converts a Latin1 string to a word array.\n *\n * @param {string} latin1Str The Latin1 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n */\n parse: function parse(latin1Str) {\n // Shortcut\n var latin1StrLength = latin1Str.length; // Convert\n\n var words = [];\n\n for (var i = 0; i < latin1StrLength; i++) {\n words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << 24 - i % 4 * 8;\n }\n\n return new WordArray.init(words, latin1StrLength);\n }\n };\n /**\n * UTF-8 encoding strategy.\n */\n\n var Utf8 = C_enc.Utf8 = {\n /**\n * Converts a word array to a UTF-8 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The UTF-8 string.\n *\n * @static\n *\n * @example\n *\n * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n */\n stringify: function stringify(wordArray) {\n try {\n return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n } catch (e) {\n throw new Error('Malformed UTF-8 data');\n }\n },\n\n /**\n * Converts a UTF-8 string to a word array.\n *\n * @param {string} utf8Str The UTF-8 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n */\n parse: function parse(utf8Str) {\n return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n }\n };\n /**\n * Abstract buffered block algorithm template.\n *\n * The property blockSize must be implemented in a concrete subtype.\n *\n * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n */\n\n var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n /**\n * Resets this block algorithm's data buffer to its initial state.\n *\n * @example\n *\n * bufferedBlockAlgorithm.reset();\n */\n reset: function reset() {\n // Initial values\n this._data = new WordArray.init();\n this._nDataBytes = 0;\n },\n\n /**\n * Adds new data to this block algorithm's buffer.\n *\n * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n *\n * @example\n *\n * bufferedBlockAlgorithm._append('data');\n * bufferedBlockAlgorithm._append(wordArray);\n */\n _append: function _append(data) {\n // Convert string to WordArray, else assume WordArray already\n if (typeof data == 'string') {\n data = Utf8.parse(data);\n } // Append\n\n\n this._data.concat(data);\n\n this._nDataBytes += data.sigBytes;\n },\n\n /**\n * Processes available data blocks.\n *\n * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n *\n * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n *\n * @return {WordArray} The processed data.\n *\n * @example\n *\n * var processedData = bufferedBlockAlgorithm._process();\n * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n */\n _process: function _process(doFlush) {\n var processedWords; // Shortcuts\n\n var data = this._data;\n var dataWords = data.words;\n var dataSigBytes = data.sigBytes;\n var blockSize = this.blockSize;\n var blockSizeBytes = blockSize * 4; // Count blocks ready\n\n var nBlocksReady = dataSigBytes / blockSizeBytes;\n\n if (doFlush) {\n // Round up to include partial blocks\n nBlocksReady = Math.ceil(nBlocksReady);\n } else {\n // Round down to include only full blocks,\n // less the number of blocks that must remain in the buffer\n nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n } // Count words ready\n\n\n var nWordsReady = nBlocksReady * blockSize; // Count bytes ready\n\n var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); // Process blocks\n\n if (nWordsReady) {\n for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n // Perform concrete-algorithm logic\n this._doProcessBlock(dataWords, offset);\n } // Remove processed words\n\n\n processedWords = dataWords.splice(0, nWordsReady);\n data.sigBytes -= nBytesReady;\n } // Return processed words\n\n\n return new WordArray.init(processedWords, nBytesReady);\n },\n\n /**\n * Creates a copy of this object.\n *\n * @return {Object} The clone.\n *\n * @example\n *\n * var clone = bufferedBlockAlgorithm.clone();\n */\n clone: function clone() {\n var clone = Base.clone.call(this);\n clone._data = this._data.clone();\n return clone;\n },\n _minBufferSize: 0\n });\n /**\n * Abstract hasher template.\n *\n * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n */\n\n var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n /**\n * Configuration options.\n */\n cfg: Base.extend(),\n\n /**\n * Initializes a newly created hasher.\n *\n * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n *\n * @example\n *\n * var hasher = CryptoJS.algo.SHA256.create();\n */\n init: function init(cfg) {\n // Apply config defaults\n this.cfg = this.cfg.extend(cfg); // Set initial values\n\n this.reset();\n },\n\n /**\n * Resets this hasher to its initial state.\n *\n * @example\n *\n * hasher.reset();\n */\n reset: function reset() {\n // Reset data buffer\n BufferedBlockAlgorithm.reset.call(this); // Perform concrete-hasher logic\n\n this._doReset();\n },\n\n /**\n * Updates this hasher with a message.\n *\n * @param {WordArray|string} messageUpdate The message to append.\n *\n * @return {Hasher} This hasher.\n *\n * @example\n *\n * hasher.update('message');\n * hasher.update(wordArray);\n */\n update: function update(messageUpdate) {\n // Append\n this._append(messageUpdate); // Update the hash\n\n\n this._process(); // Chainable\n\n\n return this;\n },\n\n /**\n * Finalizes the hash computation.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\n *\n * @return {WordArray} The hash.\n *\n * @example\n *\n * var hash = hasher.finalize();\n * var hash = hasher.finalize('message');\n * var hash = hasher.finalize(wordArray);\n */\n finalize: function finalize(messageUpdate) {\n // Final message update\n if (messageUpdate) {\n this._append(messageUpdate);\n } // Perform concrete-hasher logic\n\n\n var hash = this._doFinalize();\n\n return hash;\n },\n blockSize: 512 / 32,\n\n /**\n * Creates a shortcut function to a hasher's object interface.\n *\n * @param {Hasher} hasher The hasher to create a helper for.\n *\n * @return {Function} The shortcut function.\n *\n * @static\n *\n * @example\n *\n * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n */\n _createHelper: function _createHelper(hasher) {\n return function (message, cfg) {\n return new hasher.init(cfg).finalize(message);\n };\n },\n\n /**\n * Creates a shortcut function to the HMAC's object interface.\n *\n * @param {Hasher} hasher The hasher to use in this HMAC helper.\n *\n * @return {Function} The shortcut function.\n *\n * @static\n *\n * @example\n *\n * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n */\n _createHmacHelper: function _createHmacHelper(hasher) {\n return function (message, key) {\n return new C_algo.HMAC.init(hasher, key).finalize(message);\n };\n }\n });\n /**\n * Algorithm namespace.\n */\n\n var C_algo = C.algo = {};\n return C;\n }(Math);\n\n return CryptoJS;\n});","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};","var anObject = require('../internals/an-object');\n\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\n\nvar toLength = require('../internals/to-length');\n\nvar bind = require('../internals/function-bind-context');\n\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function Result(stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable'); // optimisation for array iterators\n\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES ? boundFunction(anObject(step = iterable[index])[0], step[1]) : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n }\n\n return new Result(false);\n }\n\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n }\n\n return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n }\n\n return it;\n};","var global = require('../internals/global');\n\nvar shared = require('../internals/shared');\n\nvar has = require('../internals/has');\n\nvar uid = require('../internals/uid');\n\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n\n return WellKnownSymbolsStore[name];\n};","var fails = require('../internals/fails'); // Thank's IE8 for his funny defineProperty\n\n\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, {\n get: function get() {\n return 7;\n }\n })[1] != 7;\n});","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min; // `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\n\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};","'use strict';\n\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\n\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar global = require('../internals/global');\n\nvar isObject = require('../internals/is-object');\n\nvar has = require('../internals/has');\n\nvar classof = require('../internals/classof');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar redefine = require('../internals/redefine');\n\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG'); // Fixing native typed arrays in Opera Presto crashes the browser, see #595\n\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME;\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 isView = function isView(it) {\n var klass = classof(it);\n return klass === 'DataView' || has(TypedArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function isTypedArray(it) {\n return isObject(it) && has(TypedArrayConstructorsList, classof(it));\n};\n\nvar aTypedArray = function aTypedArray(it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function aTypedArrayConstructor(C) {\n if (setPrototypeOf) {\n if (isPrototypeOf.call(TypedArray, C)) return C;\n } else for (var ARRAY in TypedArrayConstructorsList) {\n if (has(TypedArrayConstructorsList, NAME)) {\n var TypedArrayConstructor = global[ARRAY];\n\n if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n return C;\n }\n }\n }\n\n throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function exportTypedArrayMethod(KEY, property, forced) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n\n if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n delete TypedArrayConstructor.prototype[KEY];\n }\n }\n\n if (!TypedArrayPrototype[KEY] || forced) {\n redefine(TypedArrayPrototype, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n }\n};\n\nvar exportTypedArrayStaticMethod = function exportTypedArrayStaticMethod(KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n\n if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {\n delete TypedArrayConstructor[KEY];\n }\n }\n\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);\n } catch (error) {\n /* empty */\n }\n } else return;\n }\n\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n redefine(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n} // WebKit bug - typed arrays constructors prototype is Object.prototype\n\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\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} // WebKit bug - one more object in Uint8ClampedArray prototype chain\n\n\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, {\n get: function get() {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n\n for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}","var DESCRIPTORS = require('../internals/descriptors');\n\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar anObject = require('../internals/an-object');\n\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty; // `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\n\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) {\n /* empty */\n }\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};","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Alignment } from \"./alignment\";\nimport { Elevation } from \"./elevation\";\nimport { Intent } from \"./intent\";\nimport { Position } from \"./position\";\nvar NS = process.env.BLUEPRINT_NAMESPACE || process.env.REACT_APP_BLUEPRINT_NAMESPACE || \"bp3\"; // modifiers\n\nexport var ACTIVE = NS + \"-active\";\nexport var ALIGN_LEFT = NS + \"-align-left\";\nexport var ALIGN_RIGHT = NS + \"-align-right\";\nexport var DARK = NS + \"-dark\";\nexport var DISABLED = NS + \"-disabled\";\nexport var FILL = NS + \"-fill\";\nexport var FIXED = NS + \"-fixed\";\nexport var FIXED_TOP = NS + \"-fixed-top\";\nexport var INLINE = NS + \"-inline\";\nexport var INTERACTIVE = NS + \"-interactive\";\nexport var LARGE = NS + \"-large\";\nexport var LOADING = NS + \"-loading\";\nexport var MINIMAL = NS + \"-minimal\";\nexport var OUTLINED = NS + \"-outlined\";\nexport var MULTILINE = NS + \"-multiline\";\nexport var ROUND = NS + \"-round\";\nexport var SMALL = NS + \"-small\";\nexport var VERTICAL = NS + \"-vertical\";\nexport var POSITION_TOP = positionClass(Position.TOP);\nexport var POSITION_BOTTOM = positionClass(Position.BOTTOM);\nexport var POSITION_LEFT = positionClass(Position.LEFT);\nexport var POSITION_RIGHT = positionClass(Position.RIGHT);\nexport var ELEVATION_0 = elevationClass(Elevation.ZERO);\nexport var ELEVATION_1 = elevationClass(Elevation.ONE);\nexport var ELEVATION_2 = elevationClass(Elevation.TWO);\nexport var ELEVATION_3 = elevationClass(Elevation.THREE);\nexport var ELEVATION_4 = elevationClass(Elevation.FOUR);\nexport var INTENT_PRIMARY = intentClass(Intent.PRIMARY);\nexport var INTENT_SUCCESS = intentClass(Intent.SUCCESS);\nexport var INTENT_WARNING = intentClass(Intent.WARNING);\nexport var INTENT_DANGER = intentClass(Intent.DANGER);\nexport var FOCUS_DISABLED = NS + \"-focus-disabled\"; // text utilities\n\nexport var UI_TEXT = NS + \"-ui-text\";\nexport var RUNNING_TEXT = NS + \"-running-text\";\nexport var MONOSPACE_TEXT = NS + \"-monospace-text\";\nexport var TEXT_LARGE = NS + \"-text-large\";\nexport var TEXT_SMALL = NS + \"-text-small\";\nexport var TEXT_MUTED = NS + \"-text-muted\";\nexport var TEXT_DISABLED = NS + \"-text-disabled\";\nexport var TEXT_OVERFLOW_ELLIPSIS = NS + \"-text-overflow-ellipsis\"; // textual elements\n\nexport var BLOCKQUOTE = NS + \"-blockquote\";\nexport var CODE = NS + \"-code\";\nexport var CODE_BLOCK = NS + \"-code-block\";\nexport var HEADING = NS + \"-heading\";\nexport var LIST = NS + \"-list\";\nexport var LIST_UNSTYLED = NS + \"-list-unstyled\";\nexport var RTL = NS + \"-rtl\"; // components\n\nexport var ALERT = NS + \"-alert\";\nexport var ALERT_BODY = ALERT + \"-body\";\nexport var ALERT_CONTENTS = ALERT + \"-contents\";\nexport var ALERT_FOOTER = ALERT + \"-footer\";\nexport var BREADCRUMB = NS + \"-breadcrumb\";\nexport var BREADCRUMB_CURRENT = BREADCRUMB + \"-current\";\nexport var BREADCRUMBS = BREADCRUMB + \"s\";\nexport var BREADCRUMBS_COLLAPSED = BREADCRUMB + \"s-collapsed\";\nexport var BUTTON = NS + \"-button\";\nexport var BUTTON_GROUP = BUTTON + \"-group\";\nexport var BUTTON_SPINNER = BUTTON + \"-spinner\";\nexport var BUTTON_TEXT = BUTTON + \"-text\";\nexport var CALLOUT = NS + \"-callout\";\nexport var CALLOUT_ICON = CALLOUT + \"-icon\";\nexport var CARD = NS + \"-card\";\nexport var COLLAPSE = NS + \"-collapse\";\nexport var COLLAPSE_BODY = COLLAPSE + \"-body\";\nexport var COLLAPSIBLE_LIST = NS + \"-collapse-list\";\nexport var CONTEXT_MENU = NS + \"-context-menu\";\nexport var CONTEXT_MENU_POPOVER_TARGET = CONTEXT_MENU + \"-popover-target\";\nexport var CONTROL_GROUP = NS + \"-control-group\";\nexport var DIALOG = NS + \"-dialog\";\nexport var DIALOG_CONTAINER = DIALOG + \"-container\";\nexport var DIALOG_BODY = DIALOG + \"-body\";\nexport var DIALOG_CLOSE_BUTTON = DIALOG + \"-close-button\";\nexport var DIALOG_FOOTER = DIALOG + \"-footer\";\nexport var DIALOG_FOOTER_ACTIONS = DIALOG + \"-footer-actions\";\nexport var DIALOG_HEADER = DIALOG + \"-header\";\nexport var DIVIDER = NS + \"-divider\";\nexport var DRAWER = NS + \"-drawer\";\nexport var DRAWER_BODY = DRAWER + \"-body\";\nexport var DRAWER_FOOTER = DRAWER + \"-footer\";\nexport var DRAWER_HEADER = DRAWER + \"-header\";\nexport var EDITABLE_TEXT = NS + \"-editable-text\";\nexport var EDITABLE_TEXT_CONTENT = EDITABLE_TEXT + \"-content\";\nexport var EDITABLE_TEXT_EDITING = EDITABLE_TEXT + \"-editing\";\nexport var EDITABLE_TEXT_INPUT = EDITABLE_TEXT + \"-input\";\nexport var EDITABLE_TEXT_PLACEHOLDER = EDITABLE_TEXT + \"-placeholder\";\nexport var FLEX_EXPANDER = NS + \"-flex-expander\";\nexport var HTML_SELECT = NS + \"-html-select\";\n/** @deprecated prefer `` component */\n\nexport var SELECT = NS + \"-select\";\nexport var HTML_TABLE = NS + \"-html-table\";\nexport var HTML_TABLE_BORDERED = HTML_TABLE + \"-bordered\";\nexport var HTML_TABLE_CONDENSED = HTML_TABLE + \"-condensed\";\nexport var HTML_TABLE_STRIPED = HTML_TABLE + \"-striped\";\nexport var INPUT = NS + \"-input\";\nexport var INPUT_GHOST = INPUT + \"-ghost\";\nexport var INPUT_GROUP = INPUT + \"-group\";\nexport var INPUT_LEFT_CONTAINER = INPUT + \"-left-container\";\nexport var INPUT_ACTION = INPUT + \"-action\";\nexport var CONTROL = NS + \"-control\";\nexport var CONTROL_INDICATOR = CONTROL + \"-indicator\";\nexport var CONTROL_INDICATOR_CHILD = CONTROL_INDICATOR + \"-child\";\nexport var CHECKBOX = NS + \"-checkbox\";\nexport var RADIO = NS + \"-radio\";\nexport var SWITCH = NS + \"-switch\";\nexport var SWITCH_INNER_TEXT = SWITCH + \"-inner-text\";\nexport var FILE_INPUT = NS + \"-file-input\";\nexport var FILE_INPUT_HAS_SELECTION = NS + \"-file-input-has-selection\";\nexport var FILE_UPLOAD_INPUT = NS + \"-file-upload-input\";\nexport var FILE_UPLOAD_INPUT_CUSTOM_TEXT = NS + \"-file-upload-input-custom-text\";\nexport var KEY = NS + \"-key\";\nexport var KEY_COMBO = KEY + \"-combo\";\nexport var MODIFIER_KEY = NS + \"-modifier-key\";\nexport var HOTKEY = NS + \"-hotkey\";\nexport var HOTKEY_LABEL = HOTKEY + \"-label\";\nexport var HOTKEY_COLUMN = HOTKEY + \"-column\";\nexport var HOTKEY_DIALOG = HOTKEY + \"-dialog\";\nexport var LABEL = NS + \"-label\";\nexport var FORM_GROUP = NS + \"-form-group\";\nexport var FORM_CONTENT = NS + \"-form-content\";\nexport var FORM_HELPER_TEXT = NS + \"-form-helper-text\";\nexport var MENU = NS + \"-menu\";\nexport var MENU_ITEM = MENU + \"-item\";\nexport var MENU_ITEM_LABEL = MENU_ITEM + \"-label\";\nexport var MENU_SUBMENU = NS + \"-submenu\";\nexport var MENU_DIVIDER = MENU + \"-divider\";\nexport var MENU_HEADER = MENU + \"-header\";\nexport var NAVBAR = NS + \"-navbar\";\nexport var NAVBAR_GROUP = NAVBAR + \"-group\";\nexport var NAVBAR_HEADING = NAVBAR + \"-heading\";\nexport var NAVBAR_DIVIDER = NAVBAR + \"-divider\";\nexport var NON_IDEAL_STATE = NS + \"-non-ideal-state\";\nexport var NON_IDEAL_STATE_VISUAL = NON_IDEAL_STATE + \"-visual\";\nexport var NUMERIC_INPUT = NS + \"-numeric-input\";\nexport var OVERFLOW_LIST = NS + \"-overflow-list\";\nexport var OVERFLOW_LIST_SPACER = OVERFLOW_LIST + \"-spacer\";\nexport var OVERLAY = NS + \"-overlay\";\nexport var OVERLAY_BACKDROP = OVERLAY + \"-backdrop\";\nexport var OVERLAY_CONTAINER = OVERLAY + \"-container\";\nexport var OVERLAY_CONTENT = OVERLAY + \"-content\";\nexport var OVERLAY_INLINE = OVERLAY + \"-inline\";\nexport var OVERLAY_OPEN = OVERLAY + \"-open\";\nexport var OVERLAY_SCROLL_CONTAINER = OVERLAY + \"-scroll-container\";\nexport var PANEL_STACK = NS + \"-panel-stack\";\nexport var PANEL_STACK_HEADER = PANEL_STACK + \"-header\";\nexport var PANEL_STACK_HEADER_BACK = PANEL_STACK + \"-header-back\";\nexport var PANEL_STACK_VIEW = PANEL_STACK + \"-view\";\nexport var POPOVER = NS + \"-popover\";\nexport var POPOVER_ARROW = POPOVER + \"-arrow\";\nexport var POPOVER_BACKDROP = POPOVER + \"-backdrop\";\nexport var POPOVER_CONTENT = POPOVER + \"-content\";\nexport var POPOVER_CONTENT_SIZING = POPOVER_CONTENT + \"-sizing\";\nexport var POPOVER_DISMISS = POPOVER + \"-dismiss\";\nexport var POPOVER_DISMISS_OVERRIDE = POPOVER_DISMISS + \"-override\";\nexport var POPOVER_OPEN = POPOVER + \"-open\";\nexport var POPOVER_TARGET = POPOVER + \"-target\";\nexport var POPOVER_WRAPPER = POPOVER + \"-wrapper\";\nexport var TRANSITION_CONTAINER = NS + \"-transition-container\";\nexport var PROGRESS_BAR = NS + \"-progress-bar\";\nexport var PROGRESS_METER = NS + \"-progress-meter\";\nexport var PROGRESS_NO_STRIPES = NS + \"-no-stripes\";\nexport var PROGRESS_NO_ANIMATION = NS + \"-no-animation\";\nexport var PORTAL = NS + \"-portal\";\nexport var SKELETON = NS + \"-skeleton\";\nexport var SLIDER = NS + \"-slider\";\nexport var SLIDER_AXIS = SLIDER + \"-axis\";\nexport var SLIDER_HANDLE = SLIDER + \"-handle\";\nexport var SLIDER_LABEL = SLIDER + \"-label\";\nexport var SLIDER_TRACK = SLIDER + \"-track\";\nexport var SLIDER_PROGRESS = SLIDER + \"-progress\";\nexport var START = NS + \"-start\";\nexport var END = NS + \"-end\";\nexport var SPINNER = NS + \"-spinner\";\nexport var SPINNER_ANIMATION = SPINNER + \"-animation\";\nexport var SPINNER_HEAD = SPINNER + \"-head\";\nexport var SPINNER_NO_SPIN = NS + \"-no-spin\";\nexport var SPINNER_TRACK = SPINNER + \"-track\";\nexport var TAB = NS + \"-tab\";\nexport var TAB_INDICATOR = TAB + \"-indicator\";\nexport var TAB_INDICATOR_WRAPPER = TAB_INDICATOR + \"-wrapper\";\nexport var TAB_LIST = TAB + \"-list\";\nexport var TAB_PANEL = TAB + \"-panel\";\nexport var TABS = TAB + \"s\";\nexport var TAG = NS + \"-tag\";\nexport var TAG_REMOVE = TAG + \"-remove\";\nexport var TAG_INPUT = NS + \"-tag-input\";\nexport var TAG_INPUT_ICON = TAG_INPUT + \"-icon\";\nexport var TAG_INPUT_VALUES = TAG_INPUT + \"-values\";\nexport var TOAST = NS + \"-toast\";\nexport var TOAST_CONTAINER = TOAST + \"-container\";\nexport var TOAST_MESSAGE = TOAST + \"-message\";\nexport var TOOLTIP = NS + \"-tooltip\";\nexport var TOOLTIP_INDICATOR = TOOLTIP + \"-indicator\";\nexport var TREE = NS + \"-tree\";\nexport var TREE_NODE = NS + \"-tree-node\";\nexport var TREE_NODE_CARET = TREE_NODE + \"-caret\";\nexport var TREE_NODE_CARET_CLOSED = TREE_NODE_CARET + \"-closed\";\nexport var TREE_NODE_CARET_NONE = TREE_NODE_CARET + \"-none\";\nexport var TREE_NODE_CARET_OPEN = TREE_NODE_CARET + \"-open\";\nexport var TREE_NODE_CONTENT = TREE_NODE + \"-content\";\nexport var TREE_NODE_EXPANDED = TREE_NODE + \"-expanded\";\nexport var TREE_NODE_ICON = TREE_NODE + \"-icon\";\nexport var TREE_NODE_LABEL = TREE_NODE + \"-label\";\nexport var TREE_NODE_LIST = TREE_NODE + \"-list\";\nexport var TREE_NODE_SECONDARY_LABEL = TREE_NODE + \"-secondary-label\";\nexport var TREE_NODE_SELECTED = TREE_NODE + \"-selected\";\nexport var TREE_ROOT = NS + \"-tree-root\";\nexport var ICON = NS + \"-icon\";\nexport var ICON_STANDARD = ICON + \"-standard\";\nexport var ICON_LARGE = ICON + \"-large\";\n/**\n * Returns the namespace prefix for all Blueprint CSS classes.\n * Customize this namespace at build time with the `process.env.BLUEPRINT_NAMESPACE` environment variable.\n */\n\nexport function getClassNamespace() {\n return NS;\n}\n/** Return CSS class for alignment. */\n\nexport function alignmentClass(alignment) {\n switch (alignment) {\n case Alignment.LEFT:\n return ALIGN_LEFT;\n\n case Alignment.RIGHT:\n return ALIGN_RIGHT;\n\n default:\n return undefined;\n }\n}\nexport function elevationClass(elevation) {\n if (elevation == null) {\n return undefined;\n }\n\n return NS + \"-elevation-\" + elevation;\n}\n/** Returns CSS class for icon name. */\n\nexport function iconClass(iconName) {\n if (iconName == null) {\n return undefined;\n }\n\n return iconName.indexOf(NS + \"-icon-\") === 0 ? iconName : NS + \"-icon-\" + iconName;\n}\n/** Return CSS class for intent. */\n\nexport function intentClass(intent) {\n if (intent == null || intent === Intent.NONE) {\n return undefined;\n }\n\n return NS + \"-intent-\" + intent.toLowerCase();\n}\nexport function positionClass(position) {\n if (position == null) {\n return undefined;\n }\n\n return NS + \"-position-\" + position;\n}","module.exports = require('./lib/axios');","/**\n * RGB space.\n *\n * @module color-space/rgb\n */\n'use strict';\n\nmodule.exports = {\n name: 'rgb',\n min: [0, 0, 0],\n max: [255, 255, 255],\n channel: ['red', 'green', 'blue'],\n alias: ['RGB']\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Alpha = require('./Alpha');\n\nObject.defineProperty(exports, 'Alpha', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Alpha).default;\n }\n});\n\nvar _Checkboard = require('./Checkboard');\n\nObject.defineProperty(exports, 'Checkboard', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Checkboard).default;\n }\n});\n\nvar _EditableInput = require('./EditableInput');\n\nObject.defineProperty(exports, 'EditableInput', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_EditableInput).default;\n }\n});\n\nvar _Hue = require('./Hue');\n\nObject.defineProperty(exports, 'Hue', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Hue).default;\n }\n});\n\nvar _Raised = require('./Raised');\n\nObject.defineProperty(exports, 'Raised', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Raised).default;\n }\n});\n\nvar _Saturation = require('./Saturation');\n\nObject.defineProperty(exports, 'Saturation', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Saturation).default;\n }\n});\n\nvar _ColorWrap = require('./ColorWrap');\n\nObject.defineProperty(exports, 'ColorWrap', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ColorWrap).default;\n }\n});\n\nvar _Swatch = require('./Swatch');\n\nObject.defineProperty(exports, 'Swatch', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Swatch).default;\n }\n});\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};","var requireObjectCoercible = require('../internals/require-object-coercible'); // `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\n\n\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var Position = {\n BOTTOM: \"bottom\",\n BOTTOM_LEFT: \"bottom-left\",\n BOTTOM_RIGHT: \"bottom-right\",\n LEFT: \"left\",\n LEFT_BOTTOM: \"left-bottom\",\n LEFT_TOP: \"left-top\",\n RIGHT: \"right\",\n RIGHT_BOTTOM: \"right-bottom\",\n RIGHT_TOP: \"right-top\",\n TOP: \"top\",\n TOP_LEFT: \"top-left\",\n TOP_RIGHT: \"top-right\"\n};\nexport function isPositionHorizontal(position) {\n /* istanbul ignore next */\n return position === Position.TOP || position === Position.TOP_LEFT || position === Position.TOP_RIGHT || position === Position.BOTTOM || position === Position.BOTTOM_LEFT || position === Position.BOTTOM_RIGHT;\n}\nexport function isPositionVertical(position) {\n /* istanbul ignore next */\n return position === Position.LEFT || position === Position.LEFT_TOP || position === Position.LEFT_BOTTOM || position === Position.RIGHT || position === Position.RIGHT_TOP || position === Position.RIGHT_BOTTOM;\n}\nexport function getPositionIgnoreAngles(position) {\n if (position === Position.TOP || position === Position.TOP_LEFT || position === Position.TOP_RIGHT) {\n return Position.TOP;\n } else if (position === Position.BOTTOM || position === Position.BOTTOM_LEFT || position === Position.BOTTOM_RIGHT) {\n return Position.BOTTOM;\n } else if (position === Position.LEFT || position === Position.LEFT_TOP || position === Position.LEFT_BOTTOM) {\n return Position.LEFT;\n } else {\n return Position.RIGHT;\n }\n}","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","var path = require('../internals/path');\n\nvar global = require('../internals/global');\n\nvar aFunction = function aFunction(variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};","var aFunction = require('../internals/a-function'); // optional / simple context binding\n\n\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n\n switch (length) {\n case 0:\n return function () {\n return fn.call(that);\n };\n\n case 1:\n return function (a) {\n return fn.call(that, a);\n };\n\n case 2:\n return function (a, b) {\n return fn.call(that, a, b);\n };\n\n case 3:\n return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n\n return function ()\n /* ...args */\n {\n return fn.apply(that, arguments);\n };\n};","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar ns = \"[Blueprint]\";\nexport var CLAMP_MIN_MAX = ns + \" clamp: max cannot be less than min\";\nexport var ALERT_WARN_CANCEL_PROPS = ns + \" cancelButtonText and onCancel should be set together.\";\nexport var ALERT_WARN_CANCEL_ESCAPE_KEY = ns + \" canEscapeKeyCancel enabled without onCancel or onClose handler.\";\nexport var ALERT_WARN_CANCEL_OUTSIDE_CLICK = ns + \" canOutsideClickCancel enbaled without onCancel or onClose handler.\";\nexport var COLLAPSIBLE_LIST_INVALID_CHILD = ns + \" children must be s\";\nexport var CONTEXTMENU_WARN_DECORATOR_NO_METHOD = ns + \" @ContextMenuTarget-decorated class should implement renderContextMenu.\";\nexport var CONTEXTMENU_WARN_DECORATOR_NEEDS_REACT_ELEMENT = ns + \" \\\"@ContextMenuTarget-decorated components must return a single JSX.Element or an empty render.\";\nexport var HOTKEYS_HOTKEY_CHILDREN = ns + \" only accepts children.\";\nexport var HOTKEYS_WARN_DECORATOR_NO_METHOD = ns + \" @HotkeysTarget-decorated class should implement renderHotkeys.\";\nexport var HOTKEYS_WARN_DECORATOR_NEEDS_REACT_ELEMENT = ns + \" \\\"@HotkeysTarget-decorated components must return a single JSX.Element or an empty render.\";\nexport var INPUT_WARN_LEFT_ELEMENT_LEFT_ICON_MUTEX = ns + \" leftElement and leftIcon prop are mutually exclusive, with leftElement taking priority.\";\nexport var NUMERIC_INPUT_MIN_MAX = ns + \" requires min to be no greater than max if both are defined.\";\nexport var NUMERIC_INPUT_MINOR_STEP_SIZE_BOUND = ns + \" requires minorStepSize to be no greater than stepSize.\";\nexport var NUMERIC_INPUT_MAJOR_STEP_SIZE_BOUND = ns + \" requires stepSize to be no greater than majorStepSize.\";\nexport var NUMERIC_INPUT_MINOR_STEP_SIZE_NON_POSITIVE = ns + \" requires minorStepSize to be strictly greater than zero.\";\nexport var NUMERIC_INPUT_MAJOR_STEP_SIZE_NON_POSITIVE = ns + \" requires majorStepSize to be strictly greater than zero.\";\nexport var NUMERIC_INPUT_STEP_SIZE_NON_POSITIVE = ns + \" requires stepSize to be strictly greater than zero.\";\nexport var NUMERIC_INPUT_STEP_SIZE_NULL = ns + \" requires stepSize to be defined.\";\nexport var PANEL_STACK_INITIAL_PANEL_STACK_MUTEX = ns + \" requires exactly one of initialPanel and stack prop\";\nexport var PANEL_STACK_REQUIRES_PANEL = ns + \" requires at least one panel in the stack\";\nexport var OVERFLOW_LIST_OBSERVE_PARENTS_CHANGED = ns + \" does not support changing observeParents after mounting.\"; // TODO (clewis): Migrate old Popover validation errors to the component formerly known as Popover2.\n// See: https://github.com/palantir/blueprint/issues/1940\n\nexport var POPOVER_REQUIRES_TARGET = ns + \" requires target prop or at least one child element.\";\nexport var POPOVER_HAS_BACKDROP_INTERACTION = ns + \" requires interactionKind={PopoverInteractionKind.CLICK}.\";\nexport var POPOVER_WARN_TOO_MANY_CHILDREN = ns + \" supports one or two children; additional children are ignored.\" + \" First child is the target, second child is the content. You may instead supply these two as props.\";\nexport var POPOVER_WARN_DOUBLE_CONTENT = ns + \" with two children ignores content prop; use either prop or children.\";\nexport var POPOVER_WARN_DOUBLE_TARGET = ns + \" with children ignores target prop; use either prop or children.\";\nexport var POPOVER_WARN_EMPTY_CONTENT = ns + \" Disabling with empty/whitespace content...\";\nexport var POPOVER_WARN_HAS_BACKDROP_INLINE = ns + \" ignores hasBackdrop\";\nexport var POPOVER_WARN_UNCONTROLLED_ONINTERACTION = ns + \" onInteraction is ignored when uncontrolled.\";\nexport var PORTAL_CONTEXT_CLASS_NAME_STRING = ns + \" context blueprintPortalClassName must be string\";\nexport var RADIOGROUP_WARN_CHILDREN_OPTIONS_MUTEX = ns + \" children and options prop are mutually exclusive, with options taking priority.\";\nexport var SLIDER_ZERO_STEP = ns + \" stepSize must be greater than zero.\";\nexport var SLIDER_ZERO_LABEL_STEP = ns + \" labelStepSize must be greater than zero.\";\nexport var RANGESLIDER_NULL_VALUE = ns + \" value prop must be an array of two non-null numbers.\";\nexport var MULTISLIDER_INVALID_CHILD = ns + \" children must be s or s\";\nexport var SPINNER_WARN_CLASSES_SIZE = ns + \" Classes.SMALL/LARGE are ignored if size prop is set.\";\nexport var TOASTER_CREATE_NULL = ns + \" Toaster.create() is not supported inside React lifecycle methods in React 16.\" + \" See usage example on the docs site.\";\nexport var TOASTER_WARN_INLINE = ns + \" Toaster.create() ignores inline prop as it always creates a new element.\";\nexport var DIALOG_WARN_NO_HEADER_ICON = ns + \" iconName is ignored if title is omitted.\";\nexport var DIALOG_WARN_NO_HEADER_CLOSE_BUTTON = ns + \" isCloseButtonShown prop is ignored if title is omitted.\";\nexport var DRAWER_VERTICAL_IS_IGNORED = ns + \" vertical is ignored if position is defined\";\nexport var DRAWER_ANGLE_POSITIONS_ARE_CASTED = ns + \" all angle positions are casted into pure position (TOP, BOTTOM, LEFT or RIGHT)\";\nexport var TOASTER_MAX_TOASTS_INVALID = ns + \" maxToasts is set to an invalid number, must be greater than 0\";","var SHORT_TO_HEX = {};\nvar HEX_TO_SHORT = {};\n\nfor (var i = 0; i < 256; i++) {\n var encodedByte = i.toString(16).toLowerCase();\n\n if (encodedByte.length === 1) {\n encodedByte = \"0\" + encodedByte;\n }\n\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\n/**\n * Converts a hexadecimal encoded string to a Uint8Array of bytes.\n *\n * @param encoded The hexadecimal encoded string\n */\n\n\nexport function fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n\n var out = new Uint8Array(encoded.length / 2);\n\n for (var i = 0; i < encoded.length; i += 2) {\n var encodedByte = encoded.substr(i, 2).toLowerCase();\n\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n } else {\n throw new Error(\"Cannot decode unrecognized sequence \" + encodedByte + \" as hexadecimal\");\n }\n }\n\n return out;\n}\n/**\n * Converts a Uint8Array of binary data to a hexadecimal encoded string.\n *\n * @param bytes The binary data to encode\n */\n\nexport function toHex(bytes) {\n var out = \"\";\n\n for (var i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n\n return out;\n}","/*\n * Copyright 2019 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __extends } from \"tslib\";\nimport * as React from \"react\";\nimport { isNodeEnv } from \"./utils\";\n/**\n * An abstract component that Blueprint components can extend\n * in order to add some common functionality like runtime props validation.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\n\nvar AbstractPureComponent2 =\n/** @class */\nfunction (_super) {\n __extends(AbstractPureComponent2, _super);\n\n function AbstractPureComponent2(props, context) {\n var _this = _super.call(this, props, context) || this; // Not bothering to remove entries when their timeouts finish because clearing invalid ID is a no-op\n\n\n _this.timeoutIds = [];\n /**\n * Clear all known timeouts.\n */\n\n _this.clearTimeouts = function () {\n if (_this.timeoutIds.length > 0) {\n for (var _i = 0, _a = _this.timeoutIds; _i < _a.length; _i++) {\n var timeoutId = _a[_i];\n window.clearTimeout(timeoutId);\n }\n\n _this.timeoutIds = [];\n }\n };\n\n if (!isNodeEnv(\"production\")) {\n _this.validateProps(_this.props);\n }\n\n return _this;\n }\n\n AbstractPureComponent2.prototype.componentDidUpdate = function (_prevProps, _prevState, _snapshot) {\n if (!isNodeEnv(\"production\")) {\n this.validateProps(this.props);\n }\n };\n\n AbstractPureComponent2.prototype.componentWillUnmount = function () {\n this.clearTimeouts();\n };\n /**\n * Set a timeout and remember its ID.\n * All stored timeouts will be cleared when component unmounts.\n * @returns a \"cancel\" function that will clear timeout when invoked.\n */\n\n\n AbstractPureComponent2.prototype.setTimeout = function (callback, timeout) {\n var handle = window.setTimeout(callback, timeout);\n this.timeoutIds.push(handle);\n return function () {\n return window.clearTimeout(handle);\n };\n };\n /**\n * Ensures that the props specified for a component are valid.\n * Implementations should check that props are valid and usually throw an Error if they are not.\n * Implementations should not duplicate checks that the type system already guarantees.\n *\n * This method should be used instead of React's\n * [propTypes](https://facebook.github.io/react/docs/reusable-components.html#prop-validation) feature.\n * Like propTypes, these runtime checks run only in development mode.\n */\n\n\n AbstractPureComponent2.prototype.validateProps = function (_props) {// implement in subclass\n };\n\n return AbstractPureComponent2;\n}(React.PureComponent);\n\nexport { AbstractPureComponent2 };","var anObject = require('../internals/an-object');\n\nvar aFunction = require('../internals/a-function');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species'); // `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\n\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};","var bind = require('../internals/function-bind-context');\n\nvar IndexedObject = require('../internals/indexed-object');\n\nvar toObject = require('../internals/to-object');\n\nvar toLength = require('../internals/to-length');\n\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push; // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\n\nvar createMethod = function createMethod(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 NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n\n for (; length > index; index++) {\n if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3:\n return true;\n // some\n\n case 5:\n return value;\n // find\n\n case 6:\n return index;\n // findIndex\n\n case 2:\n push.call(target, value);\n // filter\n } else if (IS_EVERY) return false; // every\n }\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.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};",";\n\n(function (root, factory, undef) {\n if (typeof exports === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./evpkdf\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./evpkdf\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n /**\n * Cipher core components.\n */\n CryptoJS.lib.Cipher || function (undefined) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n var C_enc = C.enc;\n var Utf8 = C_enc.Utf8;\n var Base64 = C_enc.Base64;\n var C_algo = C.algo;\n var EvpKDF = C_algo.EvpKDF;\n /**\n * Abstract base cipher template.\n *\n * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n */\n\n var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n /**\n * Configuration options.\n *\n * @property {WordArray} iv The IV to use for this operation.\n */\n cfg: Base.extend(),\n\n /**\n * Creates this cipher in encryption mode.\n *\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {Cipher} A cipher instance.\n *\n * @static\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n */\n createEncryptor: function createEncryptor(key, cfg) {\n return this.create(this._ENC_XFORM_MODE, key, cfg);\n },\n\n /**\n * Creates this cipher in decryption mode.\n *\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {Cipher} A cipher instance.\n *\n * @static\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n */\n createDecryptor: function createDecryptor(key, cfg) {\n return this.create(this._DEC_XFORM_MODE, key, cfg);\n },\n\n /**\n * Initializes a newly created cipher.\n *\n * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n */\n init: function init(xformMode, key, cfg) {\n // Apply config defaults\n this.cfg = this.cfg.extend(cfg); // Store transform mode and key\n\n this._xformMode = xformMode;\n this._key = key; // Set initial values\n\n this.reset();\n },\n\n /**\n * Resets this cipher to its initial state.\n *\n * @example\n *\n * cipher.reset();\n */\n reset: function reset() {\n // Reset data buffer\n BufferedBlockAlgorithm.reset.call(this); // Perform concrete-cipher logic\n\n this._doReset();\n },\n\n /**\n * Adds data to be encrypted or decrypted.\n *\n * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n *\n * @return {WordArray} The data after processing.\n *\n * @example\n *\n * var encrypted = cipher.process('data');\n * var encrypted = cipher.process(wordArray);\n */\n process: function process(dataUpdate) {\n // Append\n this._append(dataUpdate); // Process available blocks\n\n\n return this._process();\n },\n\n /**\n * Finalizes the encryption or decryption process.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n *\n * @return {WordArray} The data after final processing.\n *\n * @example\n *\n * var encrypted = cipher.finalize();\n * var encrypted = cipher.finalize('data');\n * var encrypted = cipher.finalize(wordArray);\n */\n finalize: function finalize(dataUpdate) {\n // Final data update\n if (dataUpdate) {\n this._append(dataUpdate);\n } // Perform concrete-cipher logic\n\n\n var finalProcessedData = this._doFinalize();\n\n return finalProcessedData;\n },\n keySize: 128 / 32,\n ivSize: 128 / 32,\n _ENC_XFORM_MODE: 1,\n _DEC_XFORM_MODE: 2,\n\n /**\n * Creates shortcut functions to a cipher's object interface.\n *\n * @param {Cipher} cipher The cipher to create a helper for.\n *\n * @return {Object} An object with encrypt and decrypt shortcut functions.\n *\n * @static\n *\n * @example\n *\n * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n */\n _createHelper: function () {\n function selectCipherStrategy(key) {\n if (typeof key == 'string') {\n return PasswordBasedCipher;\n } else {\n return SerializableCipher;\n }\n }\n\n return function (cipher) {\n return {\n encrypt: function encrypt(message, key, cfg) {\n return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n },\n decrypt: function decrypt(ciphertext, key, cfg) {\n return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n }\n };\n };\n }()\n });\n /**\n * Abstract base stream cipher template.\n *\n * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n */\n\n var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n _doFinalize: function _doFinalize() {\n // Process partial blocks\n var finalProcessedBlocks = this._process(!!'flush');\n\n return finalProcessedBlocks;\n },\n blockSize: 1\n });\n /**\n * Mode namespace.\n */\n\n var C_mode = C.mode = {};\n /**\n * Abstract base block cipher mode template.\n */\n\n var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n /**\n * Creates this mode for encryption.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @static\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n */\n createEncryptor: function createEncryptor(cipher, iv) {\n return this.Encryptor.create(cipher, iv);\n },\n\n /**\n * Creates this mode for decryption.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @static\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n */\n createDecryptor: function createDecryptor(cipher, iv) {\n return this.Decryptor.create(cipher, iv);\n },\n\n /**\n * Initializes a newly created mode.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n */\n init: function init(cipher, iv) {\n this._cipher = cipher;\n this._iv = iv;\n }\n });\n /**\n * Cipher Block Chaining mode.\n */\n\n var CBC = C_mode.CBC = function () {\n /**\n * Abstract base CBC mode.\n */\n var CBC = BlockCipherMode.extend();\n /**\n * CBC encryptor.\n */\n\n CBC.Encryptor = CBC.extend({\n /**\n * Processes the data block at offset.\n *\n * @param {Array} words The data words to operate on.\n * @param {number} offset The offset where the block starts.\n *\n * @example\n *\n * mode.processBlock(data.words, offset);\n */\n processBlock: function processBlock(words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize; // XOR and encrypt\n\n xorBlock.call(this, words, offset, blockSize);\n cipher.encryptBlock(words, offset); // Remember this block to use with next block\n\n this._prevBlock = words.slice(offset, offset + blockSize);\n }\n });\n /**\n * CBC decryptor.\n */\n\n CBC.Decryptor = CBC.extend({\n /**\n * Processes the data block at offset.\n *\n * @param {Array} words The data words to operate on.\n * @param {number} offset The offset where the block starts.\n *\n * @example\n *\n * mode.processBlock(data.words, offset);\n */\n processBlock: function processBlock(words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize; // Remember this block to use with next block\n\n var thisBlock = words.slice(offset, offset + blockSize); // Decrypt and XOR\n\n cipher.decryptBlock(words, offset);\n xorBlock.call(this, words, offset, blockSize); // This block becomes the previous block\n\n this._prevBlock = thisBlock;\n }\n });\n\n function xorBlock(words, offset, blockSize) {\n var block; // Shortcut\n\n var iv = this._iv; // Choose mixing block\n\n if (iv) {\n block = iv; // Remove IV for subsequent blocks\n\n this._iv = undefined;\n } else {\n block = this._prevBlock;\n } // XOR blocks\n\n\n for (var i = 0; i < blockSize; i++) {\n words[offset + i] ^= block[i];\n }\n }\n\n return CBC;\n }();\n /**\n * Padding namespace.\n */\n\n\n var C_pad = C.pad = {};\n /**\n * PKCS #5/7 padding strategy.\n */\n\n var Pkcs7 = C_pad.Pkcs7 = {\n /**\n * Pads data using the algorithm defined in PKCS #5/7.\n *\n * @param {WordArray} data The data to pad.\n * @param {number} blockSize The multiple that the data should be padded to.\n *\n * @static\n *\n * @example\n *\n * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n */\n pad: function pad(data, blockSize) {\n // Shortcut\n var blockSizeBytes = blockSize * 4; // Count padding bytes\n\n var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; // Create padding word\n\n var paddingWord = nPaddingBytes << 24 | nPaddingBytes << 16 | nPaddingBytes << 8 | nPaddingBytes; // Create padding\n\n var paddingWords = [];\n\n for (var i = 0; i < nPaddingBytes; i += 4) {\n paddingWords.push(paddingWord);\n }\n\n var padding = WordArray.create(paddingWords, nPaddingBytes); // Add padding\n\n data.concat(padding);\n },\n\n /**\n * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n *\n * @param {WordArray} data The data to unpad.\n *\n * @static\n *\n * @example\n *\n * CryptoJS.pad.Pkcs7.unpad(wordArray);\n */\n unpad: function unpad(data) {\n // Get number of padding bytes from last byte\n var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 0xff; // Remove padding\n\n data.sigBytes -= nPaddingBytes;\n }\n };\n /**\n * Abstract base block cipher template.\n *\n * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n */\n\n var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n /**\n * Configuration options.\n *\n * @property {Mode} mode The block mode to use. Default: CBC\n * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n */\n cfg: Cipher.cfg.extend({\n mode: CBC,\n padding: Pkcs7\n }),\n reset: function reset() {\n var modeCreator; // Reset cipher\n\n Cipher.reset.call(this); // Shortcuts\n\n var cfg = this.cfg;\n var iv = cfg.iv;\n var mode = cfg.mode; // Reset block mode\n\n if (this._xformMode == this._ENC_XFORM_MODE) {\n modeCreator = mode.createEncryptor;\n } else\n /* if (this._xformMode == this._DEC_XFORM_MODE) */\n {\n modeCreator = mode.createDecryptor; // Keep at least one block in the buffer for unpadding\n\n this._minBufferSize = 1;\n }\n\n if (this._mode && this._mode.__creator == modeCreator) {\n this._mode.init(this, iv && iv.words);\n } else {\n this._mode = modeCreator.call(mode, this, iv && iv.words);\n this._mode.__creator = modeCreator;\n }\n },\n _doProcessBlock: function _doProcessBlock(words, offset) {\n this._mode.processBlock(words, offset);\n },\n _doFinalize: function _doFinalize() {\n var finalProcessedBlocks; // Shortcut\n\n var padding = this.cfg.padding; // Finalize\n\n if (this._xformMode == this._ENC_XFORM_MODE) {\n // Pad data\n padding.pad(this._data, this.blockSize); // Process final blocks\n\n finalProcessedBlocks = this._process(!!'flush');\n } else\n /* if (this._xformMode == this._DEC_XFORM_MODE) */\n {\n // Process final blocks\n finalProcessedBlocks = this._process(!!'flush'); // Unpad data\n\n padding.unpad(finalProcessedBlocks);\n }\n\n return finalProcessedBlocks;\n },\n blockSize: 128 / 32\n });\n /**\n * A collection of cipher parameters.\n *\n * @property {WordArray} ciphertext The raw ciphertext.\n * @property {WordArray} key The key to this ciphertext.\n * @property {WordArray} iv The IV used in the ciphering operation.\n * @property {WordArray} salt The salt used with a key derivation function.\n * @property {Cipher} algorithm The cipher algorithm.\n * @property {Mode} mode The block mode used in the ciphering operation.\n * @property {Padding} padding The padding scheme used in the ciphering operation.\n * @property {number} blockSize The block size of the cipher.\n * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n */\n\n var CipherParams = C_lib.CipherParams = Base.extend({\n /**\n * Initializes a newly created cipher params object.\n *\n * @param {Object} cipherParams An object with any of the possible cipher parameters.\n *\n * @example\n *\n * var cipherParams = CryptoJS.lib.CipherParams.create({\n * ciphertext: ciphertextWordArray,\n * key: keyWordArray,\n * iv: ivWordArray,\n * salt: saltWordArray,\n * algorithm: CryptoJS.algo.AES,\n * mode: CryptoJS.mode.CBC,\n * padding: CryptoJS.pad.PKCS7,\n * blockSize: 4,\n * formatter: CryptoJS.format.OpenSSL\n * });\n */\n init: function init(cipherParams) {\n this.mixIn(cipherParams);\n },\n\n /**\n * Converts this cipher params object to a string.\n *\n * @param {Format} formatter (Optional) The formatting strategy to use.\n *\n * @return {string} The stringified cipher params.\n *\n * @throws Error If neither the formatter nor the default formatter is set.\n *\n * @example\n *\n * var string = cipherParams + '';\n * var string = cipherParams.toString();\n * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n */\n toString: function toString(formatter) {\n return (formatter || this.formatter).stringify(this);\n }\n });\n /**\n * Format namespace.\n */\n\n var C_format = C.format = {};\n /**\n * OpenSSL formatting strategy.\n */\n\n var OpenSSLFormatter = C_format.OpenSSL = {\n /**\n * Converts a cipher params object to an OpenSSL-compatible string.\n *\n * @param {CipherParams} cipherParams The cipher params object.\n *\n * @return {string} The OpenSSL-compatible string.\n *\n * @static\n *\n * @example\n *\n * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n */\n stringify: function stringify(cipherParams) {\n var wordArray; // Shortcuts\n\n var ciphertext = cipherParams.ciphertext;\n var salt = cipherParams.salt; // Format\n\n if (salt) {\n wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n } else {\n wordArray = ciphertext;\n }\n\n return wordArray.toString(Base64);\n },\n\n /**\n * Converts an OpenSSL-compatible string to a cipher params object.\n *\n * @param {string} openSSLStr The OpenSSL-compatible string.\n *\n * @return {CipherParams} The cipher params object.\n *\n * @static\n *\n * @example\n *\n * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n */\n parse: function parse(openSSLStr) {\n var salt; // Parse base64\n\n var ciphertext = Base64.parse(openSSLStr); // Shortcut\n\n var ciphertextWords = ciphertext.words; // Test for salt\n\n if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n // Extract salt\n salt = WordArray.create(ciphertextWords.slice(2, 4)); // Remove salt from ciphertext\n\n ciphertextWords.splice(0, 4);\n ciphertext.sigBytes -= 16;\n }\n\n return CipherParams.create({\n ciphertext: ciphertext,\n salt: salt\n });\n }\n };\n /**\n * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n */\n\n var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n /**\n * Configuration options.\n *\n * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n */\n cfg: Base.extend({\n format: OpenSSLFormatter\n }),\n\n /**\n * Encrypts a message.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {WordArray|string} message The message to encrypt.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {CipherParams} A cipher params object.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n */\n encrypt: function encrypt(cipher, message, key, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg); // Encrypt\n\n var encryptor = cipher.createEncryptor(key, cfg);\n var ciphertext = encryptor.finalize(message); // Shortcut\n\n var cipherCfg = encryptor.cfg; // Create and return serializable cipher params\n\n return CipherParams.create({\n ciphertext: ciphertext,\n key: key,\n iv: cipherCfg.iv,\n algorithm: cipher,\n mode: cipherCfg.mode,\n padding: cipherCfg.padding,\n blockSize: cipher.blockSize,\n formatter: cfg.format\n });\n },\n\n /**\n * Decrypts serialized ciphertext.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {WordArray} The plaintext.\n *\n * @static\n *\n * @example\n *\n * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n */\n decrypt: function decrypt(cipher, ciphertext, key, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg); // Convert string to CipherParams\n\n ciphertext = this._parse(ciphertext, cfg.format); // Decrypt\n\n var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n return plaintext;\n },\n\n /**\n * Converts serialized ciphertext to CipherParams,\n * else assumed CipherParams already and returns ciphertext unchanged.\n *\n * @param {CipherParams|string} ciphertext The ciphertext.\n * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n *\n * @return {CipherParams} The unserialized ciphertext.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n */\n _parse: function _parse(ciphertext, format) {\n if (typeof ciphertext == 'string') {\n return format.parse(ciphertext, this);\n } else {\n return ciphertext;\n }\n }\n });\n /**\n * Key derivation function namespace.\n */\n\n var C_kdf = C.kdf = {};\n /**\n * OpenSSL key derivation function.\n */\n\n var OpenSSLKdf = C_kdf.OpenSSL = {\n /**\n * Derives a key and IV from a password.\n *\n * @param {string} password The password to derive from.\n * @param {number} keySize The size in words of the key to generate.\n * @param {number} ivSize The size in words of the IV to generate.\n * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n *\n * @return {CipherParams} A cipher params object with the key, IV, and salt.\n *\n * @static\n *\n * @example\n *\n * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n */\n execute: function execute(password, keySize, ivSize, salt) {\n // Generate random salt\n if (!salt) {\n salt = WordArray.random(64 / 8);\n } // Derive key and IV\n\n\n var key = EvpKDF.create({\n keySize: keySize + ivSize\n }).compute(password, salt); // Separate key and IV\n\n var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n key.sigBytes = keySize * 4; // Return params\n\n return CipherParams.create({\n key: key,\n iv: iv,\n salt: salt\n });\n }\n };\n /**\n * A serializable cipher wrapper that derives the key from a password,\n * and returns ciphertext as a serializable cipher params object.\n */\n\n var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n /**\n * Configuration options.\n *\n * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n */\n cfg: SerializableCipher.cfg.extend({\n kdf: OpenSSLKdf\n }),\n\n /**\n * Encrypts a message using a password.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {WordArray|string} message The message to encrypt.\n * @param {string} password The password.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {CipherParams} A cipher params object.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n */\n encrypt: function encrypt(cipher, message, password, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg); // Derive key and other params\n\n var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize); // Add IV to config\n\n cfg.iv = derivedParams.iv; // Encrypt\n\n var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg); // Mix in derived params\n\n ciphertext.mixIn(derivedParams);\n return ciphertext;\n },\n\n /**\n * Decrypts serialized ciphertext using a password.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n * @param {string} password The password.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {WordArray} The plaintext.\n *\n * @static\n *\n * @example\n *\n * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n */\n decrypt: function decrypt(cipher, ciphertext, password, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg); // Convert string to CipherParams\n\n ciphertext = this._parse(ciphertext, cfg.format); // Derive key and other params\n\n var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt); // Add IV to config\n\n cfg.iv = derivedParams.iv; // Decrypt\n\n var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n return plaintext;\n }\n });\n }();\n});","var DESCRIPTORS = require('../internals/descriptors');\n\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\n\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nvar toIndexedObject = require('../internals/to-indexed-object');\n\nvar toPrimitive = require('../internals/to-primitive');\n\nvar has = require('../internals/has');\n\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\n\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) {\n /* empty */\n }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};","var path = require('../internals/path');\n\nvar has = require('../internals/has');\n\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\n\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function') {\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}","/*\n * Copyright 2020 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** Returns whether the value is a function. Acts as a type guard. */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isFunction(value) {\n return typeof value === \"function\";\n} // eslint-disable-next-line @typescript-eslint/ban-types\n\nexport function safeInvoke(func) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n if (isFunction(func)) {\n return func.apply(void 0, args);\n }\n\n return undefined;\n} // eslint-disable-next-line @typescript-eslint/ban-types\n\nexport function safeInvokeOrValue(funcOrValue) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n return isFunction(funcOrValue) ? funcOrValue.apply(void 0, args) : funcOrValue;\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\n\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (isProduction) {\n throw new Error(prefix);\n }\n\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;","var global = require('../internals/global');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar has = require('../internals/has');\n\nvar setGlobal = require('../internals/set-global');\n\nvar inspectSource = require('../internals/inspect-source');\n\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n\n if (O === global) {\n if (simple) O[key] = value;else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n\n if (simple) O[key] = value;else createNonEnumerableProperty(O, key, value); // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});","var g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};","var DESCRIPTORS = require('../internals/descriptors');\n\nvar definePropertyModule = require('../internals/object-define-property');\n\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};","var DESCRIPTORS = require('../internals/descriptors');\n\nvar fails = require('../internals/fails');\n\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function thrower(it) {\n throw it;\n};\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = {\n length: -1\n };\n if (ACCESSORS) defineProperty(O, 1, {\n enumerable: true,\n get: thrower\n });else O[1] = 1;\n method.call(O, argument0, argument1);\n });\n};","/**\n * CIE XYZ\n *\n * @module color-space/xyz\n */\n'use strict';\n\nvar rgb = require('./rgb');\n\nvar xyz = {\n name: 'xyz',\n min: [0, 0, 0],\n channel: ['X', 'Y', 'Z'],\n alias: ['XYZ', 'ciexyz', 'cie1931']\n};\n/**\n * Whitepoint reference values with observer/illuminant\n *\n * http://en.wikipedia.org/wiki/Standard_illuminant\n */\n\nxyz.whitepoint = {\n //1931 2°\n 2: {\n //incadescent\n A: [109.85, 100, 35.585],\n // B:[],\n C: [98.074, 100, 118.232],\n D50: [96.422, 100, 82.521],\n D55: [95.682, 100, 92.149],\n //daylight\n D65: [95.045592705167, 100, 108.9057750759878],\n D75: [94.972, 100, 122.638],\n //flourescent\n // F1: [],\n F2: [99.187, 100, 67.395],\n // F3: [],\n // F4: [],\n // F5: [],\n // F6:[],\n F7: [95.044, 100, 108.755],\n // F8: [],\n // F9: [],\n // F10: [],\n F11: [100.966, 100, 64.370],\n // F12: [],\n E: [100, 100, 100]\n },\n //1964 10°\n 10: {\n //incadescent\n A: [111.144, 100, 35.200],\n C: [97.285, 100, 116.145],\n D50: [96.720, 100, 81.427],\n D55: [95.799, 100, 90.926],\n //daylight\n D65: [94.811, 100, 107.304],\n D75: [94.416, 100, 120.641],\n //flourescent\n F2: [103.280, 100, 69.026],\n F7: [95.792, 100, 107.687],\n F11: [103.866, 100, 65.627],\n E: [100, 100, 100]\n }\n};\n/**\n * Top values are the whitepoint’s top values, default are D65\n */\n\nxyz.max = xyz.whitepoint[2].D65;\n/**\n * Transform xyz to rgb\n *\n * @param {Array} xyz Array of xyz values\n *\n * @return {Array} RGB values\n */\n\nxyz.rgb = function (_xyz, white) {\n //FIXME: make sure we have to divide like this. Probably we have to replace matrix as well then\n white = white || xyz.whitepoint[2].E;\n var x = _xyz[0] / white[0],\n y = _xyz[1] / white[1],\n z = _xyz[2] / white[2],\n r,\n g,\n b; // assume sRGB\n // http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\n r = x * 3.240969941904521 + y * -1.537383177570093 + z * -0.498610760293;\n g = x * -0.96924363628087 + y * 1.87596750150772 + z * 0.041555057407175;\n b = x * 0.055630079696993 + y * -0.20397695888897 + z * 1.056971514242878;\n r = r > 0.0031308 ? 1.055 * Math.pow(r, 1.0 / 2.4) - 0.055 : r = r * 12.92;\n g = g > 0.0031308 ? 1.055 * Math.pow(g, 1.0 / 2.4) - 0.055 : g = g * 12.92;\n b = b > 0.0031308 ? 1.055 * Math.pow(b, 1.0 / 2.4) - 0.055 : b = b * 12.92;\n r = Math.min(Math.max(0, r), 1);\n g = Math.min(Math.max(0, g), 1);\n b = Math.min(Math.max(0, b), 1);\n return [r * 255, g * 255, b * 255];\n};\n/**\n * RGB to XYZ\n *\n * @param {Array} rgb RGB channels\n *\n * @return {Array} XYZ channels\n */\n\n\nrgb.xyz = function (rgb, white) {\n var r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255; // assume sRGB\n\n r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92;\n g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92;\n b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92;\n var x = r * 0.41239079926595 + g * 0.35758433938387 + b * 0.18048078840183;\n var y = r * 0.21263900587151 + g * 0.71516867876775 + b * 0.072192315360733;\n var z = r * 0.019330818715591 + g * 0.11919477979462 + b * 0.95053215224966;\n white = white || xyz.whitepoint[2].E;\n return [x * white[0], y * white[1], z * white[2]];\n};\n\nmodule.exports = xyz;","import { __assign } from \"tslib\";\nimport { SENSITIVE_STRING } from \"@aws-sdk/smithy-client\";\nexport var AbortIncompleteMultipartUpload;\n\n(function (AbortIncompleteMultipartUpload) {\n /**\n * @internal\n */\n AbortIncompleteMultipartUpload.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(AbortIncompleteMultipartUpload || (AbortIncompleteMultipartUpload = {}));\n\nexport var AbortMultipartUploadOutput;\n\n(function (AbortMultipartUploadOutput) {\n /**\n * @internal\n */\n AbortMultipartUploadOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(AbortMultipartUploadOutput || (AbortMultipartUploadOutput = {}));\n\nexport var AbortMultipartUploadRequest;\n\n(function (AbortMultipartUploadRequest) {\n /**\n * @internal\n */\n AbortMultipartUploadRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(AbortMultipartUploadRequest || (AbortMultipartUploadRequest = {}));\n\nexport var NoSuchUpload;\n\n(function (NoSuchUpload) {\n /**\n * @internal\n */\n NoSuchUpload.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(NoSuchUpload || (NoSuchUpload = {}));\n\nexport var AccelerateConfiguration;\n\n(function (AccelerateConfiguration) {\n /**\n * @internal\n */\n AccelerateConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(AccelerateConfiguration || (AccelerateConfiguration = {}));\n\nexport var Grantee;\n\n(function (Grantee) {\n /**\n * @internal\n */\n Grantee.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Grantee || (Grantee = {}));\n\nexport var Grant;\n\n(function (Grant) {\n /**\n * @internal\n */\n Grant.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Grant || (Grant = {}));\n\nexport var Owner;\n\n(function (Owner) {\n /**\n * @internal\n */\n Owner.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Owner || (Owner = {}));\n\nexport var AccessControlPolicy;\n\n(function (AccessControlPolicy) {\n /**\n * @internal\n */\n AccessControlPolicy.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(AccessControlPolicy || (AccessControlPolicy = {}));\n\nexport var AccessControlTranslation;\n\n(function (AccessControlTranslation) {\n /**\n * @internal\n */\n AccessControlTranslation.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(AccessControlTranslation || (AccessControlTranslation = {}));\n\nexport var CompleteMultipartUploadOutput;\n\n(function (CompleteMultipartUploadOutput) {\n /**\n * @internal\n */\n CompleteMultipartUploadOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.SSEKMSKeyId && {\n SSEKMSKeyId: SENSITIVE_STRING\n });\n };\n})(CompleteMultipartUploadOutput || (CompleteMultipartUploadOutput = {}));\n\nexport var CompletedPart;\n\n(function (CompletedPart) {\n /**\n * @internal\n */\n CompletedPart.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CompletedPart || (CompletedPart = {}));\n\nexport var CompletedMultipartUpload;\n\n(function (CompletedMultipartUpload) {\n /**\n * @internal\n */\n CompletedMultipartUpload.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CompletedMultipartUpload || (CompletedMultipartUpload = {}));\n\nexport var CompleteMultipartUploadRequest;\n\n(function (CompleteMultipartUploadRequest) {\n /**\n * @internal\n */\n CompleteMultipartUploadRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CompleteMultipartUploadRequest || (CompleteMultipartUploadRequest = {}));\n\nexport var CopyObjectResult;\n\n(function (CopyObjectResult) {\n /**\n * @internal\n */\n CopyObjectResult.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CopyObjectResult || (CopyObjectResult = {}));\n\nexport var CopyObjectOutput;\n\n(function (CopyObjectOutput) {\n /**\n * @internal\n */\n CopyObjectOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign(__assign({}, obj), obj.SSEKMSKeyId && {\n SSEKMSKeyId: SENSITIVE_STRING\n }), obj.SSEKMSEncryptionContext && {\n SSEKMSEncryptionContext: SENSITIVE_STRING\n });\n };\n})(CopyObjectOutput || (CopyObjectOutput = {}));\n\nexport var CopyObjectRequest;\n\n(function (CopyObjectRequest) {\n /**\n * @internal\n */\n CopyObjectRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign(__assign(__assign(__assign({}, obj), obj.SSECustomerKey && {\n SSECustomerKey: SENSITIVE_STRING\n }), obj.SSEKMSKeyId && {\n SSEKMSKeyId: SENSITIVE_STRING\n }), obj.SSEKMSEncryptionContext && {\n SSEKMSEncryptionContext: SENSITIVE_STRING\n }), obj.CopySourceSSECustomerKey && {\n CopySourceSSECustomerKey: SENSITIVE_STRING\n });\n };\n})(CopyObjectRequest || (CopyObjectRequest = {}));\n\nexport var ObjectNotInActiveTierError;\n\n(function (ObjectNotInActiveTierError) {\n /**\n * @internal\n */\n ObjectNotInActiveTierError.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ObjectNotInActiveTierError || (ObjectNotInActiveTierError = {}));\n\nexport var BucketAlreadyExists;\n\n(function (BucketAlreadyExists) {\n /**\n * @internal\n */\n BucketAlreadyExists.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(BucketAlreadyExists || (BucketAlreadyExists = {}));\n\nexport var BucketAlreadyOwnedByYou;\n\n(function (BucketAlreadyOwnedByYou) {\n /**\n * @internal\n */\n BucketAlreadyOwnedByYou.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(BucketAlreadyOwnedByYou || (BucketAlreadyOwnedByYou = {}));\n\nexport var CreateBucketOutput;\n\n(function (CreateBucketOutput) {\n /**\n * @internal\n */\n CreateBucketOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CreateBucketOutput || (CreateBucketOutput = {}));\n\nexport var CreateBucketConfiguration;\n\n(function (CreateBucketConfiguration) {\n /**\n * @internal\n */\n CreateBucketConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CreateBucketConfiguration || (CreateBucketConfiguration = {}));\n\nexport var CreateBucketRequest;\n\n(function (CreateBucketRequest) {\n /**\n * @internal\n */\n CreateBucketRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CreateBucketRequest || (CreateBucketRequest = {}));\n\nexport var CreateMultipartUploadOutput;\n\n(function (CreateMultipartUploadOutput) {\n /**\n * @internal\n */\n CreateMultipartUploadOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign(__assign({}, obj), obj.SSEKMSKeyId && {\n SSEKMSKeyId: SENSITIVE_STRING\n }), obj.SSEKMSEncryptionContext && {\n SSEKMSEncryptionContext: SENSITIVE_STRING\n });\n };\n})(CreateMultipartUploadOutput || (CreateMultipartUploadOutput = {}));\n\nexport var CreateMultipartUploadRequest;\n\n(function (CreateMultipartUploadRequest) {\n /**\n * @internal\n */\n CreateMultipartUploadRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign(__assign(__assign({}, obj), obj.SSECustomerKey && {\n SSECustomerKey: SENSITIVE_STRING\n }), obj.SSEKMSKeyId && {\n SSEKMSKeyId: SENSITIVE_STRING\n }), obj.SSEKMSEncryptionContext && {\n SSEKMSEncryptionContext: SENSITIVE_STRING\n });\n };\n})(CreateMultipartUploadRequest || (CreateMultipartUploadRequest = {}));\n\nexport var DeleteBucketRequest;\n\n(function (DeleteBucketRequest) {\n /**\n * @internal\n */\n DeleteBucketRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketRequest || (DeleteBucketRequest = {}));\n\nexport var DeleteBucketAnalyticsConfigurationRequest;\n\n(function (DeleteBucketAnalyticsConfigurationRequest) {\n /**\n * @internal\n */\n DeleteBucketAnalyticsConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketAnalyticsConfigurationRequest || (DeleteBucketAnalyticsConfigurationRequest = {}));\n\nexport var DeleteBucketCorsRequest;\n\n(function (DeleteBucketCorsRequest) {\n /**\n * @internal\n */\n DeleteBucketCorsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketCorsRequest || (DeleteBucketCorsRequest = {}));\n\nexport var DeleteBucketEncryptionRequest;\n\n(function (DeleteBucketEncryptionRequest) {\n /**\n * @internal\n */\n DeleteBucketEncryptionRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketEncryptionRequest || (DeleteBucketEncryptionRequest = {}));\n\nexport var DeleteBucketIntelligentTieringConfigurationRequest;\n\n(function (DeleteBucketIntelligentTieringConfigurationRequest) {\n /**\n * @internal\n */\n DeleteBucketIntelligentTieringConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketIntelligentTieringConfigurationRequest || (DeleteBucketIntelligentTieringConfigurationRequest = {}));\n\nexport var DeleteBucketInventoryConfigurationRequest;\n\n(function (DeleteBucketInventoryConfigurationRequest) {\n /**\n * @internal\n */\n DeleteBucketInventoryConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketInventoryConfigurationRequest || (DeleteBucketInventoryConfigurationRequest = {}));\n\nexport var DeleteBucketLifecycleRequest;\n\n(function (DeleteBucketLifecycleRequest) {\n /**\n * @internal\n */\n DeleteBucketLifecycleRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketLifecycleRequest || (DeleteBucketLifecycleRequest = {}));\n\nexport var DeleteBucketMetricsConfigurationRequest;\n\n(function (DeleteBucketMetricsConfigurationRequest) {\n /**\n * @internal\n */\n DeleteBucketMetricsConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketMetricsConfigurationRequest || (DeleteBucketMetricsConfigurationRequest = {}));\n\nexport var DeleteBucketOwnershipControlsRequest;\n\n(function (DeleteBucketOwnershipControlsRequest) {\n /**\n * @internal\n */\n DeleteBucketOwnershipControlsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketOwnershipControlsRequest || (DeleteBucketOwnershipControlsRequest = {}));\n\nexport var DeleteBucketPolicyRequest;\n\n(function (DeleteBucketPolicyRequest) {\n /**\n * @internal\n */\n DeleteBucketPolicyRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketPolicyRequest || (DeleteBucketPolicyRequest = {}));\n\nexport var DeleteBucketReplicationRequest;\n\n(function (DeleteBucketReplicationRequest) {\n /**\n * @internal\n */\n DeleteBucketReplicationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketReplicationRequest || (DeleteBucketReplicationRequest = {}));\n\nexport var DeleteBucketTaggingRequest;\n\n(function (DeleteBucketTaggingRequest) {\n /**\n * @internal\n */\n DeleteBucketTaggingRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketTaggingRequest || (DeleteBucketTaggingRequest = {}));\n\nexport var DeleteBucketWebsiteRequest;\n\n(function (DeleteBucketWebsiteRequest) {\n /**\n * @internal\n */\n DeleteBucketWebsiteRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteBucketWebsiteRequest || (DeleteBucketWebsiteRequest = {}));\n\nexport var DeleteObjectOutput;\n\n(function (DeleteObjectOutput) {\n /**\n * @internal\n */\n DeleteObjectOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteObjectOutput || (DeleteObjectOutput = {}));\n\nexport var DeleteObjectRequest;\n\n(function (DeleteObjectRequest) {\n /**\n * @internal\n */\n DeleteObjectRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteObjectRequest || (DeleteObjectRequest = {}));\n\nexport var DeletedObject;\n\n(function (DeletedObject) {\n /**\n * @internal\n */\n DeletedObject.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeletedObject || (DeletedObject = {}));\n\nexport var _Error;\n\n(function (_Error) {\n /**\n * @internal\n */\n _Error.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(_Error || (_Error = {}));\n\nexport var DeleteObjectsOutput;\n\n(function (DeleteObjectsOutput) {\n /**\n * @internal\n */\n DeleteObjectsOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteObjectsOutput || (DeleteObjectsOutput = {}));\n\nexport var ObjectIdentifier;\n\n(function (ObjectIdentifier) {\n /**\n * @internal\n */\n ObjectIdentifier.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ObjectIdentifier || (ObjectIdentifier = {}));\n\nexport var Delete;\n\n(function (Delete) {\n /**\n * @internal\n */\n Delete.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Delete || (Delete = {}));\n\nexport var DeleteObjectsRequest;\n\n(function (DeleteObjectsRequest) {\n /**\n * @internal\n */\n DeleteObjectsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteObjectsRequest || (DeleteObjectsRequest = {}));\n\nexport var DeleteObjectTaggingOutput;\n\n(function (DeleteObjectTaggingOutput) {\n /**\n * @internal\n */\n DeleteObjectTaggingOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteObjectTaggingOutput || (DeleteObjectTaggingOutput = {}));\n\nexport var DeleteObjectTaggingRequest;\n\n(function (DeleteObjectTaggingRequest) {\n /**\n * @internal\n */\n DeleteObjectTaggingRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteObjectTaggingRequest || (DeleteObjectTaggingRequest = {}));\n\nexport var DeletePublicAccessBlockRequest;\n\n(function (DeletePublicAccessBlockRequest) {\n /**\n * @internal\n */\n DeletePublicAccessBlockRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeletePublicAccessBlockRequest || (DeletePublicAccessBlockRequest = {}));\n\nexport var GetBucketAccelerateConfigurationOutput;\n\n(function (GetBucketAccelerateConfigurationOutput) {\n /**\n * @internal\n */\n GetBucketAccelerateConfigurationOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketAccelerateConfigurationOutput || (GetBucketAccelerateConfigurationOutput = {}));\n\nexport var GetBucketAccelerateConfigurationRequest;\n\n(function (GetBucketAccelerateConfigurationRequest) {\n /**\n * @internal\n */\n GetBucketAccelerateConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketAccelerateConfigurationRequest || (GetBucketAccelerateConfigurationRequest = {}));\n\nexport var GetBucketAclOutput;\n\n(function (GetBucketAclOutput) {\n /**\n * @internal\n */\n GetBucketAclOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketAclOutput || (GetBucketAclOutput = {}));\n\nexport var GetBucketAclRequest;\n\n(function (GetBucketAclRequest) {\n /**\n * @internal\n */\n GetBucketAclRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketAclRequest || (GetBucketAclRequest = {}));\n\nexport var Tag;\n\n(function (Tag) {\n /**\n * @internal\n */\n Tag.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Tag || (Tag = {}));\n\nexport var AnalyticsAndOperator;\n\n(function (AnalyticsAndOperator) {\n /**\n * @internal\n */\n AnalyticsAndOperator.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(AnalyticsAndOperator || (AnalyticsAndOperator = {}));\n\nexport var AnalyticsFilter;\n\n(function (AnalyticsFilter) {\n AnalyticsFilter.visit = function (value, visitor) {\n if (value.Prefix !== undefined) return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined) return visitor.Tag(value.Tag);\n if (value.And !== undefined) return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n /**\n * @internal\n */\n\n\n AnalyticsFilter.filterSensitiveLog = function (obj) {\n var _a;\n\n if (obj.Prefix !== undefined) return {\n Prefix: obj.Prefix\n };\n if (obj.Tag !== undefined) return {\n Tag: Tag.filterSensitiveLog(obj.Tag)\n };\n if (obj.And !== undefined) return {\n And: AnalyticsAndOperator.filterSensitiveLog(obj.And)\n };\n if (obj.$unknown !== undefined) return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(AnalyticsFilter || (AnalyticsFilter = {}));\n\nexport var AnalyticsS3BucketDestination;\n\n(function (AnalyticsS3BucketDestination) {\n /**\n * @internal\n */\n AnalyticsS3BucketDestination.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(AnalyticsS3BucketDestination || (AnalyticsS3BucketDestination = {}));\n\nexport var AnalyticsExportDestination;\n\n(function (AnalyticsExportDestination) {\n /**\n * @internal\n */\n AnalyticsExportDestination.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(AnalyticsExportDestination || (AnalyticsExportDestination = {}));\n\nexport var StorageClassAnalysisDataExport;\n\n(function (StorageClassAnalysisDataExport) {\n /**\n * @internal\n */\n StorageClassAnalysisDataExport.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(StorageClassAnalysisDataExport || (StorageClassAnalysisDataExport = {}));\n\nexport var StorageClassAnalysis;\n\n(function (StorageClassAnalysis) {\n /**\n * @internal\n */\n StorageClassAnalysis.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(StorageClassAnalysis || (StorageClassAnalysis = {}));\n\nexport var AnalyticsConfiguration;\n\n(function (AnalyticsConfiguration) {\n /**\n * @internal\n */\n AnalyticsConfiguration.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Filter && {\n Filter: AnalyticsFilter.filterSensitiveLog(obj.Filter)\n });\n };\n})(AnalyticsConfiguration || (AnalyticsConfiguration = {}));\n\nexport var GetBucketAnalyticsConfigurationOutput;\n\n(function (GetBucketAnalyticsConfigurationOutput) {\n /**\n * @internal\n */\n GetBucketAnalyticsConfigurationOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.AnalyticsConfiguration && {\n AnalyticsConfiguration: AnalyticsConfiguration.filterSensitiveLog(obj.AnalyticsConfiguration)\n });\n };\n})(GetBucketAnalyticsConfigurationOutput || (GetBucketAnalyticsConfigurationOutput = {}));\n\nexport var GetBucketAnalyticsConfigurationRequest;\n\n(function (GetBucketAnalyticsConfigurationRequest) {\n /**\n * @internal\n */\n GetBucketAnalyticsConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketAnalyticsConfigurationRequest || (GetBucketAnalyticsConfigurationRequest = {}));\n\nexport var CORSRule;\n\n(function (CORSRule) {\n /**\n * @internal\n */\n CORSRule.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CORSRule || (CORSRule = {}));\n\nexport var GetBucketCorsOutput;\n\n(function (GetBucketCorsOutput) {\n /**\n * @internal\n */\n GetBucketCorsOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketCorsOutput || (GetBucketCorsOutput = {}));\n\nexport var GetBucketCorsRequest;\n\n(function (GetBucketCorsRequest) {\n /**\n * @internal\n */\n GetBucketCorsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketCorsRequest || (GetBucketCorsRequest = {}));\n\nexport var ServerSideEncryptionByDefault;\n\n(function (ServerSideEncryptionByDefault) {\n /**\n * @internal\n */\n ServerSideEncryptionByDefault.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.KMSMasterKeyID && {\n KMSMasterKeyID: SENSITIVE_STRING\n });\n };\n})(ServerSideEncryptionByDefault || (ServerSideEncryptionByDefault = {}));\n\nexport var ServerSideEncryptionRule;\n\n(function (ServerSideEncryptionRule) {\n /**\n * @internal\n */\n ServerSideEncryptionRule.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.ApplyServerSideEncryptionByDefault && {\n ApplyServerSideEncryptionByDefault: ServerSideEncryptionByDefault.filterSensitiveLog(obj.ApplyServerSideEncryptionByDefault)\n });\n };\n})(ServerSideEncryptionRule || (ServerSideEncryptionRule = {}));\n\nexport var ServerSideEncryptionConfiguration;\n\n(function (ServerSideEncryptionConfiguration) {\n /**\n * @internal\n */\n ServerSideEncryptionConfiguration.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Rules && {\n Rules: obj.Rules.map(function (item) {\n return ServerSideEncryptionRule.filterSensitiveLog(item);\n })\n });\n };\n})(ServerSideEncryptionConfiguration || (ServerSideEncryptionConfiguration = {}));\n\nexport var GetBucketEncryptionOutput;\n\n(function (GetBucketEncryptionOutput) {\n /**\n * @internal\n */\n GetBucketEncryptionOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.ServerSideEncryptionConfiguration && {\n ServerSideEncryptionConfiguration: ServerSideEncryptionConfiguration.filterSensitiveLog(obj.ServerSideEncryptionConfiguration)\n });\n };\n})(GetBucketEncryptionOutput || (GetBucketEncryptionOutput = {}));\n\nexport var GetBucketEncryptionRequest;\n\n(function (GetBucketEncryptionRequest) {\n /**\n * @internal\n */\n GetBucketEncryptionRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketEncryptionRequest || (GetBucketEncryptionRequest = {}));\n\nexport var IntelligentTieringAndOperator;\n\n(function (IntelligentTieringAndOperator) {\n /**\n * @internal\n */\n IntelligentTieringAndOperator.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(IntelligentTieringAndOperator || (IntelligentTieringAndOperator = {}));\n\nexport var IntelligentTieringFilter;\n\n(function (IntelligentTieringFilter) {\n /**\n * @internal\n */\n IntelligentTieringFilter.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(IntelligentTieringFilter || (IntelligentTieringFilter = {}));\n\nexport var Tiering;\n\n(function (Tiering) {\n /**\n * @internal\n */\n Tiering.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Tiering || (Tiering = {}));\n\nexport var IntelligentTieringConfiguration;\n\n(function (IntelligentTieringConfiguration) {\n /**\n * @internal\n */\n IntelligentTieringConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(IntelligentTieringConfiguration || (IntelligentTieringConfiguration = {}));\n\nexport var GetBucketIntelligentTieringConfigurationOutput;\n\n(function (GetBucketIntelligentTieringConfigurationOutput) {\n /**\n * @internal\n */\n GetBucketIntelligentTieringConfigurationOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketIntelligentTieringConfigurationOutput || (GetBucketIntelligentTieringConfigurationOutput = {}));\n\nexport var GetBucketIntelligentTieringConfigurationRequest;\n\n(function (GetBucketIntelligentTieringConfigurationRequest) {\n /**\n * @internal\n */\n GetBucketIntelligentTieringConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketIntelligentTieringConfigurationRequest || (GetBucketIntelligentTieringConfigurationRequest = {}));\n\nexport var SSEKMS;\n\n(function (SSEKMS) {\n /**\n * @internal\n */\n SSEKMS.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.KeyId && {\n KeyId: SENSITIVE_STRING\n });\n };\n})(SSEKMS || (SSEKMS = {}));\n\nexport var SSES3;\n\n(function (SSES3) {\n /**\n * @internal\n */\n SSES3.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(SSES3 || (SSES3 = {}));\n\nexport var InventoryEncryption;\n\n(function (InventoryEncryption) {\n /**\n * @internal\n */\n InventoryEncryption.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.SSEKMS && {\n SSEKMS: SSEKMS.filterSensitiveLog(obj.SSEKMS)\n });\n };\n})(InventoryEncryption || (InventoryEncryption = {}));\n\nexport var InventoryS3BucketDestination;\n\n(function (InventoryS3BucketDestination) {\n /**\n * @internal\n */\n InventoryS3BucketDestination.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Encryption && {\n Encryption: InventoryEncryption.filterSensitiveLog(obj.Encryption)\n });\n };\n})(InventoryS3BucketDestination || (InventoryS3BucketDestination = {}));\n\nexport var InventoryDestination;\n\n(function (InventoryDestination) {\n /**\n * @internal\n */\n InventoryDestination.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.S3BucketDestination && {\n S3BucketDestination: InventoryS3BucketDestination.filterSensitiveLog(obj.S3BucketDestination)\n });\n };\n})(InventoryDestination || (InventoryDestination = {}));\n\nexport var InventoryFilter;\n\n(function (InventoryFilter) {\n /**\n * @internal\n */\n InventoryFilter.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(InventoryFilter || (InventoryFilter = {}));\n\nexport var InventorySchedule;\n\n(function (InventorySchedule) {\n /**\n * @internal\n */\n InventorySchedule.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(InventorySchedule || (InventorySchedule = {}));\n\nexport var InventoryConfiguration;\n\n(function (InventoryConfiguration) {\n /**\n * @internal\n */\n InventoryConfiguration.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Destination && {\n Destination: InventoryDestination.filterSensitiveLog(obj.Destination)\n });\n };\n})(InventoryConfiguration || (InventoryConfiguration = {}));\n\nexport var GetBucketInventoryConfigurationOutput;\n\n(function (GetBucketInventoryConfigurationOutput) {\n /**\n * @internal\n */\n GetBucketInventoryConfigurationOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.InventoryConfiguration && {\n InventoryConfiguration: InventoryConfiguration.filterSensitiveLog(obj.InventoryConfiguration)\n });\n };\n})(GetBucketInventoryConfigurationOutput || (GetBucketInventoryConfigurationOutput = {}));\n\nexport var GetBucketInventoryConfigurationRequest;\n\n(function (GetBucketInventoryConfigurationRequest) {\n /**\n * @internal\n */\n GetBucketInventoryConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketInventoryConfigurationRequest || (GetBucketInventoryConfigurationRequest = {}));\n\nexport var LifecycleExpiration;\n\n(function (LifecycleExpiration) {\n /**\n * @internal\n */\n LifecycleExpiration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(LifecycleExpiration || (LifecycleExpiration = {}));\n\nexport var LifecycleRuleAndOperator;\n\n(function (LifecycleRuleAndOperator) {\n /**\n * @internal\n */\n LifecycleRuleAndOperator.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(LifecycleRuleAndOperator || (LifecycleRuleAndOperator = {}));\n\nexport var LifecycleRuleFilter;\n\n(function (LifecycleRuleFilter) {\n LifecycleRuleFilter.visit = function (value, visitor) {\n if (value.Prefix !== undefined) return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined) return visitor.Tag(value.Tag);\n if (value.And !== undefined) return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n /**\n * @internal\n */\n\n\n LifecycleRuleFilter.filterSensitiveLog = function (obj) {\n var _a;\n\n if (obj.Prefix !== undefined) return {\n Prefix: obj.Prefix\n };\n if (obj.Tag !== undefined) return {\n Tag: Tag.filterSensitiveLog(obj.Tag)\n };\n if (obj.And !== undefined) return {\n And: LifecycleRuleAndOperator.filterSensitiveLog(obj.And)\n };\n if (obj.$unknown !== undefined) return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(LifecycleRuleFilter || (LifecycleRuleFilter = {}));\n\nexport var NoncurrentVersionExpiration;\n\n(function (NoncurrentVersionExpiration) {\n /**\n * @internal\n */\n NoncurrentVersionExpiration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(NoncurrentVersionExpiration || (NoncurrentVersionExpiration = {}));\n\nexport var NoncurrentVersionTransition;\n\n(function (NoncurrentVersionTransition) {\n /**\n * @internal\n */\n NoncurrentVersionTransition.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(NoncurrentVersionTransition || (NoncurrentVersionTransition = {}));\n\nexport var Transition;\n\n(function (Transition) {\n /**\n * @internal\n */\n Transition.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Transition || (Transition = {}));\n\nexport var LifecycleRule;\n\n(function (LifecycleRule) {\n /**\n * @internal\n */\n LifecycleRule.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Filter && {\n Filter: LifecycleRuleFilter.filterSensitiveLog(obj.Filter)\n });\n };\n})(LifecycleRule || (LifecycleRule = {}));\n\nexport var GetBucketLifecycleConfigurationOutput;\n\n(function (GetBucketLifecycleConfigurationOutput) {\n /**\n * @internal\n */\n GetBucketLifecycleConfigurationOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Rules && {\n Rules: obj.Rules.map(function (item) {\n return LifecycleRule.filterSensitiveLog(item);\n })\n });\n };\n})(GetBucketLifecycleConfigurationOutput || (GetBucketLifecycleConfigurationOutput = {}));\n\nexport var GetBucketLifecycleConfigurationRequest;\n\n(function (GetBucketLifecycleConfigurationRequest) {\n /**\n * @internal\n */\n GetBucketLifecycleConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketLifecycleConfigurationRequest || (GetBucketLifecycleConfigurationRequest = {}));\n\nexport var GetBucketLocationOutput;\n\n(function (GetBucketLocationOutput) {\n /**\n * @internal\n */\n GetBucketLocationOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketLocationOutput || (GetBucketLocationOutput = {}));\n\nexport var GetBucketLocationRequest;\n\n(function (GetBucketLocationRequest) {\n /**\n * @internal\n */\n GetBucketLocationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketLocationRequest || (GetBucketLocationRequest = {}));\n\nexport var TargetGrant;\n\n(function (TargetGrant) {\n /**\n * @internal\n */\n TargetGrant.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(TargetGrant || (TargetGrant = {}));\n\nexport var LoggingEnabled;\n\n(function (LoggingEnabled) {\n /**\n * @internal\n */\n LoggingEnabled.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(LoggingEnabled || (LoggingEnabled = {}));\n\nexport var GetBucketLoggingOutput;\n\n(function (GetBucketLoggingOutput) {\n /**\n * @internal\n */\n GetBucketLoggingOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketLoggingOutput || (GetBucketLoggingOutput = {}));\n\nexport var GetBucketLoggingRequest;\n\n(function (GetBucketLoggingRequest) {\n /**\n * @internal\n */\n GetBucketLoggingRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketLoggingRequest || (GetBucketLoggingRequest = {}));\n\nexport var MetricsAndOperator;\n\n(function (MetricsAndOperator) {\n /**\n * @internal\n */\n MetricsAndOperator.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(MetricsAndOperator || (MetricsAndOperator = {}));\n\nexport var MetricsFilter;\n\n(function (MetricsFilter) {\n MetricsFilter.visit = function (value, visitor) {\n if (value.Prefix !== undefined) return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined) return visitor.Tag(value.Tag);\n if (value.And !== undefined) return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n /**\n * @internal\n */\n\n\n MetricsFilter.filterSensitiveLog = function (obj) {\n var _a;\n\n if (obj.Prefix !== undefined) return {\n Prefix: obj.Prefix\n };\n if (obj.Tag !== undefined) return {\n Tag: Tag.filterSensitiveLog(obj.Tag)\n };\n if (obj.And !== undefined) return {\n And: MetricsAndOperator.filterSensitiveLog(obj.And)\n };\n if (obj.$unknown !== undefined) return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(MetricsFilter || (MetricsFilter = {}));\n\nexport var MetricsConfiguration;\n\n(function (MetricsConfiguration) {\n /**\n * @internal\n */\n MetricsConfiguration.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Filter && {\n Filter: MetricsFilter.filterSensitiveLog(obj.Filter)\n });\n };\n})(MetricsConfiguration || (MetricsConfiguration = {}));\n\nexport var GetBucketMetricsConfigurationOutput;\n\n(function (GetBucketMetricsConfigurationOutput) {\n /**\n * @internal\n */\n GetBucketMetricsConfigurationOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.MetricsConfiguration && {\n MetricsConfiguration: MetricsConfiguration.filterSensitiveLog(obj.MetricsConfiguration)\n });\n };\n})(GetBucketMetricsConfigurationOutput || (GetBucketMetricsConfigurationOutput = {}));\n\nexport var GetBucketMetricsConfigurationRequest;\n\n(function (GetBucketMetricsConfigurationRequest) {\n /**\n * @internal\n */\n GetBucketMetricsConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketMetricsConfigurationRequest || (GetBucketMetricsConfigurationRequest = {}));\n\nexport var GetBucketNotificationConfigurationRequest;\n\n(function (GetBucketNotificationConfigurationRequest) {\n /**\n * @internal\n */\n GetBucketNotificationConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketNotificationConfigurationRequest || (GetBucketNotificationConfigurationRequest = {}));\n\nexport var FilterRule;\n\n(function (FilterRule) {\n /**\n * @internal\n */\n FilterRule.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(FilterRule || (FilterRule = {}));\n\nexport var S3KeyFilter;\n\n(function (S3KeyFilter) {\n /**\n * @internal\n */\n S3KeyFilter.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(S3KeyFilter || (S3KeyFilter = {}));\n\nexport var NotificationConfigurationFilter;\n\n(function (NotificationConfigurationFilter) {\n /**\n * @internal\n */\n NotificationConfigurationFilter.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(NotificationConfigurationFilter || (NotificationConfigurationFilter = {}));\n\nexport var LambdaFunctionConfiguration;\n\n(function (LambdaFunctionConfiguration) {\n /**\n * @internal\n */\n LambdaFunctionConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(LambdaFunctionConfiguration || (LambdaFunctionConfiguration = {}));\n\nexport var QueueConfiguration;\n\n(function (QueueConfiguration) {\n /**\n * @internal\n */\n QueueConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(QueueConfiguration || (QueueConfiguration = {}));\n\nexport var TopicConfiguration;\n\n(function (TopicConfiguration) {\n /**\n * @internal\n */\n TopicConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(TopicConfiguration || (TopicConfiguration = {}));\n\nexport var NotificationConfiguration;\n\n(function (NotificationConfiguration) {\n /**\n * @internal\n */\n NotificationConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(NotificationConfiguration || (NotificationConfiguration = {}));\n\nexport var OwnershipControlsRule;\n\n(function (OwnershipControlsRule) {\n /**\n * @internal\n */\n OwnershipControlsRule.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(OwnershipControlsRule || (OwnershipControlsRule = {}));\n\nexport var OwnershipControls;\n\n(function (OwnershipControls) {\n /**\n * @internal\n */\n OwnershipControls.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(OwnershipControls || (OwnershipControls = {}));\n\nexport var GetBucketOwnershipControlsOutput;\n\n(function (GetBucketOwnershipControlsOutput) {\n /**\n * @internal\n */\n GetBucketOwnershipControlsOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketOwnershipControlsOutput || (GetBucketOwnershipControlsOutput = {}));\n\nexport var GetBucketOwnershipControlsRequest;\n\n(function (GetBucketOwnershipControlsRequest) {\n /**\n * @internal\n */\n GetBucketOwnershipControlsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketOwnershipControlsRequest || (GetBucketOwnershipControlsRequest = {}));\n\nexport var GetBucketPolicyOutput;\n\n(function (GetBucketPolicyOutput) {\n /**\n * @internal\n */\n GetBucketPolicyOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketPolicyOutput || (GetBucketPolicyOutput = {}));\n\nexport var GetBucketPolicyRequest;\n\n(function (GetBucketPolicyRequest) {\n /**\n * @internal\n */\n GetBucketPolicyRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketPolicyRequest || (GetBucketPolicyRequest = {}));\n\nexport var PolicyStatus;\n\n(function (PolicyStatus) {\n /**\n * @internal\n */\n PolicyStatus.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PolicyStatus || (PolicyStatus = {}));\n\nexport var GetBucketPolicyStatusOutput;\n\n(function (GetBucketPolicyStatusOutput) {\n /**\n * @internal\n */\n GetBucketPolicyStatusOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketPolicyStatusOutput || (GetBucketPolicyStatusOutput = {}));\n\nexport var GetBucketPolicyStatusRequest;\n\n(function (GetBucketPolicyStatusRequest) {\n /**\n * @internal\n */\n GetBucketPolicyStatusRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketPolicyStatusRequest || (GetBucketPolicyStatusRequest = {}));\n\nexport var DeleteMarkerReplication;\n\n(function (DeleteMarkerReplication) {\n /**\n * @internal\n */\n DeleteMarkerReplication.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteMarkerReplication || (DeleteMarkerReplication = {}));\n\nexport var EncryptionConfiguration;\n\n(function (EncryptionConfiguration) {\n /**\n * @internal\n */\n EncryptionConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(EncryptionConfiguration || (EncryptionConfiguration = {}));\n\nexport var ReplicationTimeValue;\n\n(function (ReplicationTimeValue) {\n /**\n * @internal\n */\n ReplicationTimeValue.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ReplicationTimeValue || (ReplicationTimeValue = {}));\n\nexport var Metrics;\n\n(function (Metrics) {\n /**\n * @internal\n */\n Metrics.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Metrics || (Metrics = {}));\n\nexport var ReplicationTime;\n\n(function (ReplicationTime) {\n /**\n * @internal\n */\n ReplicationTime.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ReplicationTime || (ReplicationTime = {}));\n\nexport var Destination;\n\n(function (Destination) {\n /**\n * @internal\n */\n Destination.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Destination || (Destination = {}));\n\nexport var ExistingObjectReplication;\n\n(function (ExistingObjectReplication) {\n /**\n * @internal\n */\n ExistingObjectReplication.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ExistingObjectReplication || (ExistingObjectReplication = {}));\n\nexport var ReplicationRuleAndOperator;\n\n(function (ReplicationRuleAndOperator) {\n /**\n * @internal\n */\n ReplicationRuleAndOperator.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ReplicationRuleAndOperator || (ReplicationRuleAndOperator = {}));\n\nexport var ReplicationRuleFilter;\n\n(function (ReplicationRuleFilter) {\n ReplicationRuleFilter.visit = function (value, visitor) {\n if (value.Prefix !== undefined) return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined) return visitor.Tag(value.Tag);\n if (value.And !== undefined) return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n /**\n * @internal\n */\n\n\n ReplicationRuleFilter.filterSensitiveLog = function (obj) {\n var _a;\n\n if (obj.Prefix !== undefined) return {\n Prefix: obj.Prefix\n };\n if (obj.Tag !== undefined) return {\n Tag: Tag.filterSensitiveLog(obj.Tag)\n };\n if (obj.And !== undefined) return {\n And: ReplicationRuleAndOperator.filterSensitiveLog(obj.And)\n };\n if (obj.$unknown !== undefined) return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(ReplicationRuleFilter || (ReplicationRuleFilter = {}));\n\nexport var ReplicaModifications;\n\n(function (ReplicaModifications) {\n /**\n * @internal\n */\n ReplicaModifications.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ReplicaModifications || (ReplicaModifications = {}));\n\nexport var SseKmsEncryptedObjects;\n\n(function (SseKmsEncryptedObjects) {\n /**\n * @internal\n */\n SseKmsEncryptedObjects.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(SseKmsEncryptedObjects || (SseKmsEncryptedObjects = {}));\n\nexport var SourceSelectionCriteria;\n\n(function (SourceSelectionCriteria) {\n /**\n * @internal\n */\n SourceSelectionCriteria.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(SourceSelectionCriteria || (SourceSelectionCriteria = {}));\n\nexport var ReplicationRule;\n\n(function (ReplicationRule) {\n /**\n * @internal\n */\n ReplicationRule.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Filter && {\n Filter: ReplicationRuleFilter.filterSensitiveLog(obj.Filter)\n });\n };\n})(ReplicationRule || (ReplicationRule = {}));\n\nexport var ReplicationConfiguration;\n\n(function (ReplicationConfiguration) {\n /**\n * @internal\n */\n ReplicationConfiguration.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Rules && {\n Rules: obj.Rules.map(function (item) {\n return ReplicationRule.filterSensitiveLog(item);\n })\n });\n };\n})(ReplicationConfiguration || (ReplicationConfiguration = {}));\n\nexport var GetBucketReplicationOutput;\n\n(function (GetBucketReplicationOutput) {\n /**\n * @internal\n */\n GetBucketReplicationOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.ReplicationConfiguration && {\n ReplicationConfiguration: ReplicationConfiguration.filterSensitiveLog(obj.ReplicationConfiguration)\n });\n };\n})(GetBucketReplicationOutput || (GetBucketReplicationOutput = {}));\n\nexport var GetBucketReplicationRequest;\n\n(function (GetBucketReplicationRequest) {\n /**\n * @internal\n */\n GetBucketReplicationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketReplicationRequest || (GetBucketReplicationRequest = {}));\n\nexport var GetBucketRequestPaymentOutput;\n\n(function (GetBucketRequestPaymentOutput) {\n /**\n * @internal\n */\n GetBucketRequestPaymentOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketRequestPaymentOutput || (GetBucketRequestPaymentOutput = {}));\n\nexport var GetBucketRequestPaymentRequest;\n\n(function (GetBucketRequestPaymentRequest) {\n /**\n * @internal\n */\n GetBucketRequestPaymentRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketRequestPaymentRequest || (GetBucketRequestPaymentRequest = {}));\n\nexport var GetBucketTaggingOutput;\n\n(function (GetBucketTaggingOutput) {\n /**\n * @internal\n */\n GetBucketTaggingOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketTaggingOutput || (GetBucketTaggingOutput = {}));\n\nexport var GetBucketTaggingRequest;\n\n(function (GetBucketTaggingRequest) {\n /**\n * @internal\n */\n GetBucketTaggingRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketTaggingRequest || (GetBucketTaggingRequest = {}));\n\nexport var GetBucketVersioningOutput;\n\n(function (GetBucketVersioningOutput) {\n /**\n * @internal\n */\n GetBucketVersioningOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketVersioningOutput || (GetBucketVersioningOutput = {}));\n\nexport var GetBucketVersioningRequest;\n\n(function (GetBucketVersioningRequest) {\n /**\n * @internal\n */\n GetBucketVersioningRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketVersioningRequest || (GetBucketVersioningRequest = {}));\n\nexport var ErrorDocument;\n\n(function (ErrorDocument) {\n /**\n * @internal\n */\n ErrorDocument.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ErrorDocument || (ErrorDocument = {}));\n\nexport var IndexDocument;\n\n(function (IndexDocument) {\n /**\n * @internal\n */\n IndexDocument.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(IndexDocument || (IndexDocument = {}));\n\nexport var RedirectAllRequestsTo;\n\n(function (RedirectAllRequestsTo) {\n /**\n * @internal\n */\n RedirectAllRequestsTo.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(RedirectAllRequestsTo || (RedirectAllRequestsTo = {}));\n\nexport var Condition;\n\n(function (Condition) {\n /**\n * @internal\n */\n Condition.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Condition || (Condition = {}));\n\nexport var Redirect;\n\n(function (Redirect) {\n /**\n * @internal\n */\n Redirect.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Redirect || (Redirect = {}));\n\nexport var RoutingRule;\n\n(function (RoutingRule) {\n /**\n * @internal\n */\n RoutingRule.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(RoutingRule || (RoutingRule = {}));\n\nexport var GetBucketWebsiteOutput;\n\n(function (GetBucketWebsiteOutput) {\n /**\n * @internal\n */\n GetBucketWebsiteOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketWebsiteOutput || (GetBucketWebsiteOutput = {}));\n\nexport var GetBucketWebsiteRequest;\n\n(function (GetBucketWebsiteRequest) {\n /**\n * @internal\n */\n GetBucketWebsiteRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetBucketWebsiteRequest || (GetBucketWebsiteRequest = {}));\n\nexport var GetObjectOutput;\n\n(function (GetObjectOutput) {\n /**\n * @internal\n */\n GetObjectOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.SSEKMSKeyId && {\n SSEKMSKeyId: SENSITIVE_STRING\n });\n };\n})(GetObjectOutput || (GetObjectOutput = {}));\n\nexport var GetObjectRequest;\n\n(function (GetObjectRequest) {\n /**\n * @internal\n */\n GetObjectRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.SSECustomerKey && {\n SSECustomerKey: SENSITIVE_STRING\n });\n };\n})(GetObjectRequest || (GetObjectRequest = {}));\n\nexport var InvalidObjectState;\n\n(function (InvalidObjectState) {\n /**\n * @internal\n */\n InvalidObjectState.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(InvalidObjectState || (InvalidObjectState = {}));\n\nexport var NoSuchKey;\n\n(function (NoSuchKey) {\n /**\n * @internal\n */\n NoSuchKey.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(NoSuchKey || (NoSuchKey = {}));\n\nexport var GetObjectAclOutput;\n\n(function (GetObjectAclOutput) {\n /**\n * @internal\n */\n GetObjectAclOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectAclOutput || (GetObjectAclOutput = {}));\n\nexport var GetObjectAclRequest;\n\n(function (GetObjectAclRequest) {\n /**\n * @internal\n */\n GetObjectAclRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectAclRequest || (GetObjectAclRequest = {}));\n\nexport var ObjectLockLegalHold;\n\n(function (ObjectLockLegalHold) {\n /**\n * @internal\n */\n ObjectLockLegalHold.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ObjectLockLegalHold || (ObjectLockLegalHold = {}));\n\nexport var GetObjectLegalHoldOutput;\n\n(function (GetObjectLegalHoldOutput) {\n /**\n * @internal\n */\n GetObjectLegalHoldOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectLegalHoldOutput || (GetObjectLegalHoldOutput = {}));\n\nexport var GetObjectLegalHoldRequest;\n\n(function (GetObjectLegalHoldRequest) {\n /**\n * @internal\n */\n GetObjectLegalHoldRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectLegalHoldRequest || (GetObjectLegalHoldRequest = {}));\n\nexport var DefaultRetention;\n\n(function (DefaultRetention) {\n /**\n * @internal\n */\n DefaultRetention.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DefaultRetention || (DefaultRetention = {}));\n\nexport var ObjectLockRule;\n\n(function (ObjectLockRule) {\n /**\n * @internal\n */\n ObjectLockRule.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ObjectLockRule || (ObjectLockRule = {}));\n\nexport var ObjectLockConfiguration;\n\n(function (ObjectLockConfiguration) {\n /**\n * @internal\n */\n ObjectLockConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ObjectLockConfiguration || (ObjectLockConfiguration = {}));\n\nexport var GetObjectLockConfigurationOutput;\n\n(function (GetObjectLockConfigurationOutput) {\n /**\n * @internal\n */\n GetObjectLockConfigurationOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectLockConfigurationOutput || (GetObjectLockConfigurationOutput = {}));\n\nexport var GetObjectLockConfigurationRequest;\n\n(function (GetObjectLockConfigurationRequest) {\n /**\n * @internal\n */\n GetObjectLockConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectLockConfigurationRequest || (GetObjectLockConfigurationRequest = {}));\n\nexport var ObjectLockRetention;\n\n(function (ObjectLockRetention) {\n /**\n * @internal\n */\n ObjectLockRetention.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ObjectLockRetention || (ObjectLockRetention = {}));\n\nexport var GetObjectRetentionOutput;\n\n(function (GetObjectRetentionOutput) {\n /**\n * @internal\n */\n GetObjectRetentionOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectRetentionOutput || (GetObjectRetentionOutput = {}));\n\nexport var GetObjectRetentionRequest;\n\n(function (GetObjectRetentionRequest) {\n /**\n * @internal\n */\n GetObjectRetentionRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectRetentionRequest || (GetObjectRetentionRequest = {}));\n\nexport var GetObjectTaggingOutput;\n\n(function (GetObjectTaggingOutput) {\n /**\n * @internal\n */\n GetObjectTaggingOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectTaggingOutput || (GetObjectTaggingOutput = {}));\n\nexport var GetObjectTaggingRequest;\n\n(function (GetObjectTaggingRequest) {\n /**\n * @internal\n */\n GetObjectTaggingRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectTaggingRequest || (GetObjectTaggingRequest = {}));\n\nexport var GetObjectTorrentOutput;\n\n(function (GetObjectTorrentOutput) {\n /**\n * @internal\n */\n GetObjectTorrentOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectTorrentOutput || (GetObjectTorrentOutput = {}));\n\nexport var GetObjectTorrentRequest;\n\n(function (GetObjectTorrentRequest) {\n /**\n * @internal\n */\n GetObjectTorrentRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetObjectTorrentRequest || (GetObjectTorrentRequest = {}));\n\nexport var PublicAccessBlockConfiguration;\n\n(function (PublicAccessBlockConfiguration) {\n /**\n * @internal\n */\n PublicAccessBlockConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PublicAccessBlockConfiguration || (PublicAccessBlockConfiguration = {}));\n\nexport var GetPublicAccessBlockOutput;\n\n(function (GetPublicAccessBlockOutput) {\n /**\n * @internal\n */\n GetPublicAccessBlockOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetPublicAccessBlockOutput || (GetPublicAccessBlockOutput = {}));\n\nexport var GetPublicAccessBlockRequest;\n\n(function (GetPublicAccessBlockRequest) {\n /**\n * @internal\n */\n GetPublicAccessBlockRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GetPublicAccessBlockRequest || (GetPublicAccessBlockRequest = {}));\n\nexport var HeadBucketRequest;\n\n(function (HeadBucketRequest) {\n /**\n * @internal\n */\n HeadBucketRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(HeadBucketRequest || (HeadBucketRequest = {}));\n\nexport var NotFound;\n\n(function (NotFound) {\n /**\n * @internal\n */\n NotFound.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(NotFound || (NotFound = {}));\n\nexport var HeadObjectOutput;\n\n(function (HeadObjectOutput) {\n /**\n * @internal\n */\n HeadObjectOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.SSEKMSKeyId && {\n SSEKMSKeyId: SENSITIVE_STRING\n });\n };\n})(HeadObjectOutput || (HeadObjectOutput = {}));\n\nexport var HeadObjectRequest;\n\n(function (HeadObjectRequest) {\n /**\n * @internal\n */\n HeadObjectRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.SSECustomerKey && {\n SSECustomerKey: SENSITIVE_STRING\n });\n };\n})(HeadObjectRequest || (HeadObjectRequest = {}));\n\nexport var ListBucketAnalyticsConfigurationsOutput;\n\n(function (ListBucketAnalyticsConfigurationsOutput) {\n /**\n * @internal\n */\n ListBucketAnalyticsConfigurationsOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.AnalyticsConfigurationList && {\n AnalyticsConfigurationList: obj.AnalyticsConfigurationList.map(function (item) {\n return AnalyticsConfiguration.filterSensitiveLog(item);\n })\n });\n };\n})(ListBucketAnalyticsConfigurationsOutput || (ListBucketAnalyticsConfigurationsOutput = {}));\n\nexport var ListBucketAnalyticsConfigurationsRequest;\n\n(function (ListBucketAnalyticsConfigurationsRequest) {\n /**\n * @internal\n */\n ListBucketAnalyticsConfigurationsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListBucketAnalyticsConfigurationsRequest || (ListBucketAnalyticsConfigurationsRequest = {}));\n\nexport var ListBucketIntelligentTieringConfigurationsOutput;\n\n(function (ListBucketIntelligentTieringConfigurationsOutput) {\n /**\n * @internal\n */\n ListBucketIntelligentTieringConfigurationsOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListBucketIntelligentTieringConfigurationsOutput || (ListBucketIntelligentTieringConfigurationsOutput = {}));\n\nexport var ListBucketIntelligentTieringConfigurationsRequest;\n\n(function (ListBucketIntelligentTieringConfigurationsRequest) {\n /**\n * @internal\n */\n ListBucketIntelligentTieringConfigurationsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListBucketIntelligentTieringConfigurationsRequest || (ListBucketIntelligentTieringConfigurationsRequest = {}));\n\nexport var ListBucketInventoryConfigurationsOutput;\n\n(function (ListBucketInventoryConfigurationsOutput) {\n /**\n * @internal\n */\n ListBucketInventoryConfigurationsOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.InventoryConfigurationList && {\n InventoryConfigurationList: obj.InventoryConfigurationList.map(function (item) {\n return InventoryConfiguration.filterSensitiveLog(item);\n })\n });\n };\n})(ListBucketInventoryConfigurationsOutput || (ListBucketInventoryConfigurationsOutput = {}));\n\nexport var ListBucketInventoryConfigurationsRequest;\n\n(function (ListBucketInventoryConfigurationsRequest) {\n /**\n * @internal\n */\n ListBucketInventoryConfigurationsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListBucketInventoryConfigurationsRequest || (ListBucketInventoryConfigurationsRequest = {}));\n\nexport var ListBucketMetricsConfigurationsOutput;\n\n(function (ListBucketMetricsConfigurationsOutput) {\n /**\n * @internal\n */\n ListBucketMetricsConfigurationsOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.MetricsConfigurationList && {\n MetricsConfigurationList: obj.MetricsConfigurationList.map(function (item) {\n return MetricsConfiguration.filterSensitiveLog(item);\n })\n });\n };\n})(ListBucketMetricsConfigurationsOutput || (ListBucketMetricsConfigurationsOutput = {}));\n\nexport var ListBucketMetricsConfigurationsRequest;\n\n(function (ListBucketMetricsConfigurationsRequest) {\n /**\n * @internal\n */\n ListBucketMetricsConfigurationsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListBucketMetricsConfigurationsRequest || (ListBucketMetricsConfigurationsRequest = {}));\n\nexport var Bucket;\n\n(function (Bucket) {\n /**\n * @internal\n */\n Bucket.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Bucket || (Bucket = {}));\n\nexport var ListBucketsOutput;\n\n(function (ListBucketsOutput) {\n /**\n * @internal\n */\n ListBucketsOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListBucketsOutput || (ListBucketsOutput = {}));\n\nexport var CommonPrefix;\n\n(function (CommonPrefix) {\n /**\n * @internal\n */\n CommonPrefix.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CommonPrefix || (CommonPrefix = {}));\n\nexport var Initiator;\n\n(function (Initiator) {\n /**\n * @internal\n */\n Initiator.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Initiator || (Initiator = {}));\n\nexport var MultipartUpload;\n\n(function (MultipartUpload) {\n /**\n * @internal\n */\n MultipartUpload.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(MultipartUpload || (MultipartUpload = {}));\n\nexport var ListMultipartUploadsOutput;\n\n(function (ListMultipartUploadsOutput) {\n /**\n * @internal\n */\n ListMultipartUploadsOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListMultipartUploadsOutput || (ListMultipartUploadsOutput = {}));\n\nexport var ListMultipartUploadsRequest;\n\n(function (ListMultipartUploadsRequest) {\n /**\n * @internal\n */\n ListMultipartUploadsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListMultipartUploadsRequest || (ListMultipartUploadsRequest = {}));\n\nexport var _Object;\n\n(function (_Object) {\n /**\n * @internal\n */\n _Object.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(_Object || (_Object = {}));\n\nexport var ListObjectsOutput;\n\n(function (ListObjectsOutput) {\n /**\n * @internal\n */\n ListObjectsOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListObjectsOutput || (ListObjectsOutput = {}));\n\nexport var ListObjectsRequest;\n\n(function (ListObjectsRequest) {\n /**\n * @internal\n */\n ListObjectsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListObjectsRequest || (ListObjectsRequest = {}));\n\nexport var NoSuchBucket;\n\n(function (NoSuchBucket) {\n /**\n * @internal\n */\n NoSuchBucket.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(NoSuchBucket || (NoSuchBucket = {}));\n\nexport var ListObjectsV2Output;\n\n(function (ListObjectsV2Output) {\n /**\n * @internal\n */\n ListObjectsV2Output.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListObjectsV2Output || (ListObjectsV2Output = {}));\n\nexport var ListObjectsV2Request;\n\n(function (ListObjectsV2Request) {\n /**\n * @internal\n */\n ListObjectsV2Request.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListObjectsV2Request || (ListObjectsV2Request = {}));\n\nexport var DeleteMarkerEntry;\n\n(function (DeleteMarkerEntry) {\n /**\n * @internal\n */\n DeleteMarkerEntry.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(DeleteMarkerEntry || (DeleteMarkerEntry = {}));\n\nexport var ObjectVersion;\n\n(function (ObjectVersion) {\n /**\n * @internal\n */\n ObjectVersion.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ObjectVersion || (ObjectVersion = {}));\n\nexport var ListObjectVersionsOutput;\n\n(function (ListObjectVersionsOutput) {\n /**\n * @internal\n */\n ListObjectVersionsOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListObjectVersionsOutput || (ListObjectVersionsOutput = {}));\n\nexport var ListObjectVersionsRequest;\n\n(function (ListObjectVersionsRequest) {\n /**\n * @internal\n */\n ListObjectVersionsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListObjectVersionsRequest || (ListObjectVersionsRequest = {}));\n\nexport var Part;\n\n(function (Part) {\n /**\n * @internal\n */\n Part.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Part || (Part = {}));\n\nexport var ListPartsOutput;\n\n(function (ListPartsOutput) {\n /**\n * @internal\n */\n ListPartsOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListPartsOutput || (ListPartsOutput = {}));\n\nexport var ListPartsRequest;\n\n(function (ListPartsRequest) {\n /**\n * @internal\n */\n ListPartsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ListPartsRequest || (ListPartsRequest = {}));\n\nexport var PutBucketAccelerateConfigurationRequest;\n\n(function (PutBucketAccelerateConfigurationRequest) {\n /**\n * @internal\n */\n PutBucketAccelerateConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketAccelerateConfigurationRequest || (PutBucketAccelerateConfigurationRequest = {}));\n\nexport var PutBucketAclRequest;\n\n(function (PutBucketAclRequest) {\n /**\n * @internal\n */\n PutBucketAclRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketAclRequest || (PutBucketAclRequest = {}));\n\nexport var PutBucketAnalyticsConfigurationRequest;\n\n(function (PutBucketAnalyticsConfigurationRequest) {\n /**\n * @internal\n */\n PutBucketAnalyticsConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.AnalyticsConfiguration && {\n AnalyticsConfiguration: AnalyticsConfiguration.filterSensitiveLog(obj.AnalyticsConfiguration)\n });\n };\n})(PutBucketAnalyticsConfigurationRequest || (PutBucketAnalyticsConfigurationRequest = {}));\n\nexport var CORSConfiguration;\n\n(function (CORSConfiguration) {\n /**\n * @internal\n */\n CORSConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(CORSConfiguration || (CORSConfiguration = {}));\n\nexport var PutBucketCorsRequest;\n\n(function (PutBucketCorsRequest) {\n /**\n * @internal\n */\n PutBucketCorsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketCorsRequest || (PutBucketCorsRequest = {}));\n\nexport var PutBucketEncryptionRequest;\n\n(function (PutBucketEncryptionRequest) {\n /**\n * @internal\n */\n PutBucketEncryptionRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.ServerSideEncryptionConfiguration && {\n ServerSideEncryptionConfiguration: ServerSideEncryptionConfiguration.filterSensitiveLog(obj.ServerSideEncryptionConfiguration)\n });\n };\n})(PutBucketEncryptionRequest || (PutBucketEncryptionRequest = {}));\n\nexport var PutBucketIntelligentTieringConfigurationRequest;\n\n(function (PutBucketIntelligentTieringConfigurationRequest) {\n /**\n * @internal\n */\n PutBucketIntelligentTieringConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketIntelligentTieringConfigurationRequest || (PutBucketIntelligentTieringConfigurationRequest = {}));\n\nexport var PutBucketInventoryConfigurationRequest;\n\n(function (PutBucketInventoryConfigurationRequest) {\n /**\n * @internal\n */\n PutBucketInventoryConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.InventoryConfiguration && {\n InventoryConfiguration: InventoryConfiguration.filterSensitiveLog(obj.InventoryConfiguration)\n });\n };\n})(PutBucketInventoryConfigurationRequest || (PutBucketInventoryConfigurationRequest = {}));\n\nexport var BucketLifecycleConfiguration;\n\n(function (BucketLifecycleConfiguration) {\n /**\n * @internal\n */\n BucketLifecycleConfiguration.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.Rules && {\n Rules: obj.Rules.map(function (item) {\n return LifecycleRule.filterSensitiveLog(item);\n })\n });\n };\n})(BucketLifecycleConfiguration || (BucketLifecycleConfiguration = {}));\n\nexport var PutBucketLifecycleConfigurationRequest;\n\n(function (PutBucketLifecycleConfigurationRequest) {\n /**\n * @internal\n */\n PutBucketLifecycleConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.LifecycleConfiguration && {\n LifecycleConfiguration: BucketLifecycleConfiguration.filterSensitiveLog(obj.LifecycleConfiguration)\n });\n };\n})(PutBucketLifecycleConfigurationRequest || (PutBucketLifecycleConfigurationRequest = {}));\n\nexport var BucketLoggingStatus;\n\n(function (BucketLoggingStatus) {\n /**\n * @internal\n */\n BucketLoggingStatus.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(BucketLoggingStatus || (BucketLoggingStatus = {}));\n\nexport var PutBucketLoggingRequest;\n\n(function (PutBucketLoggingRequest) {\n /**\n * @internal\n */\n PutBucketLoggingRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketLoggingRequest || (PutBucketLoggingRequest = {}));\n\nexport var PutBucketMetricsConfigurationRequest;\n\n(function (PutBucketMetricsConfigurationRequest) {\n /**\n * @internal\n */\n PutBucketMetricsConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.MetricsConfiguration && {\n MetricsConfiguration: MetricsConfiguration.filterSensitiveLog(obj.MetricsConfiguration)\n });\n };\n})(PutBucketMetricsConfigurationRequest || (PutBucketMetricsConfigurationRequest = {}));\n\nexport var PutBucketNotificationConfigurationRequest;\n\n(function (PutBucketNotificationConfigurationRequest) {\n /**\n * @internal\n */\n PutBucketNotificationConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketNotificationConfigurationRequest || (PutBucketNotificationConfigurationRequest = {}));\n\nexport var PutBucketOwnershipControlsRequest;\n\n(function (PutBucketOwnershipControlsRequest) {\n /**\n * @internal\n */\n PutBucketOwnershipControlsRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketOwnershipControlsRequest || (PutBucketOwnershipControlsRequest = {}));\n\nexport var PutBucketPolicyRequest;\n\n(function (PutBucketPolicyRequest) {\n /**\n * @internal\n */\n PutBucketPolicyRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketPolicyRequest || (PutBucketPolicyRequest = {}));\n\nexport var PutBucketReplicationRequest;\n\n(function (PutBucketReplicationRequest) {\n /**\n * @internal\n */\n PutBucketReplicationRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign({}, obj), obj.ReplicationConfiguration && {\n ReplicationConfiguration: ReplicationConfiguration.filterSensitiveLog(obj.ReplicationConfiguration)\n });\n };\n})(PutBucketReplicationRequest || (PutBucketReplicationRequest = {}));\n\nexport var RequestPaymentConfiguration;\n\n(function (RequestPaymentConfiguration) {\n /**\n * @internal\n */\n RequestPaymentConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(RequestPaymentConfiguration || (RequestPaymentConfiguration = {}));\n\nexport var PutBucketRequestPaymentRequest;\n\n(function (PutBucketRequestPaymentRequest) {\n /**\n * @internal\n */\n PutBucketRequestPaymentRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketRequestPaymentRequest || (PutBucketRequestPaymentRequest = {}));\n\nexport var Tagging;\n\n(function (Tagging) {\n /**\n * @internal\n */\n Tagging.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(Tagging || (Tagging = {}));\n\nexport var PutBucketTaggingRequest;\n\n(function (PutBucketTaggingRequest) {\n /**\n * @internal\n */\n PutBucketTaggingRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketTaggingRequest || (PutBucketTaggingRequest = {}));\n\nexport var VersioningConfiguration;\n\n(function (VersioningConfiguration) {\n /**\n * @internal\n */\n VersioningConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(VersioningConfiguration || (VersioningConfiguration = {}));\n\nexport var PutBucketVersioningRequest;\n\n(function (PutBucketVersioningRequest) {\n /**\n * @internal\n */\n PutBucketVersioningRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketVersioningRequest || (PutBucketVersioningRequest = {}));\n\nexport var WebsiteConfiguration;\n\n(function (WebsiteConfiguration) {\n /**\n * @internal\n */\n WebsiteConfiguration.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(WebsiteConfiguration || (WebsiteConfiguration = {}));\n\nexport var PutBucketWebsiteRequest;\n\n(function (PutBucketWebsiteRequest) {\n /**\n * @internal\n */\n PutBucketWebsiteRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutBucketWebsiteRequest || (PutBucketWebsiteRequest = {}));\n\nexport var PutObjectOutput;\n\n(function (PutObjectOutput) {\n /**\n * @internal\n */\n PutObjectOutput.filterSensitiveLog = function (obj) {\n return __assign(__assign(__assign({}, obj), obj.SSEKMSKeyId && {\n SSEKMSKeyId: SENSITIVE_STRING\n }), obj.SSEKMSEncryptionContext && {\n SSEKMSEncryptionContext: SENSITIVE_STRING\n });\n };\n})(PutObjectOutput || (PutObjectOutput = {}));\n\nexport var PutObjectRequest;\n\n(function (PutObjectRequest) {\n /**\n * @internal\n */\n PutObjectRequest.filterSensitiveLog = function (obj) {\n return __assign(__assign(__assign(__assign({}, obj), obj.SSECustomerKey && {\n SSECustomerKey: SENSITIVE_STRING\n }), obj.SSEKMSKeyId && {\n SSEKMSKeyId: SENSITIVE_STRING\n }), obj.SSEKMSEncryptionContext && {\n SSEKMSEncryptionContext: SENSITIVE_STRING\n });\n };\n})(PutObjectRequest || (PutObjectRequest = {}));\n\nexport var PutObjectAclOutput;\n\n(function (PutObjectAclOutput) {\n /**\n * @internal\n */\n PutObjectAclOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutObjectAclOutput || (PutObjectAclOutput = {}));\n\nexport var PutObjectAclRequest;\n\n(function (PutObjectAclRequest) {\n /**\n * @internal\n */\n PutObjectAclRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutObjectAclRequest || (PutObjectAclRequest = {}));\n\nexport var PutObjectLegalHoldOutput;\n\n(function (PutObjectLegalHoldOutput) {\n /**\n * @internal\n */\n PutObjectLegalHoldOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutObjectLegalHoldOutput || (PutObjectLegalHoldOutput = {}));\n\nexport var PutObjectLegalHoldRequest;\n\n(function (PutObjectLegalHoldRequest) {\n /**\n * @internal\n */\n PutObjectLegalHoldRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutObjectLegalHoldRequest || (PutObjectLegalHoldRequest = {}));\n\nexport var PutObjectLockConfigurationOutput;\n\n(function (PutObjectLockConfigurationOutput) {\n /**\n * @internal\n */\n PutObjectLockConfigurationOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutObjectLockConfigurationOutput || (PutObjectLockConfigurationOutput = {}));\n\nexport var PutObjectLockConfigurationRequest;\n\n(function (PutObjectLockConfigurationRequest) {\n /**\n * @internal\n */\n PutObjectLockConfigurationRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutObjectLockConfigurationRequest || (PutObjectLockConfigurationRequest = {}));\n\nexport var PutObjectRetentionOutput;\n\n(function (PutObjectRetentionOutput) {\n /**\n * @internal\n */\n PutObjectRetentionOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutObjectRetentionOutput || (PutObjectRetentionOutput = {}));\n\nexport var PutObjectRetentionRequest;\n\n(function (PutObjectRetentionRequest) {\n /**\n * @internal\n */\n PutObjectRetentionRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutObjectRetentionRequest || (PutObjectRetentionRequest = {}));\n\nexport var PutObjectTaggingOutput;\n\n(function (PutObjectTaggingOutput) {\n /**\n * @internal\n */\n PutObjectTaggingOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutObjectTaggingOutput || (PutObjectTaggingOutput = {}));\n\nexport var PutObjectTaggingRequest;\n\n(function (PutObjectTaggingRequest) {\n /**\n * @internal\n */\n PutObjectTaggingRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutObjectTaggingRequest || (PutObjectTaggingRequest = {}));\n\nexport var PutPublicAccessBlockRequest;\n\n(function (PutPublicAccessBlockRequest) {\n /**\n * @internal\n */\n PutPublicAccessBlockRequest.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(PutPublicAccessBlockRequest || (PutPublicAccessBlockRequest = {}));\n\nexport var ObjectAlreadyInActiveTierError;\n\n(function (ObjectAlreadyInActiveTierError) {\n /**\n * @internal\n */\n ObjectAlreadyInActiveTierError.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(ObjectAlreadyInActiveTierError || (ObjectAlreadyInActiveTierError = {}));\n\nexport var RestoreObjectOutput;\n\n(function (RestoreObjectOutput) {\n /**\n * @internal\n */\n RestoreObjectOutput.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(RestoreObjectOutput || (RestoreObjectOutput = {}));\n\nexport var GlacierJobParameters;\n\n(function (GlacierJobParameters) {\n /**\n * @internal\n */\n GlacierJobParameters.filterSensitiveLog = function (obj) {\n return __assign({}, obj);\n };\n})(GlacierJobParameters || (GlacierJobParameters = {}));","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\n\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar global = require('../internals/global');\n\nvar isObject = require('../internals/is-object');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar objectHas = require('../internals/has');\n\nvar sharedKey = require('../internals/shared-key');\n\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function enforce(it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function getterFor(TYPE) {\n return function (it) {\n var state;\n\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n }\n\n return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n\n set = function set(it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n\n get = function get(it) {\n return wmget.call(store, it) || {};\n };\n\n has = function has(it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n\n set = function set(it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n\n get = function get(it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n\n has = function has(it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar quot = /\"/g; // B.2.3.2.1 CreateHTML(string, tag, attribute, value)\n// https://tc39.github.io/ecma262/#sec-createhtml\n\nmodule.exports = function (string, tag, attribute, value) {\n var S = String(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};","var fails = require('../internals/fails'); // check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\n\n\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};","'use strict';\n\nvar bind = require('./helpers/bind');\n/*global toString:true*/\n// utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString;\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\n\n\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nfunction isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\n}\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n }\n\n return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\n\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\n\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\n\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\n\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\n\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\n\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\n\n\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction merge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction deepMerge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n\n\nvar merge = createAssigner(function (object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\nmodule.exports = merge;","import setPrototypeOf from \"./setPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","\"use strict\";\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : new P(function (resolve) {\n resolve(result.value);\n }).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar pipe_1 = require(\"./utils/pipe\");\n\nvar InstagramFiltersError_1 = require(\"./utils/InstagramFiltersError\");\n\nfunction applyPresetOnCanvas(canvas) {\n var presets = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n presets[_i - 1] = arguments[_i];\n }\n\n if (!canvas) {\n throw new InstagramFiltersError_1.InstagramFiltersError('canvas argument must be defined');\n }\n\n if (!presets || !presets.length) {\n throw new InstagramFiltersError_1.InstagramFiltersError('At least one preset must be passed');\n }\n\n var firstPreset = presets[0],\n nextPresets = presets.slice(1);\n var context = canvas.getContext('2d');\n\n if (!context) {\n throw new InstagramFiltersError_1.InstagramFiltersError('Unable to retrieve context from the canvas');\n }\n\n var pixels = context.getImageData(0, 0, canvas.width, canvas.height);\n var filteredPixels = pipe_1.pipe.apply(void 0, [firstPreset].concat(nextPresets))(pixels);\n context.putImageData(filteredPixels, 0, 0);\n}\n\nexports.applyPresetOnCanvas = applyPresetOnCanvas;\n\nfunction applyPresetOnImage(image) {\n var presets = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n presets[_i - 1] = arguments[_i];\n }\n\n return __awaiter(this, void 0, void 0, function () {\n var canvas, context, blob;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!image) {\n throw new InstagramFiltersError_1.InstagramFiltersError('image argument must be defined');\n }\n\n canvas = document.createElement('canvas');\n canvas.width = image.naturalWidth;\n canvas.height = image.naturalHeight;\n context = canvas.getContext('2d');\n\n if (!context) {\n throw new InstagramFiltersError_1.InstagramFiltersError('Unable to retrieve context from the canvas');\n }\n\n context.drawImage(image, 0, 0, canvas.width, canvas.height);\n applyPresetOnCanvas.apply(void 0, [canvas].concat(presets));\n return [4\n /*yield*/\n , new Promise(function (resolve) {\n return canvas.toBlob(resolve);\n })];\n\n case 1:\n blob = _a.sent();\n canvas.remove();\n return [2\n /*return*/\n , blob];\n }\n });\n });\n}\n\nexports.applyPresetOnImage = applyPresetOnImage;\n\nfunction applyPresetOnImageURL(url) {\n var presets = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n presets[_i - 1] = arguments[_i];\n }\n\n return __awaiter(this, void 0, void 0, function () {\n var image;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , new Promise(function (resolve, reject) {\n var imageElement = new Image();\n imageElement.addEventListener('load', function () {\n return resolve(imageElement);\n });\n imageElement.addEventListener('error', reject);\n imageElement.src = url;\n })];\n\n case 1:\n image = _a.sent();\n return [2\n /*return*/\n , applyPresetOnImage.apply(void 0, [image].concat(presets))];\n }\n });\n });\n}\n\nexports.applyPresetOnImageURL = applyPresetOnImageURL;\n\n__export(require(\"./presets\"));","var ceil = Math.ceil;\nvar floor = Math.floor; // `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\n\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","module.exports = function() {\n\tthrow new Error(\"define cannot be used indirect\");\n};\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport * from \"./compareUtils\";\nexport * from \"./domUtils\";\nexport * from \"./functionUtils\";\nexport * from \"./jsUtils\";\nexport * from \"./reactUtils\";\nexport * from \"./safeInvokeMember\";\n/**\n * Utils.getRef() was added to the public API in @blueprintjs/core@3.27.0,\n * but ref utils were refactored in the next version. We keep this additional\n * export around for backwards compatibility.\n * @see https://github.com/palantir/blueprint/pull/4140\n */\n\nexport { getRef } from \"../refs\";","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import { __awaiter, __generator, __read, __spreadArray } from \"tslib\";\nexport var retryMiddleware = function retryMiddleware(options) {\n return function (next, context) {\n return function (args) {\n return __awaiter(void 0, void 0, void 0, function () {\n var retryStrategy;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , options.retryStrategy()];\n\n case 1:\n retryStrategy = _a.sent();\n if (retryStrategy === null || retryStrategy === void 0 ? void 0 : retryStrategy.mode) context.userAgent = __spreadArray(__spreadArray([], __read(context.userAgent || [])), [[\"cfg/retry-mode\", retryStrategy.mode]]);\n return [2\n /*return*/\n , retryStrategy.retry(next, args)];\n }\n });\n });\n };\n };\n};\nexport var retryMiddlewareOptions = {\n name: \"retryMiddleware\",\n tags: [\"RETRY\"],\n step: \"finalizeRequest\",\n priority: \"high\",\n override: true\n};\nexport var getRetryPlugin = function getRetryPlugin(options) {\n return {\n applyToStack: function applyToStack(clientStack) {\n clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\n }\n };\n};","/**\n * Errors encountered when the client clock and server clock cannot agree on the\n * current time.\n *\n * These errors are retryable, assuming the SDK has enabled clock skew\n * correction.\n */\nexport var CLOCK_SKEW_ERROR_CODES = [\"AuthFailure\", \"InvalidSignatureException\", \"RequestExpired\", \"RequestInTheFuture\", \"RequestTimeTooSkewed\", \"SignatureDoesNotMatch\"];\n/**\n * Errors that indicate the SDK is being throttled.\n *\n * These errors are always retryable.\n */\n\nexport var THROTTLING_ERROR_CODES = [\"BandwidthLimitExceeded\", \"EC2ThrottledException\", \"LimitExceededException\", \"PriorRequestNotComplete\", \"ProvisionedThroughputExceededException\", \"RequestLimitExceeded\", \"RequestThrottled\", \"RequestThrottledException\", \"SlowDown\", \"ThrottledException\", \"Throttling\", \"ThrottlingException\", \"TooManyRequestsException\", \"TransactionInProgressException\" // DynamoDB\n];\n/**\n * Error codes that indicate transient issues\n */\n\nexport var TRANSIENT_ERROR_CODES = [\"AbortError\", \"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\n/**\n * Error codes that indicate transient issues\n */\n\nexport var TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];","import { CLOCK_SKEW_ERROR_CODES, THROTTLING_ERROR_CODES, TRANSIENT_ERROR_CODES, TRANSIENT_ERROR_STATUS_CODES } from \"./constants\";\nexport var isRetryableByTrait = function isRetryableByTrait(error) {\n return error.$retryable !== undefined;\n};\nexport var isClockSkewError = function isClockSkewError(error) {\n return CLOCK_SKEW_ERROR_CODES.includes(error.name);\n};\nexport var isThrottlingError = function isThrottlingError(error) {\n var _a, _b;\n\n return ((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) === 429 || THROTTLING_ERROR_CODES.includes(error.name) || ((_b = error.$retryable) === null || _b === void 0 ? void 0 : _b.throttling) == true;\n};\nexport var isTransientError = function isTransientError(error) {\n var _a;\n\n return TRANSIENT_ERROR_CODES.includes(error.name) || TRANSIENT_ERROR_STATUS_CODES.includes(((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) || 0);\n};","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","export var RETRY_MODES;\n\n(function (RETRY_MODES) {\n RETRY_MODES[\"STANDARD\"] = \"standard\";\n RETRY_MODES[\"ADAPTIVE\"] = \"adaptive\";\n})(RETRY_MODES || (RETRY_MODES = {}));\n/**\n * The default value for how many HTTP requests an SDK should make for a\n * single SDK operation invocation before giving up\n */\n\n\nexport var DEFAULT_MAX_ATTEMPTS = 3;\n/**\n * The default retry algorithm to use.\n */\n\nexport var DEFAULT_RETRY_MODE = RETRY_MODES.STANDARD;","import { MAXIMUM_RETRY_DELAY } from \"./constants\";\n/**\n * Calculate a capped, fully-jittered exponential backoff time.\n */\n\nexport var defaultDelayDecider = function defaultDelayDecider(delayBase, attempts) {\n return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * Math.pow(2, attempts) * delayBase));\n};","/**\n * The base number of milliseconds to use in calculating a suitable cool-down\n * time when a retryable error is encountered.\n */\nexport var DEFAULT_RETRY_DELAY_BASE = 100;\n/**\n * The maximum amount of time (in milliseconds) that will be used as a delay\n * between retry attempts.\n */\n\nexport var MAXIMUM_RETRY_DELAY = 20 * 1000;\n/**\n * The retry delay base (in milliseconds) to use when a throttling error is\n * encountered.\n */\n\nexport var THROTTLING_RETRY_DELAY_BASE = 500;\n/**\n * Initial number of retry tokens in Retry Quota\n */\n\nexport var INITIAL_RETRY_TOKENS = 500;\n/**\n * The total amount of retry tokens to be decremented from retry token balance.\n */\n\nexport var RETRY_COST = 5;\n/**\n * The total amount of retry tokens to be decremented from retry token balance\n * when a throttling error is encountered.\n */\n\nexport var TIMEOUT_RETRY_COST = 10;\n/**\n * The total amount of retry token to be incremented from retry token balance\n * if an SDK operation invocation succeeds without requiring a retry request.\n */\n\nexport var NO_RETRY_INCREMENT = 1;\n/**\n * Header name for SDK invocation ID\n */\n\nexport var INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\n/**\n * Header name for request retry information.\n */\n\nexport var REQUEST_HEADER = \"amz-sdk-request\";","import { isClockSkewError, isRetryableByTrait, isThrottlingError, isTransientError } from \"@aws-sdk/service-error-classification\";\nexport var defaultRetryDecider = function defaultRetryDecider(error) {\n if (!error) {\n return false;\n }\n\n return isRetryableByTrait(error) || isClockSkewError(error) || isThrottlingError(error) || isTransientError(error);\n};","import { __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { isThrottlingError } from \"@aws-sdk/service-error-classification\";\nimport { v4 } from \"uuid\";\nimport { DEFAULT_MAX_ATTEMPTS, RETRY_MODES } from \"./config\";\nimport { DEFAULT_RETRY_DELAY_BASE, INITIAL_RETRY_TOKENS, INVOCATION_ID_HEADER, REQUEST_HEADER, THROTTLING_RETRY_DELAY_BASE } from \"./constants\";\nimport { getDefaultRetryQuota } from \"./defaultRetryQuota\";\nimport { defaultDelayDecider } from \"./delayDecider\";\nimport { defaultRetryDecider } from \"./retryDecider\";\n\nvar StandardRetryStrategy =\n/** @class */\nfunction () {\n function StandardRetryStrategy(maxAttemptsProvider, options) {\n var _a, _b, _c;\n\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.mode = RETRY_MODES.STANDARD;\n this.retryDecider = (_a = options === null || options === void 0 ? void 0 : options.retryDecider) !== null && _a !== void 0 ? _a : defaultRetryDecider;\n this.delayDecider = (_b = options === null || options === void 0 ? void 0 : options.delayDecider) !== null && _b !== void 0 ? _b : defaultDelayDecider;\n this.retryQuota = (_c = options === null || options === void 0 ? void 0 : options.retryQuota) !== null && _c !== void 0 ? _c : getDefaultRetryQuota(INITIAL_RETRY_TOKENS);\n }\n\n StandardRetryStrategy.prototype.shouldRetry = function (error, attempts, maxAttempts) {\n return attempts < maxAttempts && this.retryDecider(error) && this.retryQuota.hasRetryTokens(error);\n };\n\n StandardRetryStrategy.prototype.getMaxAttempts = function () {\n return __awaiter(this, void 0, void 0, function () {\n var maxAttempts, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2,, 3]);\n\n return [4\n /*yield*/\n , this.maxAttemptsProvider()];\n\n case 1:\n maxAttempts = _a.sent();\n return [3\n /*break*/\n , 3];\n\n case 2:\n error_1 = _a.sent();\n maxAttempts = DEFAULT_MAX_ATTEMPTS;\n return [3\n /*break*/\n , 3];\n\n case 3:\n return [2\n /*return*/\n , maxAttempts];\n }\n });\n });\n };\n\n StandardRetryStrategy.prototype.retry = function (next, args, options) {\n return __awaiter(this, void 0, void 0, function () {\n var retryTokenAmount, attempts, totalDelay, maxAttempts, request, _loop_1, this_1, state_1;\n\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n attempts = 0;\n totalDelay = 0;\n return [4\n /*yield*/\n , this.getMaxAttempts()];\n\n case 1:\n maxAttempts = _a.sent();\n request = args.request;\n\n if (HttpRequest.isInstance(request)) {\n request.headers[INVOCATION_ID_HEADER] = v4();\n }\n\n _loop_1 = function _loop_1() {\n var _b, response, output, e_1, err, delay_1;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 4,, 7]);\n\n if (HttpRequest.isInstance(request)) {\n request.headers[REQUEST_HEADER] = \"attempt=\" + (attempts + 1) + \"; max=\" + maxAttempts;\n }\n\n if (!(options === null || options === void 0 ? void 0 : options.beforeRequest)) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , options.beforeRequest()];\n\n case 1:\n _c.sent();\n\n _c.label = 2;\n\n case 2:\n return [4\n /*yield*/\n , next(args)];\n\n case 3:\n _b = _c.sent(), response = _b.response, output = _b.output;\n\n if (options === null || options === void 0 ? void 0 : options.afterRequest) {\n options.afterRequest(response);\n }\n\n this_1.retryQuota.releaseRetryTokens(retryTokenAmount);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalDelay;\n return [2\n /*return*/\n , {\n value: {\n response: response,\n output: output\n }\n }];\n\n case 4:\n e_1 = _c.sent();\n err = asSdkError(e_1);\n attempts++;\n if (!this_1.shouldRetry(err, attempts, maxAttempts)) return [3\n /*break*/\n , 6];\n retryTokenAmount = this_1.retryQuota.retrieveRetryTokens(err);\n delay_1 = this_1.delayDecider(isThrottlingError(err) ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE, attempts);\n totalDelay += delay_1;\n return [4\n /*yield*/\n , new Promise(function (resolve) {\n return setTimeout(resolve, delay_1);\n })];\n\n case 5:\n _c.sent();\n\n return [2\n /*return*/\n , \"continue\"];\n\n case 6:\n if (!err.$metadata) {\n err.$metadata = {};\n }\n\n err.$metadata.attempts = attempts;\n err.$metadata.totalRetryDelay = totalDelay;\n throw err;\n\n case 7:\n return [2\n /*return*/\n ];\n }\n });\n };\n\n this_1 = this;\n _a.label = 2;\n\n case 2:\n if (!true) return [3\n /*break*/\n , 4];\n return [5\n /*yield**/\n , _loop_1()];\n\n case 3:\n state_1 = _a.sent();\n if (typeof state_1 === \"object\") return [2\n /*return*/\n , state_1.value];\n return [3\n /*break*/\n , 2];\n\n case 4:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n return StandardRetryStrategy;\n}();\n\nexport { StandardRetryStrategy };\n\nvar asSdkError = function asSdkError(error) {\n if (error instanceof Error) return error;\n if (error instanceof Object) return Object.assign(new Error(), error);\n if (typeof error === \"string\") return new Error(error);\n return new Error(\"AWS SDK error wrapper for \" + error);\n};","import { NO_RETRY_INCREMENT, RETRY_COST, TIMEOUT_RETRY_COST } from \"./constants\";\nexport var getDefaultRetryQuota = function getDefaultRetryQuota(initialRetryTokens, options) {\n var _a, _b, _c;\n\n var MAX_CAPACITY = initialRetryTokens;\n var noRetryIncrement = (_a = options === null || options === void 0 ? void 0 : options.noRetryIncrement) !== null && _a !== void 0 ? _a : NO_RETRY_INCREMENT;\n var retryCost = (_b = options === null || options === void 0 ? void 0 : options.retryCost) !== null && _b !== void 0 ? _b : RETRY_COST;\n var timeoutRetryCost = (_c = options === null || options === void 0 ? void 0 : options.timeoutRetryCost) !== null && _c !== void 0 ? _c : TIMEOUT_RETRY_COST;\n var availableCapacity = initialRetryTokens;\n\n var getCapacityAmount = function getCapacityAmount(error) {\n return error.name === \"TimeoutError\" ? timeoutRetryCost : retryCost;\n };\n\n var hasRetryTokens = function hasRetryTokens(error) {\n return getCapacityAmount(error) <= availableCapacity;\n };\n\n var retrieveRetryTokens = function retrieveRetryTokens(error) {\n if (!hasRetryTokens(error)) {\n // retryStrategy should stop retrying, and return last error\n throw new Error(\"No retry token available\");\n }\n\n var capacityAmount = getCapacityAmount(error);\n availableCapacity -= capacityAmount;\n return capacityAmount;\n };\n\n var releaseRetryTokens = function releaseRetryTokens(capacityReleaseAmount) {\n availableCapacity += capacityReleaseAmount !== null && capacityReleaseAmount !== void 0 ? capacityReleaseAmount : noRetryIncrement;\n availableCapacity = Math.min(availableCapacity, MAX_CAPACITY);\n };\n\n return Object.freeze({\n hasRetryTokens: hasRetryTokens,\n retrieveRetryTokens: retrieveRetryTokens,\n releaseRetryTokens: releaseRetryTokens\n });\n};","import { __awaiter, __generator } from \"tslib\";\nimport { isThrottlingError } from \"@aws-sdk/service-error-classification\";\n\nvar DefaultRateLimiter =\n/** @class */\nfunction () {\n function DefaultRateLimiter(options) {\n var _a, _b, _c, _d, _e; // Pre-set state variables\n\n\n this.currentCapacity = 0;\n this.enabled = false;\n this.lastMaxRate = 0;\n this.measuredTxRate = 0;\n this.requestCount = 0;\n this.lastTimestamp = 0;\n this.timeWindow = 0;\n this.beta = (_a = options === null || options === void 0 ? void 0 : options.beta) !== null && _a !== void 0 ? _a : 0.7;\n this.minCapacity = (_b = options === null || options === void 0 ? void 0 : options.minCapacity) !== null && _b !== void 0 ? _b : 1;\n this.minFillRate = (_c = options === null || options === void 0 ? void 0 : options.minFillRate) !== null && _c !== void 0 ? _c : 0.5;\n this.scaleConstant = (_d = options === null || options === void 0 ? void 0 : options.scaleConstant) !== null && _d !== void 0 ? _d : 0.4;\n this.smooth = (_e = options === null || options === void 0 ? void 0 : options.smooth) !== null && _e !== void 0 ? _e : 0.8;\n var currentTimeInSeconds = this.getCurrentTimeInSeconds();\n this.lastThrottleTime = currentTimeInSeconds;\n this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds());\n this.fillRate = this.minFillRate;\n this.maxCapacity = this.minCapacity;\n }\n\n DefaultRateLimiter.prototype.getCurrentTimeInSeconds = function () {\n return Date.now() / 1000;\n };\n\n DefaultRateLimiter.prototype.getSendToken = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2\n /*return*/\n , this.acquireTokenBucket(1)];\n });\n });\n };\n\n DefaultRateLimiter.prototype.acquireTokenBucket = function (amount) {\n return __awaiter(this, void 0, void 0, function () {\n var delay_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // Client side throttling is not enabled until we see a throttling error.\n if (!this.enabled) {\n return [2\n /*return*/\n ];\n }\n\n this.refillTokenBucket();\n if (!(amount > this.currentCapacity)) return [3\n /*break*/\n , 2];\n delay_1 = (amount - this.currentCapacity) / this.fillRate * 1000;\n return [4\n /*yield*/\n , new Promise(function (resolve) {\n return setTimeout(resolve, delay_1);\n })];\n\n case 1:\n _a.sent();\n\n _a.label = 2;\n\n case 2:\n this.currentCapacity = this.currentCapacity - amount;\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n DefaultRateLimiter.prototype.refillTokenBucket = function () {\n var timestamp = this.getCurrentTimeInSeconds();\n\n if (!this.lastTimestamp) {\n this.lastTimestamp = timestamp;\n return;\n }\n\n var fillAmount = (timestamp - this.lastTimestamp) * this.fillRate;\n this.currentCapacity = Math.min(this.maxCapacity, this.currentCapacity + fillAmount);\n this.lastTimestamp = timestamp;\n };\n\n DefaultRateLimiter.prototype.updateClientSendingRate = function (response) {\n var calculatedRate;\n this.updateMeasuredRate();\n\n if (isThrottlingError(response)) {\n var rateToUse = !this.enabled ? this.measuredTxRate : Math.min(this.measuredTxRate, this.fillRate);\n this.lastMaxRate = rateToUse;\n this.calculateTimeWindow();\n this.lastThrottleTime = this.getCurrentTimeInSeconds();\n calculatedRate = this.cubicThrottle(rateToUse);\n this.enableTokenBucket();\n } else {\n this.calculateTimeWindow();\n calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds());\n }\n\n var newRate = Math.min(calculatedRate, 2 * this.measuredTxRate);\n this.updateTokenBucketRate(newRate);\n };\n\n DefaultRateLimiter.prototype.calculateTimeWindow = function () {\n this.timeWindow = this.getPrecise(Math.pow(this.lastMaxRate * (1 - this.beta) / this.scaleConstant, 1 / 3));\n };\n\n DefaultRateLimiter.prototype.cubicThrottle = function (rateToUse) {\n return this.getPrecise(rateToUse * this.beta);\n };\n\n DefaultRateLimiter.prototype.cubicSuccess = function (timestamp) {\n return this.getPrecise(this.scaleConstant * Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate);\n };\n\n DefaultRateLimiter.prototype.enableTokenBucket = function () {\n this.enabled = true;\n };\n\n DefaultRateLimiter.prototype.updateTokenBucketRate = function (newRate) {\n // Refill based on our current rate before we update to the new fill rate.\n this.refillTokenBucket();\n this.fillRate = Math.max(newRate, this.minFillRate);\n this.maxCapacity = Math.max(newRate, this.minCapacity); // When we scale down we can't have a current capacity that exceeds our maxCapacity.\n\n this.currentCapacity = Math.min(this.currentCapacity, this.maxCapacity);\n };\n\n DefaultRateLimiter.prototype.updateMeasuredRate = function () {\n var t = this.getCurrentTimeInSeconds();\n var timeBucket = Math.floor(t * 2) / 2;\n this.requestCount++;\n\n if (timeBucket > this.lastTxRateBucket) {\n var currentRate = this.requestCount / (timeBucket - this.lastTxRateBucket);\n this.measuredTxRate = this.getPrecise(currentRate * this.smooth + this.measuredTxRate * (1 - this.smooth));\n this.requestCount = 0;\n this.lastTxRateBucket = timeBucket;\n }\n };\n\n DefaultRateLimiter.prototype.getPrecise = function (num) {\n return parseFloat(num.toFixed(8));\n };\n\n return DefaultRateLimiter;\n}();\n\nexport { DefaultRateLimiter };","import { __awaiter, __extends, __generator, __rest } from \"tslib\";\nimport { RETRY_MODES } from \"./config\";\nimport { DefaultRateLimiter } from \"./DefaultRateLimiter\";\nimport { StandardRetryStrategy } from \"./StandardRetryStrategy\";\n\nvar AdaptiveRetryStrategy =\n/** @class */\nfunction (_super) {\n __extends(AdaptiveRetryStrategy, _super);\n\n function AdaptiveRetryStrategy(maxAttemptsProvider, options) {\n var _this = this;\n\n var _a = options !== null && options !== void 0 ? options : {},\n rateLimiter = _a.rateLimiter,\n superOptions = __rest(_a, [\"rateLimiter\"]);\n\n _this = _super.call(this, maxAttemptsProvider, superOptions) || this;\n _this.rateLimiter = rateLimiter !== null && rateLimiter !== void 0 ? rateLimiter : new DefaultRateLimiter();\n _this.mode = RETRY_MODES.ADAPTIVE;\n return _this;\n }\n\n AdaptiveRetryStrategy.prototype.retry = function (next, args) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n\n return __generator(this, function (_a) {\n return [2\n /*return*/\n , _super.prototype.retry.call(this, next, args, {\n beforeRequest: function beforeRequest() {\n return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2\n /*return*/\n , this.rateLimiter.getSendToken()];\n });\n });\n },\n afterRequest: function afterRequest(response) {\n _this.rateLimiter.updateClientSendingRate(response);\n }\n })];\n });\n });\n };\n\n return AdaptiveRetryStrategy;\n}(StandardRetryStrategy);\n\nexport { AdaptiveRetryStrategy };","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { AdaptiveRetryStrategy } from \"./AdaptiveRetryStrategy\";\nimport { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE, RETRY_MODES } from \"./config\";\nimport { StandardRetryStrategy } from \"./StandardRetryStrategy\";\nexport var ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nexport var CONFIG_MAX_ATTEMPTS = \"max_attempts\";\nexport var NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {\n environmentVariableSelector: function environmentVariableSelector(env) {\n var value = env[ENV_MAX_ATTEMPTS];\n if (!value) return undefined;\n var maxAttempt = parseInt(value);\n\n if (Number.isNaN(maxAttempt)) {\n throw new Error(\"Environment variable \" + ENV_MAX_ATTEMPTS + \" mast be a number, got \\\"\" + value + \"\\\"\");\n }\n\n return maxAttempt;\n },\n configFileSelector: function configFileSelector(profile) {\n var value = profile[CONFIG_MAX_ATTEMPTS];\n if (!value) return undefined;\n var maxAttempt = parseInt(value);\n\n if (Number.isNaN(maxAttempt)) {\n throw new Error(\"Shared config file entry \" + CONFIG_MAX_ATTEMPTS + \" mast be a number, got \\\"\" + value + \"\\\"\");\n }\n\n return maxAttempt;\n },\n default: DEFAULT_MAX_ATTEMPTS\n};\nexport var resolveRetryConfig = function resolveRetryConfig(input) {\n var maxAttempts = normalizeMaxAttempts(input.maxAttempts);\n return __assign(__assign({}, input), {\n maxAttempts: maxAttempts,\n retryStrategy: function retryStrategy() {\n return __awaiter(void 0, void 0, void 0, function () {\n var retryMode, _a;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (input.retryStrategy) {\n return [2\n /*return*/\n , input.retryStrategy];\n }\n\n _a = input.retryMode;\n if (_a) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , input.retryModeProvider()];\n\n case 1:\n _a = _b.sent();\n _b.label = 2;\n\n case 2:\n retryMode = _a;\n\n if (retryMode === RETRY_MODES.ADAPTIVE) {\n return [2\n /*return*/\n , new AdaptiveRetryStrategy(maxAttempts)];\n }\n\n return [2\n /*return*/\n , new StandardRetryStrategy(maxAttempts)];\n }\n });\n });\n }\n });\n};\n\nvar normalizeMaxAttempts = function normalizeMaxAttempts(maxAttempts) {\n if (maxAttempts === void 0) {\n maxAttempts = DEFAULT_MAX_ATTEMPTS;\n }\n\n if (typeof maxAttempts === \"number\") {\n var promisified_1 = Promise.resolve(maxAttempts);\n return function () {\n return promisified_1;\n };\n }\n\n return maxAttempts;\n};\n\nexport var ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nexport var CONFIG_RETRY_MODE = \"retry_mode\";\nexport var NODE_RETRY_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: function environmentVariableSelector(env) {\n return env[ENV_RETRY_MODE];\n },\n configFileSelector: function configFileSelector(profile) {\n return profile[CONFIG_RETRY_MODE];\n },\n default: DEFAULT_RETRY_MODE\n};","export * from \"./retryMiddleware\";\nexport * from \"./omitRetryHeadersMiddleware\";\nexport * from \"./StandardRetryStrategy\";\nexport * from \"./AdaptiveRetryStrategy\";\nexport * from \"./config\";\nexport * from \"./configurations\";\nexport * from \"./delayDecider\";\nexport * from \"./DefaultRateLimiter\";\nexport * from \"./retryDecider\";\nexport * from \"./types\";","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};","var has = require('../internals/has');\n\nvar toObject = require('../internals/to-object');\n\nvar sharedKey = require('../internals/shared-key');\n\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype; // `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\n\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n }\n\n return O instanceof Object ? ObjectPrototype : null;\n};","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\nmodule.exports = isArray;","var freeGlobal = require('./_freeGlobal');\n/** Detect free variable `self`. */\n\n\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\nmodule.exports = root;","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\nmodule.exports = isArray;","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport var fromUtf8 = function fromUtf8(input) {\n return typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\n};\nexport var toUtf8 = function toUtf8(input) {\n return typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n};","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}","/**\n * Converts a JS string from its native UCS-2/UTF-16 representation into a\n * Uint8Array of the bytes used to represent the equivalent characters in UTF-8.\n *\n * Cribbed from the `goog.crypt.stringToUtf8ByteArray` function in the Google\n * Closure library, though updated to use typed arrays.\n */\nexport var fromUtf8 = function fromUtf8(input) {\n var bytes = [];\n\n for (var i = 0, len = input.length; i < len; i++) {\n var value = input.charCodeAt(i);\n\n if (value < 0x80) {\n bytes.push(value);\n } else if (value < 0x800) {\n bytes.push(value >> 6 | 192, value & 63 | 128);\n } else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n var surrogatePair = 0x10000 + ((value & 1023) << 10) + (input.charCodeAt(++i) & 1023);\n bytes.push(surrogatePair >> 18 | 240, surrogatePair >> 12 & 63 | 128, surrogatePair >> 6 & 63 | 128, surrogatePair & 63 | 128);\n } else {\n bytes.push(value >> 12 | 224, value >> 6 & 63 | 128, value & 63 | 128);\n }\n }\n\n return Uint8Array.from(bytes);\n};\n/**\n * Converts a typed array of bytes containing UTF-8 data into a native JS\n * string.\n *\n * Partly cribbed from the `goog.crypt.utf8ByteArrayToString` function in the\n * Google Closure library, though updated to use typed arrays and to better\n * handle astral plane code points.\n */\n\nexport var toUtf8 = function toUtf8(input) {\n var decoded = \"\";\n\n for (var i = 0, len = input.length; i < len; i++) {\n var byte = input[i];\n\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n } else if (192 <= byte && byte < 224) {\n var nextByte = input[++i];\n decoded += String.fromCharCode((byte & 31) << 6 | nextByte & 63);\n } else if (240 <= byte && byte < 365) {\n var surrogatePair = [byte, input[++i], input[++i], input[++i]];\n var encoded = \"%\" + surrogatePair.map(function (byteValue) {\n return byteValue.toString(16);\n }).join(\"%\");\n decoded += decodeURIComponent(encoded);\n } else {\n decoded += String.fromCharCode((byte & 15) << 12 | (input[++i] & 63) << 6 | input[++i] & 63);\n }\n }\n\n return decoded;\n};","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n */\nexport var IconSvgPaths16 = {\n \"add\": [\"M10.99 6.99h-2v-2c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1zm-3-7c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.68 6-6 6z\"],\n \"add-column-left\": [\"M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-5 14H2V2h8v12zm4 0h-3V2h3v12zM4 9h1v1c0 .55.45 1 1 1s1-.45 1-1V9h1c.55 0 1-.45 1-1s-.45-1-1-1H7V6c0-.55-.45-1-1-1s-1 .45-1 1v1H4c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"add-column-right\": [\"M8 9h1v1c0 .55.45 1 1 1s1-.45 1-1V9h1c.55 0 1-.45 1-1s-.45-1-1-1h-1V6c0-.55-.45-1-1-1s-1 .45-1 1v1H8c-.55 0-1 .45-1 1s.45 1 1 1zm7-9H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM5 14H2V2h3v12zm9 0H6V2h8v12z\"],\n \"add-row-bottom\": [\"M6 11h1v1c0 .55.45 1 1 1s1-.45 1-1v-1h1c.55 0 1-.45 1-1s-.45-1-1-1H9V8c0-.55-.45-1-1-1s-1 .45-1 1v1H6c-.55 0-1 .45-1 1s.45 1 1 1zm9-11H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2V6h12v8zm0-9H2V2h12v3z\"],\n \"add-row-top\": [\"M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2v-3h12v3zm0-4H2V2h12v8zM6 7h1v1c0 .55.45 1 1 1s1-.45 1-1V7h1c.55 0 1-.45 1-1s-.45-1-1-1H9V4c0-.55-.45-1-1-1s-1 .45-1 1v1H6c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"add-to-artifact\": [\"M14 4.01h-1v-1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1v-1h1c.55 0 1-.45 1-1 0-.56-.45-1-1-1zm-13 2h6c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm8 6H1c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1 0-.56-.45-1-1-1zm0-4H1c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1 0-.56-.45-1-1-1z\"],\n \"add-to-folder\": [\"M.01 7V5H16v7c0 .55-.45 1-1 1H9.005v-2.99C8.974 8.332 7.644 7 5.996 7H.01zM15 2H7.416L5.706.29a.996.996 0 00-.71-.29H1C.45 0 0 .45 0 1v3h15.99V3c.01-.55-.44-1-.99-1zM5.997 9H2c-.55 0-1 .45-1 1s.45 1 1 1h1.589L.3 14.29a1.003 1.003 0 001.42 1.42l3.287-3.29v1.59c0 .55.45 1 1 1 .549 0 .999-.45.999-1v-4A1.02 1.02 0 005.996 9z\"],\n \"airplane\": [\"M16 1.5A1.498 1.498 0 0013.44.44L9.91 3.97 2 1 1 3l5.93 3.95L3.88 10H1l-1 1 3 2 2 3 1-1v-2.88l3.05-3.05L13 15l2-1-2.97-7.91 3.53-3.53c.27-.27.44-.65.44-1.06z\"],\n \"align-center\": [\"M4 4c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1H4zM1 3h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm13 10H2c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zm1-6H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm-5 5c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1h4z\"],\n \"align-justify\": [\"M15 12.98H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm-14-10h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1 0 .56.45 1 1 1zm14 4H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm0-3H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm0 6H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"align-left\": [\"M13 13H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zM1 3h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm0 3h8c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 1H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM1 12h4c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"align-right\": [\"M15 12.98H3c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zm-14-10h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1 0 .56.45 1 1 1zm14 1H7c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zm0 6h-4c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1zm0-3H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"alignment-bottom\": [\"M10 12h3c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm5 2H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM3 12h3c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1z\"],\n \"alignment-horizontal-center\": [\"M15 7h-1V6c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v1H7V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v4H1c-.55 0-1 .45-1 1s.45 1 1 1h1v4c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V9h2v1c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V9h1c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"alignment-left\": [\"M9 9H5c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zM1 0C.45 0 0 .45 0 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm13 2H5c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z\"],\n \"alignment-right\": [\"M11 9H7c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm4-9c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm-4 2H2c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z\"],\n \"alignment-top\": [\"M15 0H1C.45 0 0 .45 0 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM6 4H3c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm7 0h-3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1z\"],\n \"alignment-vertical-center\": [\"M13 2H9V1c0-.55-.45-1-1-1S7 .45 7 1v1H3c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4v2H6c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1v-1h1c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1H9V7h4c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z\"],\n \"annotation\": [\"M15.52 2.77c.3-.29.48-.7.48-1.15C16 .73 15.27 0 14.38 0c-.45 0-.85.18-1.15.48l-1.34 1.34 2.3 2.3 1.33-1.35zM7.4 10.9l6.21-6.21-2.3-2.3L5.1 8.6l2.3 2.3zM14 14H2V2h6.34l2-2H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V5.66l-2 2V14zM3 13l3.58-1.29-2.29-2.27L3 13z\"],\n \"app-header\": [\"M15 0a1 1 0 011 1v14a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1h14zM6 4a1 1 0 00-1.993-.117L4 4v8a1 1 0 001.993.117L6 12V9h4v3a1 1 0 001.993.117L12 12V4a1 1 0 00-1.993-.117L10 4v3H6V4z\"],\n \"application\": [\"M3.5 7h7c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-7c-.28 0-.5.22-.5.5s.22.5.5.5zM15 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm-1 12H2V5h12v8zM3.5 9h4c.28 0 .5-.22.5-.5S7.78 8 7.5 8h-4c-.28 0-.5.22-.5.5s.22.5.5.5zm0 2h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-5c-.28 0-.5.22-.5.5s.22.5.5.5z\"],\n \"applications\": [\"M3.5 11h2c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2c-.28 0-.5.22-.5.5s.22.5.5.5zm0-2h5c.28 0 .5-.22.5-.5S8.78 8 8.5 8h-5c-.28 0-.5.22-.5.5s.22.5.5.5zM11 4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 10H2V7h8v7zm5-14H5c-.55 0-1 .45-1 1v2h2V2h8v7h-1v2h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM3.5 13h3c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-3c-.28 0-.5.22-.5.5s.22.5.5.5z\"],\n \"archive\": [\"M13.382 0a1 1 0 01.894.553L16 4v11a1 1 0 01-1 1H1a1 1 0 01-1-1V4L1.724.553A1 1 0 012.618 0h10.764zM8 6c-.55 0-1 .45-1 1v2.59l-.29-.29-.081-.076A.97.97 0 006 9a1.003 1.003 0 00-.71 1.71l2 2 .096.084c.168.13.38.206.614.206.28 0 .53-.11.71-.29l2-2 .084-.096A1.003 1.003 0 009.29 9.29l-.29.3V7l-.007-.116A1.004 1.004 0 008 6zm5-4H3L2 4h12l-1-2z\"],\n \"arrow-bottom-left\": [\"M14 3a1.003 1.003 0 00-1.71-.71L4 10.59V6c0-.55-.45-1-1-1s-1 .45-1 1v7c0 .55.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1H5.41l8.29-8.29c.19-.18.3-.43.3-.71z\"],\n \"arrow-bottom-right\": [\"M13 5c-.55 0-1 .45-1 1v4.59l-8.29-8.3a1.003 1.003 0 00-1.42 1.42l8.3 8.29H6c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z\"],\n \"arrow-down\": [\"M13 8c-.3 0-.5.1-.7.3L9 11.6V2c0-.5-.4-1-1-1s-1 .5-1 1v9.6L3.7 8.3C3.5 8.1 3.3 8 3 8c-.5 0-1 .5-1 1 0 .3.1.5.3.7l5 5c.2.2.4.3.7.3s.5-.1.7-.3l5-5c.2-.2.3-.4.3-.7 0-.6-.4-1-1-1z\"],\n \"arrow-left\": [\"M13.99 6.99H4.41L7.7 3.7a1.003 1.003 0 00-1.42-1.42l-5 5a1.014 1.014 0 000 1.42l5 5a1.003 1.003 0 001.42-1.42L4.41 8.99H14c.55 0 1-.45 1-1s-.46-1-1.01-1z\"],\n \"arrow-right\": [\"M14.7 7.29l-5-5a.965.965 0 00-.71-.3 1.003 1.003 0 00-.71 1.71l3.29 3.29H1.99c-.55 0-1 .45-1 1s.45 1 1 1h9.59l-3.29 3.29a1.003 1.003 0 001.42 1.42l5-5c.18-.18.29-.43.29-.71s-.12-.52-.3-.7z\"],\n \"arrow-top-left\": [\"M13.71 12.29L5.41 4H10c.55 0 1-.45 1-1s-.45-1-1-1H3c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1s1-.45 1-1V5.41l8.29 8.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z\"],\n \"arrow-top-right\": [\"M13 2H6c-.55 0-1 .45-1 1s.45 1 1 1h4.59L2.3 12.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L12 5.41V10c0 .55.45 1 1 1s1-.45 1-1V3c0-.55-.45-1-1-1z\"],\n \"arrow-up\": [\"M13.7 6.3l-5-5C8.5 1.1 8.3 1 8 1s-.5.1-.7.3l-5 5c-.2.2-.3.4-.3.7 0 .6.5 1 1 1 .3 0 .5-.1.7-.3L7 4.4V14c0 .6.4 1 1 1s1-.4 1-1V4.4l3.3 3.3c.2.2.4.3.7.3.6 0 1-.4 1-1 0-.3-.1-.5-.3-.7z\"],\n \"arrows-horizontal\": [\"M15.7 7.3l-4-4c-.2-.2-.4-.3-.7-.3-.6 0-1 .5-1 1 0 .3.1.5.3.7L12.6 7H3.4l2.3-2.3c.2-.2.3-.4.3-.7 0-.5-.4-1-1-1-.3 0-.5.1-.7.3l-4 4c-.2.2-.3.4-.3.7s.1.5.3.7l4 4c.2.2.4.3.7.3.6 0 1-.4 1-1 0-.3-.1-.5-.3-.7L3.4 9h9.2l-2.3 2.3c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3l4-4c.2-.2.3-.4.3-.7s-.1-.5-.3-.7z\"],\n \"arrows-vertical\": [\"M12 10c-.3 0-.5.1-.7.3L9 12.6V3.4l2.3 2.3c.2.2.4.3.7.3.6 0 1-.4 1-1 0-.3-.1-.5-.3-.7l-4-4C8.5.1 8.3 0 8 0s-.5.1-.7.3l-4 4c-.2.2-.3.4-.3.7 0 .6.5 1 1 1 .3 0 .5-.1.7-.3L7 3.4v9.2l-2.3-2.3c-.2-.2-.4-.3-.7-.3-.5 0-1 .4-1 1 0 .3.1.5.3.7l4 4c.2.2.4.3.7.3s.5-.1.7-.3l4-4c.2-.2.3-.4.3-.7 0-.6-.4-1-1-1z\"],\n \"asterisk\": [\"M14.54 11.18l.01-.02L9.8 8l4.75-3.17-.01-.02c.27-.17.46-.46.46-.81 0-.55-.45-1-1-1-.21 0-.39.08-.54.18l-.01-.02L9 6.13V1c0-.55-.45-1-1-1S7 .45 7 1v5.13L2.55 3.17l-.01.01A.969.969 0 002 3c-.55 0-1 .45-1 1 0 .35.19.64.46.82l-.01.01L6.2 8l-4.75 3.17.01.02c-.27.17-.46.46-.46.81 0 .55.45 1 1 1 .21 0 .39-.08.54-.18l.01.02L7 9.87V15c0 .55.45 1 1 1s1-.45 1-1V9.87l4.45 2.96.01-.02c.15.11.33.19.54.19.55 0 1-.45 1-1 0-.35-.19-.64-.46-.82z\"],\n \"automatic-updates\": [\"M8 14c-3.31 0-6-2.69-6-6 0-1.77.78-3.36 2-4.46V5c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1s.45 1 1 1h1.74A7.95 7.95 0 000 8c0 4.42 3.58 8 8 8 .55 0 1-.45 1-1s-.45-1-1-1zM8 2a5.9 5.9 0 012.95.81l1.47-1.47A7.893 7.893 0 008 0c-.55 0-1 .45-1 1s.45 1 1 1zm2.71 6.71l5-5a1.003 1.003 0 00-1.42-1.42L10 6.59l-1.29-1.3a1.003 1.003 0 00-1.42 1.42l2 2c.18.18.43.29.71.29s.53-.11.71-.29zM16 8c0-.55-.06-1.08-.16-1.6l-1.87 1.87A5.966 5.966 0 0112 12.45V11c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1h-1.74A7.95 7.95 0 0016 8z\"],\n \"badge\": [\"M13.36 4.59c-.15-1.13.5-2.01 1.1-2.87L13.43.53c-1.72.88-4.12.65-5.63-.53-1.51 1.18-3.91 1.41-5.63.52l-1.03 1.2c.61.86 1.25 1.74 1.1 2.87-.3 2.29-2.45 4.17-1.32 6.68.45 1.14 1.44 1.9 2.72 2.2 1.56.36 3.52.72 4.16 2.53.64-1.81 2.6-2.16 4.16-2.54 1.28-.3 2.27-1.06 2.72-2.2 1.12-2.5-1.03-4.38-1.32-6.67z\"],\n \"ban-circle\": [\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm3 9H5c-.55 0-1-.45-1-1s.45-1 1-1h6c.55 0 1 .45 1 1s-.45 1-1 1z\"],\n \"bank-account\": [\"M15.36 6.46l-.62-.14c-.31-1.12-.98-2.15-1.87-2.99l.4-1.77a.438.438 0 00-.49-.56c-.85.09-1.6.42-2.14.98-.84-.32-1.87-.51-2.85-.51-2.49 0-4.63 1.17-5.92 2.89-.18-.04-.36-.09-.53-.09-.76 0-1.34.61-1.34 1.4 0 .56.31 1.03.76 1.26-.05.33-.09.7-.09 1.07 0 1.68.71 3.17 1.83 4.34l-.27 1.59c-.09.56.35 1.07.89 1.07h.58c.45 0 .8-.33.89-.79l.04-.37c.94.42 2 .7 3.16.7 1.11 0 2.23-.23 3.16-.7l.05.37c.09.47.45.79.89.79h.58c.53 0 .98-.51.89-1.07l-.27-1.54c.62-.61 1.07-1.35 1.38-2.15l.8-.19c.4-.09.71-.47.71-.93V7.4c.09-.47-.22-.84-.62-.94zM12 8c-.6 0-1-.7-1-1.5S11.4 5 12 5s1 .7 1 1.5S12.6 8 12 8zM6.21 4.92c-.41.2-.91.04-1.12-.36-.21-.4-.04-.88.37-1.07 1.35-.65 2.73-.65 4.08 0 .41.2.58.68.37 1.07-.21.4-.71.56-1.12.36-.87-.43-1.71-.43-2.58 0z\"],\n \"barcode\": [\"M0 14h2V2H0v12zm6 0h1V2H6v12zm2 0h1V2H8v12zm-5 0h2V2H3v12zM15 2v12h1V2h-1zm-5 12h1V2h-1v12zm2 0h2V2h-2v12z\"],\n \"blank\": [],\n \"blocked-person\": [\"M9.39 12.69c-1.2-.53-1.04-.85-1.08-1.29-.01-.07-.01-.13-.02-.2.41-.37.75-.87.97-1.44 0 0 .01-.03.01-.04.05-.13.09-.26.13-.39.27-.06.43-.36.5-.63.01-.03.03-.08.05-.12C8.18 7.8 6.94 6.04 6.94 4c0-.32.04-.62.09-.92-.17-.03-.35-.08-.51-.08-.65 0-1.37.2-1.88.59-.5.38-.87.92-1.05 1.51-.04.14-.07.27-.09.41-.09.48-.14 1.23-.14 1.74v.06c-.19.08-.36.27-.4.68-.03.31.1.59.16.7.06.28.23.59.51.64.04.14.08.27.13.39 0 .01.01.02.01.02v.01c.22.59.57 1.1.99 1.46 0 .06-.01.12-.01.17-.04.44.08.76-1.12 1.29-1.2.53-3.01 1.1-3.38 1.95C-.12 15.5.03 16 .03 16h12.96s.15-.5-.22-1.36c-.37-.85-2.18-1.42-3.38-1.95zM11.97 0C9.75 0 7.94 1.79 7.94 4s1.8 4 4.03 4S16 6.21 16 4s-1.8-4-4.03-4zM9.96 4c0-1.1.9-2 2.01-2 .37 0 .72.11 1.02.28l-2.75 2.73c-.17-.3-.28-.64-.28-1.01zm2.01 2c-.37 0-.72-.11-1.02-.28l2.75-2.73c.18.3.28.64.28 1.01.01 1.1-.9 2-2.01 2z\"],\n \"bold\": [\"M11.7 7c.2-.4.3-1 .3-1.5v-.4V5c0-.1 0-.2-.1-.3v-.1C11.4 3.1 10.1 2 8.5 2H4c-.5 0-1 .4-1 1v10c0 .5.4 1 1 1h5c2.2 0 4-1.8 4-4 0-1.2-.5-2.3-1.3-3zM6 5h2c.6 0 1 .4 1 1s-.4 1-1 1H6V5zm3 6H6V9h3c.6 0 1 .4 1 1s-.4 1-1 1z\"],\n \"book\": [\"M2 1v14c0 .55.45 1 1 1h1V0H3c-.55 0-1 .45-1 1zm11-1h-1v7l-2-2-2 2V0H5v16h8c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"bookmark\": [\"M11.2.01h-.15C11.03.01 11.02 0 11 0H5c-.02 0-.03.01-.05.01H4.8c-.44 0-.8.37-.8.82v14.75c0 .45.25.56.57.24l2.87-2.94c.31-.32.82-.32 1.13 0l2.87 2.94c.31.32.57.21.57-.24V.83C12 .38 11.64.01 11.2.01z\"],\n \"box\": [\"M6 10h4c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1zm9.93-4.37v-.02L13.94.63C13.78.26 13.42 0 13 0H3c-.42 0-.78.26-.93.63L.08 5.61l-.01.02C.03 5.74 0 5.87 0 6v9c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V6c0-.13-.03-.26-.07-.37zM9 2h3.32l1.2 3H9V2zM3.68 2H7v3H2.48l1.2-3zM14 14H2V7h12v7z\"],\n \"briefcase\": [\"M15 3.98h-3v-2c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v2H1c-.55 0-1 .45-1 1v4h3v-1h2v1h6v-1h2v1h3v-4c0-.55-.45-1-1-1zm-5 0H6v-1h4v1zm3 7h-2v-1H5v1H3v-1H0v4c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-4h-3v1z\"],\n \"bring-data\": [\"M14 14a1 1 0 010 2H2a1 1 0 010-2h12zM7.995 3.005c.55 0 1 .45 1 .999v5.584l1.29-1.288a1.002 1.002 0 011.42 1.419l-3 2.996a1.015 1.015 0 01-1.42 0l-3-2.997A1.002 1.002 0 015.705 8.3l1.29 1.29V4.013c0-.55.45-1.009 1-1.009zM14 0a1 1 0 110 2 1 1 0 010-2zm-3 0a1 1 0 110 2 1 1 0 010-2zM8 0a1 1 0 110 2 1 1 0 010-2zM5 0a1 1 0 110 2 1 1 0 010-2zM2 0a1 1 0 110 2 1 1 0 010-2z\"],\n \"build\": [\"M15.39 12.41L7.7 6l1.07-1.1c.34-.34-.12-.63.12-1.26.88-2.17 3.41-2.35 3.41-2.35s.36-.37.71-.72C9.74-.81 7.53.53 6.54 1.4L3.12 4.9l-.71.72c-.39.4-.39 1.05 0 1.45l-.7.72c-.39-.4-1.02-.4-1.41 0s-.39 1.05 0 1.45l1.41 1.45c.39.4 1.02.4 1.41 0s.39-1.05 0-1.45l.71-.72c.39.4 1.02.4 1.41 0l.8-.82 6.39 7.67c.82.82 2.14.82 2.96 0 .81-.82.81-2.15 0-2.96z\"],\n \"calculator\": [\"M13 0H3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM6 14H4v-2h2v2zm0-3H4V9h2v2zm0-3H4V6h2v2zm3 6H7v-2h2v2zm0-3H7V9h2v2zm0-3H7V6h2v2zm3 6h-2V9h2v5zm0-6h-2V6h2v2zm0-3H4V2h8v3z\"],\n \"calendar\": [\"M11 3c.6 0 1-.5 1-1V1c0-.6-.4-1-1-1s-1 .4-1 1v1c0 .5.4 1 1 1zm3-2h-1v1c0 1.1-.9 2-2 2s-2-.9-2-2V1H6v1c0 1.1-.9 2-2 2s-2-.9-2-2V1H1c-.6 0-1 .5-1 1v12c0 .6.4 1 1 1h13c.6 0 1-.4 1-1V2c0-.6-.5-1-1-1zM5 13H2v-3h3v3zm0-4H2V6h3v3zm4 4H6v-3h3v3zm0-4H6V6h3v3zm4 4h-3v-3h3v3zm0-4h-3V6h3v3zM4 3c.6 0 1-.5 1-1V1c0-.6-.4-1-1-1S3 .4 3 1v1c0 .5.4 1 1 1z\"],\n \"camera\": [\"M15 3h-2.59L10.7 1.29A.956.956 0 0010 1H6c-.28 0-.53.11-.71.29L3.59 3H1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h2.56c1.1 1.22 2.67 2 4.44 2s3.34-.78 4.44-2H15c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM3 6H1V5h2v1zm5 6c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"caret-down\": [\"M12 6.5c0-.28-.22-.5-.5-.5h-7a.495.495 0 00-.37.83l3.5 4c.09.1.22.17.37.17s.28-.07.37-.17l3.5-4c.08-.09.13-.2.13-.33z\"],\n \"caret-left\": [\"M9.5 4c-.13 0-.24.05-.33.13l-4 3.5c-.1.09-.17.22-.17.37s.07.28.17.37l4 3.5a.495.495 0 00.83-.37v-7c0-.28-.22-.5-.5-.5z\"],\n \"caret-right\": [\"M11 8c0-.15-.07-.28-.17-.37l-4-3.5A.495.495 0 006 4.5v7a.495.495 0 00.83.37l4-3.5c.1-.09.17-.22.17-.37z\"],\n \"caret-up\": [\"M11.87 9.17s.01 0 0 0l-3.5-4C8.28 5.07 8.15 5 8 5s-.28.07-.37.17l-3.5 4a.495.495 0 00.37.83h7a.495.495 0 00.37-.83z\"],\n \"cell-tower\": [\"M8.97 6.76c-.01-.05-.04-.08-.06-.13-.02-.05-.03-.1-.05-.15.08-.14.14-.3.14-.48 0-.55-.45-1-1-1s-1 .45-1 1c0 .18.06.34.14.48-.03.05-.03.1-.05.15-.02.05-.05.08-.06.13l-2 8c-.13.54.19 1.08.73 1.21a.995.995 0 001.21-.73L7.53 13h.94l.56 2.24a1 1 0 001.94-.48l-2-8zM3.72 1.7C4.1 1.3 4.09.67 3.7.28S2.67-.09 2.28.3c-3.05 3.12-3.05 8.28 0 11.4a.996.996 0 101.43-1.39c-2.28-2.35-2.28-6.27.01-8.61zM11.6 3.2c-.44-.33-1.07-.24-1.4.2-.33.44-.24 1.07.2 1.4.43.32.53 1.96-.04 2.43-.42.35-.48.98-.13 1.41.35.42.98.48 1.41.13 1.59-1.33 1.39-4.5-.04-5.57z\", \"M13.72.3c-.39-.4-1.02-.4-1.41-.02s-.41 1.02-.03 1.42c2.29 2.34 2.29 6.26 0 8.6-.39.39-.38 1.03.02 1.41s1.03.38 1.41-.02c3.05-3.11 3.05-8.27.01-11.39zM5.4 7.23c-.57-.47-.47-2.11-.04-2.43.44-.33.53-.96.2-1.4s-.96-.53-1.4-.2c-1.44 1.07-1.63 4.24-.04 5.57.42.35 1.05.3 1.41-.13.35-.42.29-1.06-.13-1.41z\"],\n \"changes\": [\"M8.29 7.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3a1.003 1.003 0 00-1.42-1.42L13 7.59V1c0-.55-.45-1-1-1s-1 .45-1 1v6.59l-1.29-1.3a1.003 1.003 0 00-1.42 1.42zM14.5 13h-13c-.83 0-1.5.67-1.5 1.5S.67 16 1.5 16h13c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5zM1 5c.28 0 .53-.11.71-.29L3 3.41V10c0 .55.45 1 1 1s1-.45 1-1V3.41L6.29 4.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3C4.53.11 4.28 0 4 0s-.53.11-.71.29l-3 3A1.003 1.003 0 001 5z\"],\n \"chart\": [\"M0 15c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V9.4L0 11v4zm6-5.5V15c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-5l-1 1-3-1.5zM13 7l-1 1v7c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V7.88c-.26.07-.58.12-1 .12-1.96 0-2-1-2-1zm2-6h-3c-.55 0-1 .45-1 1s.45 1 1 1h.59L8.8 6.78 5.45 5.11v.01C5.31 5.05 5.16 5 5 5s-.31.05-.44.11V5.1l-4 2v.01C.23 7.28 0 7.61 0 8c0 .55.45 1 1 1 .16 0 .31-.05.44-.11v.01L5 7.12 8.55 8.9v-.01c.14.06.29.11.45.11.28 0 .53-.11.71-.29L14 4.41V5c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z\"],\n \"chat\": [\"M6 10c-1.1 0-2-.9-2-2V3H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1v2a1.003 1.003 0 001.71.71L5.41 13H10c.55 0 1-.45 1-1v-1.17l-.83-.83H6zm9-10H6c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h4.59l2.71 2.71c.17.18.42.29.7.29.55 0 1-.45 1-1V9c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"chevron-backward\": [\"M7.41 8l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L6 6.59V4c0-.55-.45-1-1-1s-1 .45-1 1v8c0 .55.45 1 1 1s1-.45 1-1V9.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L7.41 8z\"],\n \"chevron-down\": [\"M12 5c-.28 0-.53.11-.71.29L8 8.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0012 5z\"],\n \"chevron-forward\": [\"M10 3c-.55 0-1 .45-1 1v2.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42L7.59 8 4.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L9 9.41V12c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"chevron-left\": [\"M7.41 8l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C5.11 7.47 5 7.72 5 8c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L7.41 8z\"],\n \"chevron-right\": [\"M10.71 7.29l-4-4a1.003 1.003 0 00-1.42 1.42L8.59 8 5.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"chevron-up\": [\"M12.71 9.29l-4-4C8.53 5.11 8.28 5 8 5s-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L8 7.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z\"],\n \"circle\": [\"M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 14c-3.3 0-6-2.7-6-6s2.7-6 6-6 6 2.7 6 6-2.7 6-6 6z\"],\n \"circle-arrow-down\": [\"M11 7c-.28 0-.53.11-.71.29L9 8.59V5c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-1.29-1.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0011 7zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\"],\n \"circle-arrow-left\": [\"M11 7H7.41L8.7 5.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C4.11 7.47 4 7.72 4 8c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L7.41 9H11c.55 0 1-.45 1-1s-.45-1-1-1zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\"],\n \"circle-arrow-right\": [\"M8.71 4.29a1.003 1.003 0 00-1.42 1.42L8.59 7H5c-.55 0-1 .45-1 1s.45 1 1 1h3.59L7.3 10.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\"],\n \"circle-arrow-up\": [\"M8.71 4.29C8.53 4.11 8.28 4 8 4s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L7 7.41V11c0 .55.45 1 1 1s1-.45 1-1V7.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\"],\n \"citation\": [\"M15.02 5c0-1.66-1.34-3-3-3s-3 1.34-3 3a2.996 2.996 0 003.6 2.94C12.1 9.76 11.14 11 10.02 11c-.55 0-1 .45-1 1s.45 1 1 1c2.76 0 5-3.13 5-7 0-.2-.02-.39-.04-.58.01-.14.04-.28.04-.42zm-11-3c-1.66 0-3 1.34-3 3a2.996 2.996 0 003.6 2.94C4.1 9.76 3.14 11 2.02 11c-.55 0-1 .45-1 1s.45 1 1 1c2.76 0 5-3.13 5-7 0-.2-.02-.39-.04-.58.01-.14.04-.28.04-.42 0-1.66-1.35-3-3-3z\"],\n \"clean\": [\"M12 8l-1.2 2.796-2.8 1.2 2.8 1.197L12 16l1.2-2.807L16 12l-2.8-1.204zM5 0L3.5 3.5 0 4.995 3.5 6.5 5 10l1.5-3.5L10 5 6.5 3.5z\"],\n \"clipboard\": [\"M11 2c0-.55-.45-1-1-1h.22C9.88.4 9.24 0 8.5 0S7.12.4 6.78 1H7c-.55 0-1 .45-1 1v1h5V2zm2 0h-1v2H5V2H4c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z\"],\n \"cloud\": [\"M12 6c-.03 0-.07 0-.1.01A5 5 0 002 7c0 .11.01.22.02.33A3.51 3.51 0 000 10.5C0 12.43 1.57 14 3.5 14H12c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"],\n \"cloud-download\": [\"M11 11c-.28 0-.53.11-.71.29L9 12.59V8c0-.55-.45-1-1-1s-1 .45-1 1v4.59L5.71 11.3A.965.965 0 005 11a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0011 11zm1-7c-.03 0-.07 0-.1.01A5 5 0 002 5c0 .11.01.22.02.33A3.51 3.51 0 000 8.5c0 1.41.84 2.61 2.03 3.17C2.2 10.17 3.46 9 5 9c.06 0 .13.02.19.02C5.07 8.7 5 8.36 5 8c0-1.66 1.34-3 3-3s3 1.34 3 3c0 .36-.07.7-.19 1.02.06 0 .13-.02.19-.02 1.48 0 2.7 1.07 2.95 2.47A3.964 3.964 0 0016 8c0-2.21-1.79-4-4-4z\"],\n \"cloud-upload\": [\"M8.71 7.29C8.53 7.11 8.28 7 8 7s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L7 10.41V15c0 .55.45 1 1 1s1-.45 1-1v-4.59l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3zM12 4c-.03 0-.07 0-.1.01A5 5 0 002 5c0 .11.01.22.02.33a3.495 3.495 0 00.07 6.37c-.05-.23-.09-.46-.09-.7 0-.83.34-1.58.88-2.12l3-3a2.993 2.993 0 014.24 0l3 3c.54.54.88 1.29.88 2.12 0 .16-.02.32-.05.47C15.17 10.78 16 9.5 16 8c0-2.21-1.79-4-4-4z\"],\n \"code\": [\"M15.71 7.29l-3-3a1.003 1.003 0 00-1.42 1.42L13.59 8l-2.29 2.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM5 5a1.003 1.003 0 00-1.71-.71l-3 3C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L2.41 8 4.7 5.71c.19-.18.3-.43.3-.71zm4-3c-.48 0-.87.35-.96.81l-2 10c-.01.06-.04.12-.04.19 0 .55.45 1 1 1 .48 0 .87-.35.96-.81l2-10c.01-.06.04-.12.04-.19 0-.55-.45-1-1-1z\"],\n \"code-block\": [\"M15 3h-2V2c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v1H7V2c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-8.29 8.29a1.003 1.003 0 01-1.42 1.42l-3-3C2.11 9.53 2 9.28 2 9s.11-.53.29-.71l3-3a1.003 1.003 0 011.42 1.42L4.41 9l2.3 2.29zm7-1.58l-3 3a1.003 1.003 0 01-1.42-1.42L11.59 9l-2.3-2.29a1.003 1.003 0 011.42-1.42l3 3c.18.18.29.43.29.71s-.11.53-.29.71z\"],\n \"cog\": [\"M15.19 6.39h-1.85c-.11-.37-.27-.71-.45-1.04l1.36-1.36c.31-.31.31-.82 0-1.13l-1.13-1.13a.803.803 0 00-1.13 0l-1.36 1.36c-.33-.17-.67-.33-1.04-.44V.79c0-.44-.36-.8-.8-.8h-1.6c-.44 0-.8.36-.8.8v1.86c-.39.12-.75.28-1.1.47l-1.3-1.3c-.3-.3-.79-.3-1.09 0L1.82 2.91c-.3.3-.3.79 0 1.09l1.3 1.3c-.2.34-.36.7-.48 1.09H.79c-.44 0-.8.36-.8.8v1.6c0 .44.36.8.8.8h1.85c.11.37.27.71.45 1.04l-1.36 1.36c-.31.31-.31.82 0 1.13l1.13 1.13c.31.31.82.31 1.13 0l1.36-1.36c.33.18.67.33 1.04.44v1.86c0 .44.36.8.8.8h1.6c.44 0 .8-.36.8-.8v-1.86c.39-.12.75-.28 1.1-.47l1.3 1.3c.3.3.79.3 1.09 0l1.09-1.09c.3-.3.3-.79 0-1.09l-1.3-1.3c.19-.35.36-.71.48-1.1h1.85c.44 0 .8-.36.8-.8v-1.6a.816.816 0 00-.81-.79zm-7.2 4.6c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"],\n \"collapse-all\": [\"M7.29 6.71c.18.18.43.29.71.29s.53-.11.71-.29l4-4a1.003 1.003 0 00-1.42-1.42L8 4.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4zm1.42 2.58C8.53 9.11 8.28 9 8 9s-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L8 11.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4z\"],\n \"column-layout\": [\"M15 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM4 13H2V3h2v10zm3 0H5V3h2v10zm7 0H8V3h6v10z\"],\n \"comment\": [\"M14 1H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h2v3a1.003 1.003 0 001.71.71L8.41 12H14c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM3.5 8C2.67 8 2 7.33 2 6.5S2.67 5 3.5 5 5 5.67 5 6.5 4.33 8 3.5 8zm4 0C6.67 8 6 7.33 6 6.5S6.67 5 7.5 5 9 5.67 9 6.5 8.33 8 7.5 8zm4 0c-.83 0-1.5-.67-1.5-1.5S10.67 5 11.5 5s1.5.67 1.5 1.5S12.33 8 11.5 8z\"],\n \"comparison\": [\"M7.99-.01c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1v-14c0-.55-.45-1-1-1zm-3 3h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm10 0h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm0 3h-4v-2h4v2zm0 3h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm0 3h-4v-2h4v2zm-10-3h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1z\"],\n \"compass\": [\"M12 8c0 .14-.03.27-.08.39l-3 6.99c-.15.37-.51.62-.92.62s-.77-.25-.92-.61l-3-6.99a1.006 1.006 0 010-.79l3-6.99C7.23.25 7.59 0 8 0s.77.25.92.61l3 6.99c.05.13.08.26.08.4zM8 3.54L6.09 8h3.82L8 3.54z\"],\n \"compressed\": [\"M15.93 5.63v-.02L13.94.63C13.78.26 13.42 0 13 0H3c-.42 0-.78.26-.93.63L.08 5.61l-.01.02C.03 5.74 0 5.87 0 6v9c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V6c0-.13-.03-.26-.07-.37zM9 2h3.32l1.2 3H9V2zM3.68 2H7v3H2.48l1.2-3zM14 14H2V7h5v2.59l-1.29-1.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3a1.003 1.003 0 00-1.42-1.42L9 9.59V7h5v7z\"],\n \"confirm\": [\"M8.7 4.29a.965.965 0 00-.71-.3 1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l5-5a1.003 1.003 0 00-1.42-1.42l-4.29 4.3L8.7 4.29zm5.22 3.01c.03.23.07.45.07.69 0 3.31-2.69 6-6 6s-6-2.69-6-6 2.69-6 6-6c.81 0 1.59.17 2.3.46l1.5-1.5A7.998 7.998 0 00-.01 7.99c0 4.42 3.58 8 8 8s8-3.58 8-8c0-.83-.13-1.64-.36-2.39l-1.71 1.7z\"],\n \"console\": [\"M15 15H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h14c.55 0 1 .45 1 1v12c0 .55-.45 1-1 1zM14 5H2v8h12V5zM4 6c.28 0 .53.11.71.29l2 2c.18.18.29.43.29.71s-.11.53-.29.71l-2 2a1.003 1.003 0 01-1.42-1.42L4.59 9l-1.3-1.29A1.003 1.003 0 014 6zm5 4h3c.55 0 1 .45 1 1s-.45 1-1 1H9c-.55 0-1-.45-1-1s.45-1 1-1z\"],\n \"contrast\": [\"M15.2 6.4h-1.44c-.13-.47-.32-.92-.56-1.34L14.26 4c.31-.31.31-.82 0-1.13l-1.13-1.13a.803.803 0 00-1.13 0L10.94 2.8c-.42-.24-.86-.42-1.34-.56V.8c0-.44-.36-.8-.8-.8H7.2c-.44 0-.8.36-.8.8v1.44c-.5.14-.96.34-1.4.59l-1-1c-.3-.3-.79-.3-1.09 0L1.83 2.91c-.3.3-.3.79 0 1.09l1 1c-.25.44-.45.9-.59 1.4H.8c-.44 0-.8.36-.8.8v1.6c0 .44.36.8.8.8h1.44c.13.47.32.92.56 1.34L1.74 12c-.31.31-.31.82 0 1.13l1.13 1.13c.31.31.82.31 1.13 0l1.06-1.06c.42.24.86.42 1.34.56v1.44c0 .44.36.8.8.8h1.6c.44 0 .8-.36.8-.8v-1.44c.5-.14.96-.33 1.4-.59l1 1c.3.3.79.3 1.09 0l1.09-1.09c.3-.3.3-.79 0-1.09l-1-1c.25-.43.45-.9.59-1.4h1.44c.44 0 .8-.36.8-.8V7.2a.818.818 0 00-.81-.8zM8 12c-2.21 0-4-1.79-4-4s1.79-4 4-4v8z\"],\n \"control\": [\"M13 8H8v5h5V8zm0-5H8v4h5V3zm2-3H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2V2h12v12zM7 3H3v10h4V3z\"],\n \"credit-card\": [\"M14.99 2.95h-14c-.55 0-1 .45-1 1v1h16v-1c0-.55-.45-1-1-1zm-15 10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-6h-16v6zm5.5-2h5c.28 0 .5.22.5.5s-.22.5-.5.5h-5c-.28 0-.5-.22-.5-.5s.23-.5.5-.5zm-3 0h1c.28 0 .5.22.5.5s-.22.5-.5.5h-1c-.28 0-.5-.22-.5-.5s.23-.5.5-.5z\"],\n \"cross\": [\"M9.41 8l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L8 6.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42L6.59 8 3.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L8 9.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L9.41 8z\"],\n \"crown\": [\"M2 6l3 2 3-4 3 4 3-2-1 6H3L2 6zm6-5a1 1 0 110 2 1 1 0 010-2zM1 3a1 1 0 110 2 1 1 0 010-2zm14 0a1 1 0 110 2 1 1 0 010-2zM3 13h10v2H3v-2z\"],\n \"cube\": [\"M14.194 3.54L8 7.41 1.806 3.54 7.504.283a1 1 0 01.992 0l5.698 3.255zm.75.71a1 1 0 01.056.33v6.84a1 1 0 01-.504.868L8.5 15.714V8.277l6.444-4.027zm-13.888 0L7.5 8.277v7.437l-5.996-3.426A1 1 0 011 11.42V4.58a1 1 0 01.056-.33z\"],\n \"cube-add\": [\"M14 2h1a1 1 0 010 2h-1v1a1 1 0 01-2 0V4h-1a1 1 0 010-2h1V1a1 1 0 012 0v1zM9.136.65a3.001 3.001 0 00.992 5.222c.018.058.038.115.059.172L8 7.41 1.806 3.54 7.504.283a1 1 0 01.992 0l.64.365zM15 7.235v4.184a1 1 0 01-.504.868L8.5 15.714V8.277l2.187-1.367A2.994 2.994 0 0013 8c.768 0 1.47-.289 2-.764zM1.056 4.25L7.5 8.277v7.437l-5.996-3.426A1 1 0 011 11.42V4.58a1 1 0 01.056-.33z\"],\n \"cube-remove\": [\"M10.365 5.933L8 7.41 1.806 3.54 7.504.283a1 1 0 01.992 0l.64.365a3.001 3.001 0 001.228 5.283zM15 6v5.42a1 1 0 01-.504.868L8.5 15.714V8.277L12.143 6H15zM1.056 4.25L7.5 8.277v7.437l-5.996-3.426A1 1 0 011 11.42V4.58a1 1 0 01.056-.33zM11 2h4a1 1 0 010 2h-4a1 1 0 010-2z\"],\n \"curved-range-chart\": [\"M15 12H3.12l1.81-1.39c1.73 1.01 5.53-.03 9.08-2.61l-1.22-1.5C10.3 8.3 7.86 9.37 6.65 9.29L14.3 3.4l-.6-.8-7.83 6.03c-.01-1.07 1.8-3.19 4.47-5.13L9.12 2C5.38 4.7 3.34 8.1 4.25 9.87L2 11.6V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"cut\": [\"M13 2s.71-1.29 0-2L8.66 5.07l1.05 1.32L13 2zm.07 8c-.42 0-.82.09-1.18.26L3.31 0c-.69.71 0 2 0 2l3.68 5.02-2.77 3.24A2.996 2.996 0 000 13c0 1.66 1.34 3 3 3s3-1.34 3-3c0-.46-.11-.89-.29-1.27L8.1 8.54l2.33 3.19c-.18.39-.29.82-.29 1.27 0 1.66 1.31 3 2.93 3S16 14.66 16 13s-1.31-3-2.93-3zM3 14c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm10.07 0c-.54 0-.98-.45-.98-1s.44-1 .98-1 .98.45.98 1-.44 1-.98 1z\"],\n \"cycle\": [\"M13 9a3 3 0 110 6 3 3 0 010-6zM3 9a3 3 0 110 6 3 3 0 010-6zm6.169-5.27l.087.09 1.51 1.746 1.589.549a1 1 0 01.65 1.16l-.032.112a1 1 0 01-1.159.65l-.112-.032-1.843-.636a1 1 0 01-.337-.198l-.092-.093-.959-1.109L7.041 7.5l1.691 1.819a1 1 0 01.26.556L9 10v3a1 1 0 01-1.993.117L7 13l-.001-2.608-2.056-2.211a1 1 0 01-.081-1.264l.082-.1 2.825-3.026a1 1 0 011.4-.061zM13 10.5a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm-10 0a1.5 1.5 0 100 3 1.5 1.5 0 000-3zM11 1a1.5 1.5 0 110 3 1.5 1.5 0 010-3z\"],\n \"dashboard\": [\"M5 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM4 7c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4-2c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-2 6c0 1.1.9 2 2 2s2-.9 2-2c0-.53-2-5-2-5s-2 4.47-2 5zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm4-9c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zm0 2c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z\"],\n \"data-lineage\": [\"M1.067 0C.477 0 0 .478 0 1.067V3.2c0 .59.478 1.067 1.067 1.067h2.24a5.342 5.342 0 002.9 3.734 5.337 5.337 0 00-2.9 3.733h-2.24C.477 11.733 0 12.21 0 12.8v2.133C0 15.523.478 16 1.067 16H6.4c.59 0 1.067-.478 1.067-1.067V12.8c0-.59-.478-1.067-1.067-1.067H4.401a4.27 4.27 0 013.92-3.194l.212-.006V9.6c0 .59.478 1.067 1.067 1.067h5.333c.59 0 1.067-.478 1.067-1.067V6.4c0-.59-.478-1.067-1.067-1.067H9.6c-.59 0-1.067.478-1.067 1.067v1.067a4.268 4.268 0 01-4.132-3.2H6.4c.59 0 1.067-.478 1.067-1.067V1.067C7.467.477 6.989 0 6.4 0H1.067z\"],\n \"database\": [\"M8 4c3.31 0 6-.9 6-2s-2.69-2-6-2C4.68 0 2 .9 2 2s2.68 2 6 2zm-6-.48V8c0 1.1 2.69 2 6 2s6-.9 6-2V3.52C12.78 4.4 10.56 5 8 5s-4.78-.6-6-1.48zm0 6V14c0 1.1 2.69 2 6 2s6-.9 6-2V9.52C12.78 10.4 10.56 11 8 11s-4.78-.6-6-1.48z\"],\n \"delete\": [\"M11.99 4.99a1.003 1.003 0 00-1.71-.71l-2.29 2.3L5.7 4.29a.965.965 0 00-.71-.3 1.003 1.003 0 00-.71 1.71l2.29 2.29-2.29 2.29A1.003 1.003 0 005.7 11.7l2.29-2.29 2.29 2.29a1.003 1.003 0 001.42-1.42L9.41 7.99 11.7 5.7c.18-.18.29-.43.29-.71zm-4-5c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.68 6-6 6z\"],\n \"delta\": [\"M8 0L0 16h16L8 0zM7 5l5 10H2L7 5z\"],\n \"derive-column\": [\"M6.08 6.67h-.84c.24-.92.56-1.6.96-2.03.24-.27.48-.4.71-.4.05 0 .08.01.11.04s.04.06.04.1c0 .04-.03.11-.1.21-.06.1-.1.2-.1.29 0 .13.05.24.15.33.1.09.23.14.39.14.17 0 .31-.06.42-.17A.58.58 0 008 4.73c0-.22-.09-.39-.26-.53-.17-.13-.44-.2-.81-.2-.59 0-1.12.16-1.59.48-.48.32-.93.85-1.36 1.59-.15.26-.29.42-.42.49s-.35.11-.64.1l-.19.65h.81l-1.19 4.37c-.2.72-.33 1.16-.4 1.33-.1.24-.26.45-.46.62-.08.07-.18.1-.3.1-.03 0-.06-.01-.08-.03l-.03-.04c0-.02.03-.06.09-.11.06-.06.09-.14.09-.26 0-.13-.05-.23-.14-.32a.6.6 0 00-.4-.13c-.21 0-.38.05-.51.16s-.21.25-.21.4c0 .16.08.3.23.42.16.12.4.18.74.18.53 0 .99-.13 1.4-.39.41-.26.76-.65 1.07-1.19.3-.54.62-1.4.94-2.59l.68-2.53h.82l.2-.63zM15 0H8c-.55 0-1 .45-1 1v2h2V2h5v12H9v-1H7v2c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM8.3 9.94c.18.52.33.89.46 1.13.13.24.28.4.44.51.17.1.37.16.62.16.24 0 .49-.08.74-.25.33-.21.66-.58 1.01-1.09l-.21-.11c-.23.31-.41.5-.52.57a.44.44 0 01-.26.07c-.12 0-.24-.07-.36-.21-.2-.24-.46-.91-.8-2 .3-.49.55-.81.75-.96.15-.11.3-.16.47-.16.06 0 .17.02.34.06.16.04.31.06.43.06.17 0 .31-.06.43-.17.1-.11.16-.25.16-.43 0-.19-.06-.33-.17-.44-.12-.11-.28-.16-.49-.16-.19 0-.37.04-.54.13-.17.09-.39.27-.65.56-.2.21-.48.58-.87 1.11-.15-.66-.41-1.26-.78-1.81l-2.05.33-.04.21c.15-.03.28-.04.39-.04.2 0 .37.08.5.25.21.26.5 1.03.88 2.33-.29.37-.49.61-.6.72-.18.18-.33.3-.44.36-.09.04-.19.07-.3.07-.09 0-.23-.04-.42-.13a.866.866 0 00-.36-.09c-.2 0-.36.06-.49.18a.59.59 0 00-.19.46c0 .17.06.32.18.43.12.11.28.16.48.16.2 0 .38-.04.55-.11.17-.08.39-.24.65-.49.24-.27.6-.66 1.06-1.21z\"],\n \"desktop\": [\"M15 0H1C.45 0 0 .45 0 1v10c0 .55.45 1 1 1h4.75l-.5 2H4c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1h-1.25l-.5-2H15c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 10H2V2h12v8z\"],\n \"diagnosis\": [\"M3.2 1a1 1 0 01.117 1.993L3.2 3H3v3a2 2 0 001.85 1.995L5 8a2 2 0 001.995-1.85L7 6V3h-.2a1 1 0 01-.993-.883L5.8 2a1 1 0 01.883-.993L6.8 1H8a1 1 0 01.993.883L9 2v4a4.002 4.002 0 01-3.007 3.876v.007L6 10a3 3 0 005.995.176L12 10V7.792a2.5 2.5 0 112 0V10a5 5 0 01-10 0c0-.042.003-.084.008-.125A4 4 0 011.005 6.2L1 6V2a1 1 0 01.883-.993L2 1h1.2z\"],\n \"diagram-tree\": [\"M15 8v3h-2V9H9v2H7V9H3v2H1V8a1 1 0 011-1h5V5h2v2h5a1 1 0 011 1zM1 12h2a1 1 0 011 1v2a1 1 0 01-1 1H1a1 1 0 01-1-1v-2a1 1 0 011-1zm12 0h2a1 1 0 011 1v2a1 1 0 01-1 1h-2a1 1 0 01-1-1v-2a1 1 0 011-1zm-6 0h2a1 1 0 011 1v2a1 1 0 01-1 1H7a1 1 0 01-1-1v-2a1 1 0 011-1zM7 0h2a1 1 0 011 1v2a1 1 0 01-1 1H7a1 1 0 01-1-1V1a1 1 0 011-1z\"],\n \"direction-left\": [\"M16 1.99l-16 6 16 6-4-6z\"],\n \"direction-right\": [\"M16 7.99l-16-6 4 6-4 6z\"],\n \"disable\": [\"M7.99-.01c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm-6 8c0-3.31 2.69-6 6-6 1.3 0 2.49.42 3.47 1.12l-8.35 8.35c-.7-.98-1.12-2.17-1.12-3.47zm6 6c-1.3 0-2.49-.42-3.47-1.12l8.35-8.35c.7.98 1.12 2.17 1.12 3.47 0 3.32-2.68 6-6 6z\"],\n \"document\": [\"M9 0H3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5L9 0zm3 14H4V2h4v4h4v8z\"],\n \"document-open\": [\"M6 12c0 .55.45 1 1 1s1-.45 1-1V8c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1s.45 1 1 1h1.59L1.3 12.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L6 10.41V12zm4-12H4c-.55 0-1 .45-1 1v4h2V2h4v4h4v8H5.24l-1.8 1.8c.16.12.35.2.56.2h10c.55 0 1-.45 1-1V5l-5-5z\"],\n \"document-share\": [\"M10 14H2V2h4v4h1c0-.83.36-1.55.91-2.09l-.03-.03.9-.9C8.3 2.45 8 1.77 8 1L7 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V8.22c-.53.48-1.23.78-2 .78v5zm5-14h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.29a1.003 1.003 0 001.42 1.42L14 3.41V5c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"dollar\": [\"M12.83 9.51c-.1-.3-.25-.58-.45-.84s-.45-.49-.75-.7c-.3-.2-.65-.36-1.05-.48-.16-.04-.43-.11-.8-.2-.35-.09-.73-.18-1.12-.28-.39-.1-.74-.19-1.06-.27-.31-.08-.49-.12-.54-.13-.43-.12-.78-.29-1.05-.52-.27-.23-.4-.55-.4-.95 0-.29.07-.53.21-.72.14-.19.32-.34.54-.46.22-.11.46-.19.72-.24.26-.05.52-.08.77-.08.74 0 1.35.15 1.83.46.48.3.75.83.81 1.56h2.14c0-.6-.13-1.13-.38-1.58-.25-.45-.59-.84-1.02-1.15-.43-.31-.93-.54-1.49-.7-.24-.06-.49-.1-.75-.14V1c0-.55-.45-1-1-1s-1 .45-1 1v1.08c-.23.03-.46.07-.68.13-.54.13-1.02.34-1.44.61-.42.28-.76.63-1.02 1.05-.26.43-.39.93-.39 1.5 0 .3.04.59.13.88.09.29.23.56.44.82.21.26.48.49.83.7.35.21.79.38 1.31.51.85.21 1.56.38 2.14.52.58.13 1.08.28 1.52.42.25.09.48.23.69.44.21.21.32.53.32.97 0 .21-.05.42-.14.63-.09.21-.24.39-.45.55-.21.16-.47.29-.81.39-.33.1-.73.15-1.2.15-.43 0-.84-.05-1.21-.14-.37-.09-.7-.24-.99-.43-.29-.2-.51-.45-.67-.76-.16-.31-.24-.68-.24-1.12H3c.01.71.15 1.32.43 1.84.27.52.64.94 1.1 1.27.46.33.99.58 1.61.74.27.07.56.12.85.16V15c0 .55.45 1 1 1s1-.45 1-1v-1.05c.3-.03.61-.08.9-.15.58-.13 1.1-.34 1.56-.63.46-.29.83-.66 1.11-1.11.28-.45.42-1 .42-1.64 0-.31-.05-.61-.15-.91z\"],\n \"dot\": [\"M8 5a3 3 0 100 6 3 3 0 100-6z\"],\n \"double-caret-horizontal\": [\"M13.71 7.29l-3-3A1.003 1.003 0 009 5v6a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM6 4c-.28 0-.53.11-.71.29l-3 3C2.11 7.47 2 7.72 2 8c0 .28.11.53.29.71l3 3A1.003 1.003 0 007 11V5c0-.55-.45-1-1-1z\"],\n \"double-caret-vertical\": [\"M5 7h6a1.003 1.003 0 00.71-1.71l-3-3C8.53 2.11 8.28 2 8 2s-.53.11-.71.29l-3 3A1.003 1.003 0 005 7zm6 2H5a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0011 9z\"],\n \"double-chevron-down\": [\"M7.29 8.71c.18.18.43.29.71.29s.53-.11.71-.29l4-4a1.003 1.003 0 00-1.42-1.42L8 6.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4zM12 8c-.28 0-.53.11-.71.29L8 11.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0012 8z\"],\n \"double-chevron-left\": [\"M4.41 8L7.7 4.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C2.11 7.47 2 7.72 2 8c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L4.41 8zm5 0l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C7.11 7.47 7 7.72 7 8c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L9.41 8z\"],\n \"double-chevron-right\": [\"M9 8c0-.28-.11-.53-.29-.71l-4-4a1.003 1.003 0 00-1.42 1.42L6.59 8 3.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4C8.89 8.53 9 8.28 9 8zm4.71-.71l-4-4a1.003 1.003 0 00-1.42 1.42L11.59 8 8.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"double-chevron-up\": [\"M4 8c.28 0 .53-.11.71-.29L8 4.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4C8.53 2.11 8.28 2 8 2s-.53.11-.71.29l-4 4A1.003 1.003 0 004 8zm4.71-.71C8.53 7.11 8.28 7 8 7s-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L8 9.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4z\"],\n \"doughnut-chart\": [\"M11.86 7h4.05C15.45 3.39 12.61.52 9 .07v4.07A4 4 0 0111.86 7zM12 8c0 2.21-1.79 4-4 4s-4-1.79-4-4 1.79-4 4-4V0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8h-4z\"],\n \"download\": [\"M7.99-.01c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zM11.7 9.7l-3 3c-.18.18-.43.29-.71.29s-.53-.11-.71-.29l-3-3A1.003 1.003 0 015.7 8.28l1.29 1.29V3.99c0-.55.45-1 1-1s1 .45 1 1v5.59l1.29-1.29a1.003 1.003 0 011.71.71c0 .27-.11.52-.29.7z\"],\n \"drag-handle-horizontal\": [\"M2 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm8-2c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 2c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-4-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM6 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z\"],\n \"drag-handle-vertical\": [\"M6 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4-6c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zM6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4 8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z\"],\n \"draw\": [\"M14.9 11c-.3 0-.5.1-.7.3l-3 3c-.2.2-.3.4-.3.7 0 .6.5 1 1 1 .3 0 .5-.1.7-.3l3-3c.2-.2.3-.4.3-.7 0-.5-.4-1-1-1zm-1-1v-.2l-1-5c-.1-.3-.3-.6-.6-.7l-11-4-.3.3 5.8 5.8c.2-.1.4-.2.6-.2.8 0 1.5.7 1.5 1.5S8.3 9 7.4 9s-1.5-.7-1.5-1.5c0-.2.1-.4.2-.6L.3 1.1l-.3.3 4 11c.1.3.4.6.7.6l5 1h.2c.3 0 .5-.1.7-.3l3-3c.2-.2.3-.4.3-.7z\"],\n \"drawer-left\": [\"M7 0a1 1 0 011 1v14a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1h6zM6 2H2v12h4V2zm2 5h4.59L11.3 5.71A.965.965 0 0111 5a1.003 1.003 0 011.71-.71l3 3c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-3 3a1.003 1.003 0 01-1.42-1.42L12.59 9H8V7z\"],\n \"drawer-left-filled\": [\"M1 0h6a1 1 0 011 1v14a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1zm7 7h4.59L11.3 5.71A.965.965 0 0111 5a1.003 1.003 0 011.71-.71l3 3c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-3 3a1.003 1.003 0 01-1.42-1.42L12.59 9H8V7z\"],\n \"drawer-right\": [\"M15 0a1 1 0 011 1v14a1 1 0 01-1 1H9a1 1 0 01-1-1V1a1 1 0 011-1h6zm-1 2h-4v12h4V2zM8 7H3.41L4.7 5.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L3.41 9H8V7z\"],\n \"drawer-right-filled\": [\"M9 0h6a1 1 0 011 1v14a1 1 0 01-1 1H9a1 1 0 01-1-1V1a1 1 0 011-1zM8 7H3.41L4.7 5.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L3.41 9H8V7z\"],\n \"drive-time\": [\"M15.12 4.76h-1.05l-.76-2.12c-.19-.53-.76-1.08-1.27-1.24 0 0-1.32-.4-4.04-.4-2.72 0-4.04.4-4.04.4-.5.16-1.07.71-1.26 1.24l-.77 2.12H.88c-.48 0-.88.42-.88.94s.4.94.88.94h.38L1 7c-.03.69 0 1.44 0 2v5c0 .66.38 1 1 1s1-.34 1-1v-1h10v1c0 .66.38 1 1 1s1-.34 1-1V9c0-.56-.01-1.37 0-2l-.26-.37h.38c.48 0 .88-.42.88-.93 0-.52-.4-.94-.88-.94zM5 10H3V8h2v2zm8 0h-2V8h2v2zm0-4H3c-.18 0-.06-.82 0-1l.73-1.63C3.79 3.19 3.82 3 4 3h8c.18 0 .21.19.27.37L13 5c.06.18.18 1 0 1z\"],\n \"duplicate\": [\"M15 0H5c-.55 0-1 .45-1 1v2h2V2h8v7h-1v2h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-4 4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 10H2V6h8v8z\"],\n \"edit\": [\"M3.25 10.26l2.47 2.47 6.69-6.69-2.46-2.48-6.7 6.7zM.99 14.99l3.86-1.39-2.46-2.44-1.4 3.83zm12.25-14c-.48 0-.92.2-1.24.51l-1.44 1.44 2.47 2.47 1.44-1.44c.32-.32.51-.75.51-1.24.01-.95-.77-1.74-1.74-1.74z\"],\n \"eject\": [\"M4 9h8a1.003 1.003 0 00.71-1.71l-4-4C8.53 3.11 8.28 3 8 3s-.53.11-.71.29l-4 4A1.003 1.003 0 004 9zm8 1H4c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1z\"],\n \"endorsed\": [\"M15.86 7.5l-.81-1.42V4.5c0-.36-.19-.68-.49-.87l-1.37-.8-.81-1.41c-.19-.31-.51-.49-.86-.49H9.89L8.5.14a.948.948 0 00-1 0l-1.39.8H4.52a1 1 0 00-.86.49l-.8 1.37-1.44.83c-.3.19-.49.51-.49.87v1.65l-.8 1.37c-.08.15-.13.32-.13.49s.05.34.14.49l.8 1.37v1.65c0 .36.19.68.49.87l1.42.81.8 1.37c.19.31.51.49.86.49H6.1l1.39.8c.15.09.32.14.48.14s.34-.05.49-.14l1.39-.8h1.63a1 1 0 00.86-.49l.81-1.41 1.37-.8c.3-.19.49-.51.49-.87V9.93l.81-1.42a.89.89 0 00.04-1.01zm-4.12-.82l-4.01 4.01c-.18.18-.43.29-.71.29s-.53-.11-.71-.29l-2-2c-.18-.19-.3-.44-.3-.71a1.003 1.003 0 011.71-.71l1.3 1.3 3.3-3.3a1.003 1.003 0 011.71.71.95.95 0 01-.29.7z\"],\n \"envelope\": [\"M0 3.06v9.88L4.94 8 0 3.06zM14.94 2H1.06L8 8.94 14.94 2zm-6.41 8.53c-.14.14-.32.22-.53.22s-.39-.08-.53-.22L6 9.06 1.06 14h13.88L10 9.06l-1.47 1.47zM11.06 8L16 12.94V3.06L11.06 8z\"],\n \"equals\": [\"M3 5h10a1 1 0 010 2H3a1 1 0 110-2zm0 4h10a1 1 0 010 2H3a1 1 0 010-2z\"],\n \"eraser\": [\"M8.06 13.91l7.63-7.44c.41-.4.41-1.05 0-1.45L10.86.3c-.41-.4-1.08-.4-1.49 0L.31 9.13c-.41.4-.41 1.05 0 1.45l5.58 5.44h8.12v-.01c.55 0 1-.45 1-1s-.45-1-1-1H7.96l.1-.1zm-2.17.06L1.67 9.85l4.22-4.11 4.22 4.11-4.22 4.12z\"],\n \"error\": [\"M7.99-.01c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm1 13h-2v-2h2v2zm0-3h-2v-7h2v7z\"],\n \"euro\": [\"M6.52 3.18c.51-.27 1.12-.4 1.83-.4.48 0 .91.06 1.27.18.37.12.68.29.96.51.18.14.3.33.44.51l1.53-1.53c-.12-.11-.23-.22-.36-.32a5.61 5.61 0 00-1.74-.83c-.66-.2-1.36-.3-2.1-.3-.99 0-1.88.18-2.66.53-.79.35-1.45.82-2 1.41-.55.58-.96 1.27-1.26 2.06H2c-.55 0-1 .45-1 1s.45 1 1 1h.04c-.01.17-.04.33-.04.5 0 .17.03.33.04.5H2c-.55 0-1 .45-1 1s.45 1 1 1h.43c0 .01 0 .02.01.02a6.2 6.2 0 001.25 2.07 5.77 5.77 0 002 1.4c.78.34 1.67.51 2.66.51.81 0 1.54-.12 2.21-.36.67-.24 1.25-.59 1.75-1.03l.03-.03-1.55-1.33c-.01.01-.02.03-.03.04-.29.3-.63.53-1.02.69-.4.17-.85.25-1.37.25-.71 0-1.32-.13-1.83-.4s-.93-.62-1.25-1.07c-.19-.24-.34-.49-.46-.76H9c.55 0 1-.45 1-1s-.45-1-1-1H4.35c-.01-.17-.03-.33-.03-.5 0-.17.02-.34.03-.5H10c.55 0 1-.45 1-1s-.45-1-1-1H4.83c.13-.27.27-.52.44-.76.32-.44.74-.8 1.25-1.06zM14 8.98v0z\"],\n \"exchange\": [\"M1.99 5.99c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.89-2-2-2zm4.15 1.86a.495.495 0 10.7-.7L5.7 5.99h5.79c.28 0 .5-.22.5-.5s-.22-.5-.5-.5H5.7l1.15-1.15a.495.495 0 10-.7-.7l-2 2c-.1.09-.16.21-.16.35s.06.26.15.35l2 2.01zm7.85-1.86c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.89-2-2-2zM9.85 8.14a.533.533 0 00-.36-.15.495.495 0 00-.35.85l1.15 1.15h-5.8c-.28 0-.5.22-.5.5s.22.5.5.5h5.79l-1.15 1.15a.495.495 0 10.7.7l2-2c.09-.09.15-.22.15-.35s-.06-.26-.15-.35l-1.98-2z\"],\n \"exclude-row\": [\"M0 10a1.003 1.003 0 001.71.71L3 9.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L4.41 8 5.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L3 6.59l-1.29-1.3A1.003 1.003 0 00.29 6.71L1.59 8 .29 9.29C.11 9.47 0 9.72 0 10zm1-7h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 10H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm-1-7H9c-1.1 0-2 .9-2 2s.9 2 2 2h5c1.1 0 2-.9 2-2s-.9-2-2-2z\"],\n \"expand-all\": [\"M4 7c.28 0 .53-.11.71-.29L8 3.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4C8.53 1.11 8.28 1 8 1s-.53.11-.71.29l-4 4A1.003 1.003 0 004 7zm8 2c-.28 0-.53.11-.71.29L8 12.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0012 9z\"],\n \"export\": [\"M4 6c.28 0 .53-.11.71-.29L7 3.41V11c0 .55.45 1 1 1s1-.45 1-1V3.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4C8.53.11 8.28 0 8 0s-.53.11-.71.29l-4 4A1.003 1.003 0 004 6zm11 5c-.55 0-1 .45-1 1v2H2v-2c0-.55-.45-1-1-1s-1 .45-1 1v3c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1z\"],\n \"eye-off\": [\"M16 7.97v-.02-.01-.02-.02a.672.672 0 00-.17-.36c-.49-.63-1.07-1.2-1.65-1.72l-3.16 2.26a2.978 2.978 0 01-2.98 2.9c-.31 0-.6-.06-.88-.15L5.09 12.3c.44.19.9.36 1.37.47.97.23 1.94.24 2.92.05.88-.17 1.74-.54 2.53-.98 1.25-.7 2.39-1.67 3.38-2.75.18-.2.37-.41.53-.62.09-.1.15-.22.17-.36v-.02-.02-.01-.02-.03c.01-.02.01-.03.01-.04zm-.43-4.17c.25-.18.43-.46.43-.8 0-.55-.45-1-1-1-.22 0-.41.08-.57.2l-.01-.01-2.67 1.91c-.69-.38-1.41-.69-2.17-.87a6.8 6.8 0 00-2.91-.05c-.88.18-1.74.54-2.53.99-1.25.7-2.39 1.67-3.38 2.75-.18.2-.37.41-.53.62-.23.29-.23.63-.01.92.51.66 1.11 1.25 1.73 1.79.18.16.38.29.56.44l-2.09 1.5.01.01c-.25.18-.43.46-.43.8 0 .55.45 1 1 1 .22 0 .41-.08.57-.2l.01.01 14-10-.01-.01zm-10.41 5a3.03 3.03 0 01-.11-.8 2.99 2.99 0 012.99-2.98c.62 0 1.19.21 1.66.53L5.16 8.8z\"],\n \"eye-on\": [\"M10.29 6.7c.18.18.43.29.71.29s.53-.11.71-.29l4-4c.17-.18.29-.43.29-.7a1.003 1.003 0 00-1.71-.71L11 4.58 9.71 3.29A.997.997 0 009 3c-.55 0-1 .44-1 1a1 1 0 00.3.7l1.99 2zM16 7.96v-.02-.01-.02-.02a.64.64 0 00-.17-.36c-.3-.4-.65-.76-1-1.12l-1.7 1.7c-.55.55-1.3.88-2.13.88-.06 0-.11-.01-.17-.02C10.42 10.15 9.32 11 8.01 11A3.005 3.005 0 016.4 5.46c-.24-.43-.39-.93-.39-1.46 0-.26.04-.5.1-.74-.7.2-1.37.5-2.01.86-1.26.7-2.4 1.68-3.4 2.77-.18.21-.36.41-.53.63-.22.29-.22.64 0 .93.51.67 1.12 1.27 1.73 1.81 1.33 1.17 2.85 2.15 4.53 2.55.97.23 1.95.24 2.92.05.89-.18 1.74-.54 2.54-.99 1.25-.71 2.4-1.69 3.39-2.78.18-.2.37-.41.54-.63.09-.1.15-.23.17-.37v-.02-.02-.01-.02-.03c.01-.01.01-.02.01-.03zM8.01 9c.48 0 .87-.35.96-.81a.55.55 0 01-.07-.09l-.02.01L7.8 7.03c-.45.1-.79.48-.79.96 0 .56.45 1.01 1 1.01z\"],\n \"eye-open\": [\"M8.002 7.003a1.003 1.003 0 000 2.005 1.003 1.003 0 000-2.005zm7.988.972v-.02-.01-.02-.02a.675.675 0 00-.17-.36c-.509-.673-1.118-1.264-1.737-1.806-1.328-1.173-2.846-2.155-4.523-2.546a6.702 6.702 0 00-2.925-.06c-.889.18-1.738.541-2.546.992C2.84 4.837 1.692 5.81.694 6.902c-.18.211-.36.411-.53.632a.742.742 0 000 .932c.51.672 1.119 1.264 1.738 1.805 1.328 1.173 2.846 2.156 4.523 2.547.968.23 1.947.24 2.925.04.889-.18 1.738-.542 2.546-.993 1.248-.712 2.397-1.684 3.395-2.777.18-.2.37-.411.54-.632.09-.1.149-.23.169-.36v-.02-.02-.01-.02-.03c0-.01-.01-.01-.01-.02zm-7.988 3.038a2.998 2.998 0 01-2.995-3.008 2.998 2.998 0 012.995-3.008 2.998 2.998 0 012.996 3.008 2.998 2.998 0 01-2.996 3.008z\"],\n \"fast-backward\": [\"M14 3c-.24 0-.44.09-.62.23l-.01-.01L9 6.72V4c0-.55-.45-1-1-1-.24 0-.44.09-.62.23v-.01l-5 4 .01.01C2.16 7.41 2 7.68 2 8s.16.59.38.77v.01l5 4 .01-.01c.17.14.37.23.61.23.55 0 1-.45 1-1V9.28l4.38 3.5.01-.01c.17.14.37.23.61.23.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"fast-forward\": [\"M15 8c0-.32-.16-.59-.38-.77l.01-.01-5-4-.01.01A.987.987 0 009 3c-.55 0-1 .45-1 1v2.72l-4.38-3.5v.01A.987.987 0 003 3c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1 .24 0 .44-.09.62-.23l.01.01L8 9.28V12c0 .55.45 1 1 1 .24 0 .44-.09.62-.23l.01.01 5-4-.01-.01c.22-.18.38-.45.38-.77z\"],\n \"feed\": [\"M1.99 11.99c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.89-2-2-2zm1-4c-.55 0-1 .45-1 1s.45 1 1 1c1.66 0 3 1.34 3 3 0 .55.45 1 1 1s1-.45 1-1c0-2.76-2.24-5-5-5zm0-4c-.55 0-1 .45-1 1s.45 1 1 1c3.87 0 7 3.13 7 7 0 .55.45 1 1 1s1-.45 1-1a9 9 0 00-9-9zm0-4c-.55 0-1 .45-1 1s.45 1 1 1c6.08 0 11 4.92 11 11 0 .55.45 1 1 1s1-.45 1-1c0-7.18-5.82-13-13-13z\"],\n \"feed-subscribed\": [\"M3 2c1.06 0 2.08.16 3.06.45.13-.71.52-1.32 1.05-1.76C5.82.25 4.44 0 3 0c-.55 0-1 .45-1 1s.45 1 1 1zM2 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm8.32-6.33a.99.99 0 001.4 0l3.98-3.98c.19-.18.3-.42.3-.7 0-.55-.45-.99-1-.99-.28 0-.52.11-.7.29l-3.28 3.28-1.29-1.29a.99.99 0 00-.7-.29 1 1 0 00-1 .99c0 .27.11.52.29.7l2 1.99zm3.73.53l-.93.93-.02-.02c-.17.17-.35.33-.56.45C13.47 9.16 14 11.02 14 13c0 .55.45 1 1 1s1-.45 1-1c0-2.5-.73-4.82-1.95-6.8zM3 8c-.55 0-1 .45-1 1s.45 1 1 1c1.66 0 3 1.34 3 3 0 .55.45 1 1 1s1-.45 1-1c0-2.76-2.24-5-5-5zm5.91-.91l-.03.03-2-2 .03-.03c-.11-.11-.23-.2-.33-.33A8.9 8.9 0 003 4c-.55 0-1 .45-1 1s.45 1 1 1c3.87 0 7 3.13 7 7 0 .55.45 1 1 1s1-.45 1-1c0-1.87-.57-3.61-1.55-5.06-.61-.11-1.13-.42-1.54-.85z\"],\n \"film\": [\"M15 1h-5v2H6V1H1c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h5v-2h4v2h5c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM4 13H2v-2h2v2zm0-3H2V8h2v2zm0-3H2V5h2v2zm0-3H2V2h2v2zm6 6H6V5h4v5zm4 3h-2v-2h2v2zm0-3h-2V8h2v2zm0-3h-2V5h2v2zm0-3h-2V2h2v2z\"],\n \"filter\": [\"M13.99.99h-12a1.003 1.003 0 00-.71 1.71l4.71 4.71V14a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71V7.41L14.7 2.7a1.003 1.003 0 00-.71-1.71z\"],\n \"filter-keep\": [\"M15 10c-.28 0-.53.11-.71.29L12 12.59l-1.29-1.29A.965.965 0 0010 11a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0015 10zm-3-8c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L4 6.41V12a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71V6.41l3.71-3.71c.18-.17.29-.42.29-.7z\"],\n \"filter-list\": [\"M9 8c0 .55.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1h-5c-.55 0-1 .45-1 1zm3-6c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L4 6.41V12a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71V6.41l3.71-3.71c.18-.17.29-.42.29-.7zm3 8h-5c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm0 3h-5c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"filter-open\": [\"M15.707 10.293a1 1 0 010 1.414l-3 3c-.63.63-1.707.184-1.707-.707V8c0-.89 1.077-1.337 1.707-.707l3 3zM12 2c0 .28-.11.53-.29.7L8 6.41V10c0 .28-.11.53-.29.71l-2 2A1.003 1.003 0 014 12V6.41L.29 2.71A1.003 1.003 0 011 1h10c.55 0 1 .45 1 1z\"],\n \"filter-remove\": [\"M12 2c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L4 6.41V12a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71V6.41l3.71-3.71c.18-.17.29-.42.29-.7zm2.41 10l1.29-1.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L13 10.59 11.71 9.3A.965.965 0 0011 9a1.003 1.003 0 00-.71 1.71l1.3 1.29-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l1.29-1.3 1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L14.41 12z\"],\n \"flag\": [\"M2.99 2.99c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1s1-.45 1-1v-11c0-.55-.45-1-1-1zm0-3c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm2 3.03v7.23c2.07-2.11 5.92 1.75 9 0V3.02c-3 2.07-6.94-2.03-9 0z\"],\n \"flame\": [\"M9.217 0c0 1.368.368 2.462 1.104 3.282C12.774 5.197 14 7.385 14 9.846c0 2.735-1.472 4.786-4.415 6.154 2.165-2.4 1.84-3.385-.368-6.4-2.342 1.2-1.967 2-1.592 3.6-.786 0-1.5 0-1.875-.4 0 .547.898 2 1.464 3.2-2.943-.82-6.092-5.744-4.988-6.154.736-.273 1.594-.137 2.575.41C3.575 5.333 5.047 1.915 9.217 0z\"],\n \"flash\": [\"M4 8c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1h2c.55 0 1-.45 1-1zm4-4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1S7 .45 7 1v2c0 .55.45 1 1 1zM3.79 5.21a1.003 1.003 0 001.42-1.42l-1.5-1.5a1.003 1.003 0 00-1.42 1.42l1.5 1.5zm.71 5.29c-.28 0-.53.11-.71.29l-1.5 1.5a1.003 1.003 0 001.42 1.42l1.5-1.5a1.003 1.003 0 00-.71-1.71zm7-5c.28 0 .53-.11.71-.29l1.5-1.5a1.003 1.003 0 00-1.42-1.42l-1.5 1.5a1.003 1.003 0 00.71 1.71zm.71 5.29a1.003 1.003 0 00-1.42 1.42l1.5 1.5a1.003 1.003 0 001.42-1.42l-1.5-1.5zM15 7h-2c-.55 0-1 .45-1 1s.45 1 1 1h2c.55 0 1-.45 1-1s-.45-1-1-1zM8 5C6.34 5 5 6.34 5 8s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0 3c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1z\"],\n \"floppy-disk\": [\"M15.71 2.29l-2-2A.997.997 0 0013 0h-1v6H4V0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V3c0-.28-.11-.53-.29-.71zM14 15H2V9c0-.55.45-1 1-1h10c.55 0 1 .45 1 1v6zM11 1H9v4h2V1z\"],\n \"flow-branch\": [\"M10.643 6.595c.22.418.344.894.344 1.399 0 .439-.094.855-.263 1.231l3.265 3.462-.002-1.75a.973.973 0 01.314-.68.99.99 0 011.388.048c.186.2.316.46.3.715l-.009 4.03a.959.959 0 01-.3.68.972.972 0 01-.698.266l-4.053.002a.97.97 0 01-.679-.314 1.031 1.031 0 01.05-1.42.972.972 0 01.698-.266l1.7-.001-3.305-3.35a2.998 2.998 0 01-4.228-1.653H.999a1 1 0 010-2h4.166a2.998 2.998 0 014.06-1.735l3.449-3.268-1.745.002a.979.979 0 01-.631-1.692c.199-.186.459-.316.713-.3l4.025.009c.247.008.493.1.679.3.186.2.274.451.265.7l.002 4.046a.972.972 0 01-.313.68 1.03 1.03 0 01-1.42-.05.973.973 0 01-.266-.7V3.295l-3.34 3.301z\"],\n \"flow-end\": [\"M9.702 7.31c.176.176.293.41.293.684a.976.976 0 01-.283.695c-1.888 1.91-2.892 2.918-3.011 3.027-.179.164-.42.284-.693.284a.995.995 0 01-.997-.985c0-.274.112-.541.292-.72.12-.12.624-.551 1.514-1.293H.98c-.536 0-.975-.47-.975-1.008 0-.537.439-.996.975-.996h5.837c-.895-.752-1.4-1.187-1.514-1.304a1.03 1.03 0 01-.292-.705C5.01 4.45 5.464 4 6 4c.272 0 .52.108.695.294A535.7 535.7 0 009.702 7.31zM13 11.002c-1.657 0-3-1.347-3-3.008a3.004 3.004 0 013-3.007c1.657 0 3 1.346 3 3.007a3.004 3.004 0 01-3 3.008z\"],\n \"flow-linear\": [\"M4.16 9.002H.977C.44 9.002 0 8.532 0 7.994c0-.537.44-.99.978-.99h3.18A3.01 3.01 0 016.995 5a3.01 3.01 0 012.839 2.004h2.98c-.898-.756-1.404-1.193-1.518-1.31a1.03 1.03 0 01-.293-.705c0-.538.454-.989.992-.989.274 0 .521.108.697.294.118.124 1.122 1.13 3.014 3.016a.96.96 0 01.293.684.975.975 0 01-.284.695l-3.018 3.027a.974.974 0 01-.694.284c-.553 0-1-.447-1-.985 0-.274.117-.545.293-.72l1.518-1.293H9.833A3.01 3.01 0 016.996 11 3.01 3.01 0 014.16 9.002z\"],\n \"flow-review\": [\"M5.175 7.004a3.003 3.003 0 012.83-2.001c1.305 0 2.416.835 2.83 2.001h1.985c-.896-.756-1.401-1.193-1.515-1.31a1.03 1.03 0 01-.292-.705c0-.538.453-.989.99-.989a.95.95 0 01.696.294c.117.124 1.12 1.13 3.008 3.016.176.176.293.41.293.684a.976.976 0 01-.283.695l-3.013 3.027a.995.995 0 01-1.691-.702c0-.273.116-.544.292-.72l1.515-1.292h-1.98a3.003 3.003 0 01-2.835 2.016A3.003 3.003 0 015.17 9.002H3.18l1.515 1.292c.176.176.292.447.292.72a.995.995 0 01-1.69.702L.282 8.69A.976.976 0 010 7.994c0-.273.117-.508.293-.684A535.858 535.858 0 003.3 4.294.95.95 0 013.997 4c.537 0 .99.45.99.989 0 .273-.12.528-.292.705-.114.117-.62.554-1.515 1.31h1.995z\"],\n \"flow-review-branch\": [\"M10.392 10.647A3.002 3.002 0 016.16 8.995H3.37l1.338 1.318c.172.178.287.41.282.683-.01.536-.524.995-.99.995-.465 0-.63-.187-.747-.294L.281 8.682A.956.956 0 010 7.994a.971.971 0 01.294-.687l3.01-3.028a.973.973 0 01.697-.27c.536.01.998.485.989 1.021a.971.971 0 01-.295.687L3.37 6.997h2.79a3.002 3.002 0 014.106-1.716l2.416-2.277-1.732.004a.99.99 0 01-.679-.329.978.978 0 01.05-1.378c.199-.186.459-.315.714-.3l4.012.005c.248.009.493.1.68.3.185.2.273.45.264.699L15.99 6.05a.973.973 0 01-.314.679 1.03 1.03 0 01-1.421-.048.971.971 0 01-.265-.699V4.29L11.65 6.602c.219.416.343.89.343 1.394 0 .451-.1.88-.279 1.263L14 11.68l-.004-1.73a.982.982 0 01.323-.68.978.978 0 011.378.049c.187.2.316.46.3.714l-.004 4.011a.983.983 0 01-.3.691.972.972 0 01-.7.265l-4.046-.001a.987.987 0 01-.679-.326 1.017 1.017 0 01.048-1.41.972.972 0 01.699-.265h1.693l-2.315-2.35z\"],\n \"flows\": [\"M13.5 6a2.5 2.5 0 00-2.45 2h-1.3L5.74 4l-.75.75L8.25 8h-3.3a2.5 2.5 0 100 1h3.3l-3.26 3.25.75.75 4.01-4h1.3a2.5 2.5 0 102.45-3z\"],\n \"folder-close\": [\"M-.01 14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V7h-16v7zm15-10H7.41L5.7 2.3a.965.965 0 00-.71-.3h-4c-.55 0-1 .45-1 1v3h16V5c0-.55-.45-1-1-1z\"],\n \"folder-new\": [\"M10.165 7a3.003 3.003 0 002.827 2 3.003 3.003 0 002.827-2H16v7c0 .55-.45 1-1 1H1.01c-.55 0-1-.45-1-1V7h10.155zM8.76 6H0V3c0-.55.45-1 1-1h1.998c.28 0 .53.11.71.29L5.417 4h2.578c0 .768.29 1.469.765 2zm6.23-3c.55 0 1 .45 1 1s-.45 1-1 1h-.999v1c0 .55-.45 1-1 1-.549 0-.998-.45-.998-1V5h-1c-.55 0-1-.45-1-1s.45-1 1-1h1V2c0-.55.45-1 .999-1 .55 0 1 .45 1 1v1h.999z\"],\n \"folder-open\": [\"M2.06 6.69c.14-.4.5-.69.94-.69h11V5c0-.55-.45-1-1-1H6.41l-1.7-1.71A.997.997 0 004 2H1c-.55 0-1 .45-1 1v9.84l2.05-6.15h.01zM16 8c0-.55-.45-1-1-1H4a.99.99 0 00-.94.69l-2 6c-.04.09-.06.2-.06.31 0 .55.45 1 1 1h11c.44 0 .81-.29.94-.69l2-6c.04-.09.06-.2.06-.31z\"],\n \"folder-shared\": [\"M8.76 5.98c-.47-.53-.77-1.22-.77-1.99h-.58L5.7 2.29a.965.965 0 00-.71-.3h-4c-.55 0-1 .45-1 1v3h8.76l.01-.01zm6.23-2.99h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.3a.99.99 0 00-.29.7 1.003 1.003 0 001.71.71l3.29-3.29V8c0 .55.45 1 1 1s1-.45 1-1V4c0-.56-.45-1.01-1-1.01zm-1.98 7.23l-.9.9-.01-.01c-.54.55-1.28.89-2.11.89-1.66 0-3-1.34-3-3 0-.77.3-1.47.78-2H-.01v7c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3.18c-.31.11-.65.18-1 .18-.76-.01-1.45-.31-1.98-.78z\"],\n \"folder-shared-open\": [\"M13.02 10.22l-.9.9-.01-.01c-.54.55-1.28.89-2.11.89-1.66 0-3-1.34-3-3 0-.77.3-1.47.78-2H4a.99.99 0 00-.94.69l-2 6c-.04.09-.06.2-.06.31 0 .55.45 1 1 1h11c.44 0 .81-.29.94-.69l1.11-3.32c-.01 0-.03.01-.05.01-.77 0-1.45-.3-1.98-.78zM2.06 6.69c.14-.4.5-.69.94-.69h5.76l.01-.01C8.3 5.46 8 4.77 8 4H6.41l-1.7-1.71A.997.997 0 004 2H1c-.55 0-1 .45-1 1v9.84l2.05-6.15h.01zM15 3h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.29a1.003 1.003 0 001.42 1.42L14 6.41V8c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"follower\": [\"M9.37 12.69c-1.2-.53-1.04-.85-1.08-1.29-.01-.06-.01-.12-.01-.19.41-.37.75-.87.97-1.44 0 0 .01-.03.01-.04.05-.13.09-.26.12-.39.28-.06.44-.36.5-.63.06-.11.19-.39.16-.7-.04-.4-.2-.59-.38-.67v-.07c0-.52-.05-1.26-.14-1.74a2.72 2.72 0 00-.09-.43 3.02 3.02 0 00-1.04-1.51C7.87 3.2 7.15 3 6.5 3c-.64 0-1.36.2-1.87.59-.5.38-.87.92-1.05 1.51-.04.13-.07.27-.09.4-.09.49-.14 1.24-.14 1.75v.06c-.19.07-.36.26-.4.68-.03.31.1.59.16.7.06.28.23.59.51.64.04.14.08.27.13.39 0 .01.01.02.01.02v.01c.22.59.57 1.1.99 1.46 0 .06-.01.12-.01.17-.04.44.08.76-1.12 1.29-1.2.53-3.01 1.1-3.38 1.95C-.13 15.5.02 16 .02 16h12.96s.15-.5-.22-1.36c-.38-.85-2.19-1.42-3.39-1.95zm6.33-10.4l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H9.99c-.55 0-1 .45-1 1s.45 1 1 1h2.58l-.29.29a1.003 1.003 0 001.42 1.42l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"following\": [\"M9.37 12.69c-1.2-.53-1.04-.85-1.08-1.29-.01-.06-.01-.12-.01-.19.41-.37.75-.87.97-1.44 0 0 .01-.03.01-.04.05-.13.09-.26.12-.39.28-.06.44-.36.5-.63.06-.11.19-.39.16-.7-.04-.4-.2-.59-.38-.67v-.07c0-.52-.05-1.26-.14-1.74a2.72 2.72 0 00-.09-.43 3.02 3.02 0 00-1.04-1.51C7.87 3.2 7.15 3 6.5 3c-.64 0-1.36.2-1.87.59-.5.38-.87.92-1.05 1.51-.04.13-.07.27-.09.4-.09.49-.14 1.24-.14 1.75v.06c-.19.07-.36.26-.4.68-.03.31.1.59.16.7.06.28.23.59.51.64.04.14.08.27.13.39 0 .01.01.02.01.02v.01c.22.59.57 1.1.99 1.46 0 .06-.01.12-.01.17-.04.44.08.76-1.12 1.29-1.2.53-3.01 1.1-3.38 1.95C-.13 15.5.02 16 .02 16h12.96s.15-.5-.22-1.36c-.38-.85-2.19-1.42-3.39-1.95zM14.99 2h-2.58l.29-.29A1.003 1.003 0 0011.28.29l-2 2c-.17.18-.29.43-.29.71 0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L12.41 4h2.58c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"font\": [\"M13.93 14.67L8.94.67h-.01C8.79.28 8.43 0 8 0s-.79.28-.93.67h-.01l-5 14h.01c-.04.1-.07.21-.07.33 0 .55.45 1 1 1 .43 0 .79-.28.93-.67h.01L5.49 11h5.02l1.55 4.34h.01c.14.38.5.66.93.66.55 0 1-.45 1-1 0-.12-.03-.23-.07-.33zM6.2 9L8 3.97 9.8 9H6.2z\"],\n \"fork\": [\"M13.7 9.29a1.003 1.003 0 00-1.42 1.42l.29.29H11.4l-5-5h6.17l-.29.29a1.003 1.003 0 001.42 1.42l2-2c.18-.18.29-.43.29-.71s-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l.29.29H.99c-.55 0-1 .45-1 1s.45 1 1 1h2.59l6.71 6.71c.18.18.43.29.71.29h1.59l-.29.29a1.003 1.003 0 001.42 1.42l2-2c.18-.18.29-.43.29-.71s-.11-.53-.29-.71l-2.02-2z\"],\n \"form\": [\"M2 11v2h2v-2H2zM1 9h4c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1zm9-6h5c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1zM6 1a1.003 1.003 0 01.71 1.71l-3 4C3.53 6.89 3.28 7 3 7s-.53-.11-.71-.29l-2-2a1.003 1.003 0 011.42-1.42L3 4.59l2.29-3.3C5.47 1.11 5.72 1 6 1zm4 10h5c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1z\"],\n \"full-circle\": [\"M8 0a8 8 0 100 16A8 8 0 108 0z\"],\n \"full-stacked-chart\": [\"M13 12h1c.55 0 1-.45 1-1V8h-3v3c0 .55.45 1 1 1zM10 2c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1v3h3V2zm0 4H7v3h3V6zm5-4c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v2h3V2zm0 3h-3v2h3V5zM5 5H2v3h3V5zm-2 7h1c.55 0 1-.45 1-1V9H2v2c0 .55.45 1 1 1zm12 1H2c-.55 0-1 .45-1 1s.45 1 1 1h13c.55 0 1-.45 1-1s-.45-1-1-1zM5 2c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v2h3V2zm3 10h1c.55 0 1-.45 1-1v-1H7v1c0 .55.45 1 1 1z\"],\n \"fullscreen\": [\"M3.41 2H5c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v4c0 .55.45 1 1 1s1-.45 1-1V3.41L5.29 6.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L3.41 2zM6 9c-.28 0-.53.11-.71.29L2 12.59V11c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.41l3.29-3.29c.19-.18.3-.43.3-.71 0-.55-.45-1-1-1zm9 1c-.55 0-1 .45-1 1v1.59L10.71 9.3A.965.965 0 0010 9a1.003 1.003 0 00-.71 1.71l3.3 3.29H11c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm0-10h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.29a1.003 1.003 0 001.42 1.42L14 3.41V5c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"function\": [\"M8.12 4.74H6.98c.33-1.29.75-2.24 1.28-2.84.33-.37.64-.56.95-.56.06 0 .11.02.15.05.04.04.06.09.06.15 0 .05-.04.15-.13.29-.09.14-.13.28-.13.4 0 .18.07.33.2.46.14.13.31.19.52.19.22 0 .41-.08.56-.23.15-.16.23-.37.23-.63 0-.3-.11-.55-.34-.74C10.1 1.09 9.74 1 9.24 1c-.78 0-1.49.22-2.12.67-.64.45-1.24 1.2-1.81 2.23-.2.36-.38.59-.56.69-.18.1-.46.15-.85.15l-.26.9h1.08l-1.59 6.12c-.27 1.01-.44 1.63-.54 1.86-.14.34-.34.63-.62.87-.11.1-.24.15-.4.15a.15.15 0 01-.11-.04l-.04-.05c0-.03.04-.08.12-.16.08-.08.12-.2.12-.36 0-.18-.06-.33-.19-.44-.12-.12-.3-.18-.54-.18-.28 0-.51.08-.68.23-.16.14-.25.32-.25.53 0 .22.1.42.31.59.21.17.53.25.97.25.7 0 1.32-.18 1.87-.54.54-.36 1.02-.92 1.42-1.67.41-.75.82-1.96 1.25-3.63l.91-3.54h1.1l.29-.89zm5.43 1.52c.2-.15.41-.23.62-.23.08 0 .23.03.45.09s.41.09.57.09c.23 0 .42-.08.57-.23.16-.16.24-.36.24-.61 0-.26-.08-.47-.23-.62-.15-.15-.37-.23-.66-.23-.25 0-.5.06-.72.18-.23.12-.51.38-.86.78-.26.3-.64.81-1.15 1.55-.2-.91-.55-1.75-1.05-2.51l-2.72.46-.06.29c.2-.04.37-.06.51-.06.27 0 .49.11.67.34.28.36.67 1.45 1.17 3.26-.39.52-.66.85-.8 1.01-.24.26-.44.42-.59.5-.12.06-.25.09-.41.09-.11 0-.3-.06-.56-.18-.18-.08-.34-.12-.48-.12-.27 0-.48.08-.66.25-.17.17-.26.38-.26.64 0 .25.08.44.24.6.16.15.37.23.64.23.26 0 .5-.05.73-.16.23-.11.52-.34.86-.69.35-.35.82-.9 1.43-1.67.23.73.44 1.25.61 1.58s.37.57.59.71c.22.15.5.22.83.22.32 0 .65-.11.98-.34.44-.3.88-.81 1.34-1.53l-.26-.15c-.31.43-.54.7-.69.8-.1.07-.22.1-.35.1-.16 0-.32-.1-.48-.3-.27-.34-.62-1.27-1.06-2.8.4-.68.73-1.13 1-1.34z\"],\n \"gantt-chart\": [\"M10 10c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1zM6 7c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1zm9 5H2V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM4 5h3c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"geolocation\": [\"M-.01 6.66l7.34 2 2 7.33 6.66-16z\"],\n \"geosearch\": [\"M8.82 12.4h.66c.23 0 .36-.17.36-.4v-1.48l.19-.18c-.27.03-.55.06-.83.06-.28 0-.56-.03-.84-.07.02.04.05.08.07.13V12c0 .23.15.4.39.4zM6.4 15.1A5.51 5.51 0 01.9 9.6c0-.49.06-.98.18-1.43.03 0 .05-.01.08-.01h.08v.44c0 .19.17.34.36.34.03 0 .07-.01.1-.01l.71.7c.07.07.19.07.26 0s.07-.19 0-.26l-.7-.72c0-.02.03-.03.03-.05v-.11c0-.15.08-.2.23-.33h.42c.08 0 .15-.01.22-.04h.02c.02-.02.03-.02.04-.04.01-.01.01-.01.02-.01l.02-.01.9-.9c-.13-.26-.24-.52-.34-.8h-.5v-.43c0-.01.05.05.04-.08h.31c-.03-.13-.06-.26-.08-.39h-.57c.16-.12.34-.24.51-.36-.02-.23-.04-.46-.04-.7 0-.12.01-.23.02-.34A6.385 6.385 0 000 9.6C0 13.13 2.87 16 6.4 16c3.1 0 5.67-2.22 6.26-5.15l-.78-.88c-.21 2.85-2.58 5.13-5.48 5.13zm-1.7-2.93v-.28h.12c.23 0 .39-.19.39-.42v-.54s.01-.01 0-.01L3.77 9.45h-.62c-.23 0-.38.19-.38.42v1.6c0 .23.14.42.38.42h.26v1.61c0 .23.22.41.45.41s.45-.18.45-.41v-.97H4.3c.24 0 .4-.13.4-.36zm11.07-2.34l-2.94-2.94c.11-.17.21-.34.3-.52.01-.03.03-.06.04-.09.08-.18.16-.36.22-.55v-.01c.06-.19.1-.38.14-.58.01-.05.01-.09.02-.14.03-.2.05-.4.05-.61a4.4 4.4 0 00-4.4-4.4C6.77 0 4.8 1.97 4.8 4.4s1.97 4.4 4.4 4.4c.21 0 .41-.02.61-.05.04 0 .09-.01.14-.02.2-.03.39-.08.58-.14h.01c.19-.06.37-.14.55-.22.03-.01.06-.03.09-.04.18-.09.35-.19.52-.3l2.94 2.94a.8.8 0 00.57.23c.44 0 .8-.36.8-.8a.895.895 0 00-.24-.57zM9.2 7.6C7.43 7.6 6 6.17 6 4.4c0-1.77 1.43-3.2 3.2-3.2s3.2 1.43 3.2 3.2c0 1.77-1.43 3.2-3.2 3.2zm1.54 4.26v-.52c0-.09-.1-.17-.19-.17s-.19.07-.19.17v.52c0 .09.1.17.19.17s.19-.07.19-.17z\"],\n \"git-branch\": [\"M12 1c-1.66 0-3 1.34-3 3 0 1.25.76 2.32 1.85 2.77A2.02 2.02 0 019 8H7c-.73 0-1.41.2-2 .55V5.82C6.16 5.4 7 4.3 7 3c0-1.66-1.34-3-3-3S1 1.34 1 3c0 1.3.84 2.4 2 2.82v4.37c-1.16.4-2 1.51-2 2.81 0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.04-.53-1.95-1.32-2.49.35-.31.81-.51 1.32-.51h2c1.92 0 3.52-1.35 3.91-3.15A2.996 2.996 0 0012 1zM4 2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 12c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm8-9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"git-commit\": [\"M15 7h-3.14c-.45-1.72-2-3-3.86-3S4.59 5.28 4.14 7H1c-.55 0-1 .45-1 1s.45 1 1 1h3.14c.45 1.72 2 3 3.86 3s3.41-1.28 3.86-3H15c.55 0 1-.45 1-1s-.45-1-1-1zm-7 3c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"],\n \"git-merge\": [\"M12 6c-1.3 0-2.4.84-2.82 2H9c-1.62 0-3-.96-3.63-2.34C6.33 5.16 7 4.16 7 3c0-1.66-1.34-3-3-3S1 1.34 1 3c0 1.3.84 2.4 2 2.81v4.37C1.84 10.6 1 11.7 1 13c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.3-.84-2.4-2-2.82V8.43A5.89 5.89 0 009 10h.18A2.996 2.996 0 0015 9c0-1.66-1.34-3-3-3zm-8 8c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM4 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm8 6c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"git-new-branch\": [\"M14 2h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1zm-3.18 4.8C10.51 7.51 9.82 8 9 8H7c-.73 0-1.41.2-2 .55V5.82C6.16 5.4 7 4.3 7 3c0-1.66-1.34-3-3-3S1 1.34 1 3c0 1.3.84 2.4 2 2.82v4.37c-1.16.4-2 1.51-2 2.81 0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.04-.53-1.95-1.32-2.49.35-.31.81-.51 1.32-.51h2c1.9 0 3.49-1.33 3.89-3.11-.29.07-.58.11-.89.11-.41 0-.8-.08-1.18-.2zM4 2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 12c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"git-pull\": [\"M3 1C1.34 1 0 2.34 0 4c0 1.3.84 2.4 2 2.82v3.37C.84 10.6 0 11.7 0 13c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.3-.84-2.4-2-2.82V6.82C5.16 6.4 6 5.3 6 4c0-1.66-1.34-3-3-3zm0 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm11 5.18V6c0-1.66-1.34-3-3-3H9.41l1.29-1.29c.19-.18.3-.43.3-.71A1.003 1.003 0 009.29.29l-3 3C6.11 3.47 6 3.72 6 4c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L9.41 5H11c.55 0 1 .45 1 1v4.18A2.996 2.996 0 0013 16c1.66 0 3-1.34 3-3 0-1.3-.84-2.4-2-2.82zM13 14c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"git-push\": [\"M4 6h1V5H4v1zm9 3c0-.28-.11-.53-.29-.71l-3-3C9.53 5.11 9.28 5 9 5s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L8 8.41V15c0 .55.45 1 1 1s1-.45 1-1V8.41l1.29 1.29c.18.19.43.3.71.3.55 0 1-.45 1-1zM5 3H4v1h1V3zm10-3H1C.45 0 0 .45 0 1v13c0 .55.45 1 1 1h5v-2H2v-1h4v-1H3V2h11v9h-2v1h2v1h-2v2h3c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"git-repo\": [\"M5 9H4v1h1V9zm10-9H1C.45 0 0 .45 0 1v13c0 .55.45 1 1 1h3v1l2-1 2 1v-1h7c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM4 13H2v-1h2v1zm10 0H8v-1h6v1zm0-2H3V2h11v9zM5 3H4v1h1V3zm0 4H4v1h1V7zm0-2H4v1h1V5z\"],\n \"glass\": [\"M2 0v4c0 2.97 2.16 5.43 5 5.91V14H5c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1H9V9.91c2.84-.48 5-2.94 5-5.91V0H2z\"],\n \"globe\": [\"M4.45 7.83c-.26 0-.41.21-.41.46v1.75c0 .26.16.46.41.46h.29v1.77c0 .25.24.45.49.45s.49-.2.49-.45V11.2h-.01c.26 0 .44-.14.44-.4v-.3h.14c.26 0 .43-.2.43-.46v-.59s.01-.01 0-.01l-1.58-1.6h-.69zM8.51 3.9h.22c.06 0 .12-.01.12-.07 0-.06-.05-.07-.12-.07h-.22c-.06 0-.12.01-.12.07.01.06.06.07.12.07zm-2.33-.05c.07-.07.07-.19 0-.26l-.5-.5a.187.187 0 00-.26 0c-.07.07-.07.19 0 .26l.5.5c.07.07.19.07.26 0zm3.06.89c.07 0 .14-.06.14-.12v-.31c0-.07-.07-.12-.14-.12s-.14.06-.14.12v.31c0 .07.07.12.14.12zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-.55.1-1.07.23-1.57h.11v.47c0 .2.18.37.39.37.03 0 .08-.01.11-.02l.78.77c.08.08.2.08.28 0 .08-.08.08-.2 0-.28l-.75-.78c0-.02.04-.04.04-.06v-.12c0-.16.09-.22.25-.36h.46c.09 0 .17-.01.24-.05h.02c.02-.01.03-.02.05-.03.01-.01.01-.01.02-.01l.02-.02 1.59-1.58c.18-.18.18-.46 0-.64s-.47-.15-.65.03l-.3.34h-.57v-.48c0-.01.05.05.05-.09h.64c.12 0 .22-.09.22-.21s-.1-.21-.22-.21H4.1c.18-.15.34-.31.54-.44l.01-.01c.21-.14.45-.25.68-.37.15-.07.29-.15.44-.21.17-.07.35-.11.53-.17.18-.05.35-.12.53-.16a6.05 6.05 0 013.47.35c.05.02.1.05.16.08.25.11.48.24.71.39.25.16.49.34.71.55H10.6s0-.03-.01-.03c-.04 0-.09 0-.13.03l-.51.51a.17.17 0 000 .23c.06.06.17.06.23 0l.42-.44.01-.02h.25c0 .14-.07.09-.07.12v.07c0 .22-.15.37-.36.37h-.38c-.19 0-.38.21-.38.4v.17h-.1c-.12 0-.2.06-.2.18v.25h-.23c-.17 0-.3.11-.3.28 0 .17.13.26.3.26.07 0 .14.03.19-.11l.04.01.49-.46h.17l.39.37c.03.03.08.02.12-.01.03-.03.03-.12 0-.15l-.32-.35h.23l.09.12c.18.18.48.17.66-.01l.09-.1h.4c.02 0 .08.05.08.05v.24l-.05-.01h-.36c-.11 0-.21.1-.21.21 0 .11.09.21.21.21h.41v.15c-.14.21-.24.42-.45.42h-.94v-.01l-.44-.44a.47.47 0 00-.66 0l-.42.43v.01H8.6c-.26 0-.49.21-.49.46v.92c0 .26.23.45.49.45h.9c.34.14.57.35.72.69v1.68c0 .26.17.44.42.44h.72c.26 0 .4-.18.4-.44V9l.89-.86.03-.02.02-.01h.03c.07-.08.15-.19.15-.31v-.91c0-.18-.16-.32-.31-.46H13c.01.28.21.42.46.42h.42c.08.37.12.76.12 1.15 0 3.31-2.69 6-6 6zm4.54-4.27c-.1 0-.21.08-.21.18v.57c0 .1.11.18.21.18.1 0 .21-.08.21-.18v-.57c0-.1-.11-.18-.21-.18zM8.37 3.19c0-.25-.2-.42-.46-.42h-.54c-.25 0-.42.18-.42.43 0 .03-.1.04.05.08v.47c0 .15.06.27.21.27s.21-.12.21-.27v-.14h.5c.24 0 .45-.16.45-.42z\"],\n \"globe-network\": [\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm5.17 5h-2.44c-.21-1.11-.51-2.03-.91-2.69 1.43.46 2.61 1.43 3.35 2.69zM10 8c0 .73-.05 1.39-.12 2H6.12C6.05 9.39 6 8.73 6 8s.05-1.39.12-2h3.76c.07.61.12 1.27.12 2zM8 2c.67 0 1.36 1.1 1.73 3H6.27C6.64 3.1 7.33 2 8 2zm-1.82.31c-.4.66-.71 1.58-.91 2.69H2.83a6.025 6.025 0 013.35-2.69zM2 8c0-.7.13-1.37.35-2h2.76C5.04 6.62 5 7.28 5 8s.04 1.38.11 2H2.35C2.13 9.37 2 8.7 2 8zm.83 3h2.44c.21 1.11.51 2.03.91 2.69A6.025 6.025 0 012.83 11zM8 14c-.67 0-1.36-1.1-1.73-3h3.46c-.37 1.9-1.06 3-1.73 3zm1.82-.31c.4-.66.7-1.58.91-2.69h2.44a6.025 6.025 0 01-3.35 2.69zM13.65 10h-2.76c.07-.62.11-1.28.11-2s-.04-1.38-.11-2h2.76c.22.63.35 1.3.35 2s-.13 1.37-.35 2z\"],\n \"graph\": [\"M14 3c-1.06 0-1.92.83-1.99 1.88l-1.93.97A2.95 2.95 0 008 5c-.56 0-1.08.16-1.52.43L3.97 3.34C3.98 3.23 4 3.12 4 3c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.24 0 .47-.05.68-.13l2.51 2.09C5.08 7.29 5 7.63 5 8c0 .96.46 1.81 1.16 2.35l-.56 1.69c-.91.19-1.6.99-1.6 1.96 0 1.1.9 2 2 2s2-.9 2-2c0-.51-.2-.97-.51-1.32l.56-1.69A2.99 2.99 0 0011 8c0-.12-.02-.24-.04-.36l1.94-.97c.32.21.69.33 1.1.33 1.1 0 2-.9 2-2s-.9-2-2-2z\"],\n \"graph-remove\": [\"M12.89 8.11l-.01.01-.38-.38-.38.38-.02-.02c-.54.55-1.27.9-2.1.9-1.66 0-3-1.34-3-3 0-.83.35-1.56.9-2.1l-.02-.02.38-.38-.38-.38.01-.01C7.35 2.57 7 1.83 7 1c0-.34.07-.65.17-.96A8.004 8.004 0 000 8c0 4.42 3.58 8 8 8 4.14 0 7.54-3.14 7.96-7.17-.31.1-.62.17-.96.17-.83 0-1.57-.35-2.11-.89zm1.02-4.61l1.79-1.79c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-1.79 1.8L10.71.3A.965.965 0 0010 0a1.003 1.003 0 00-.71 1.71l1.79 1.79-1.79 1.79a1.003 1.003 0 001.42 1.42l1.79-1.79 1.79 1.79a1.003 1.003 0 001.42-1.42l-1.8-1.79z\"],\n \"greater-than\": [\"M2.713 5.958a1 1 0 01.574-1.916l10 3c.95.285.95 1.63 0 1.916l-10 3a1 1 0 01-.574-1.916L9.52 8 2.713 5.958z\"],\n \"greater-than-or-equal-to\": [\"M2.713 3.958a1 1 0 01.574-1.916l10 3c.95.285.95 1.63 0 1.916l-10 3a1 1 0 01-.574-1.916L9.52 6 2.713 3.958zM3 12h10a1 1 0 010 2H3a1 1 0 010-2z\"],\n \"grid\": [\"M15 9c.55 0 1-.45 1-1s-.45-1-1-1h-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1H9V1c0-.55-.45-1-1-1S7 .45 7 1v1H4V1c0-.55-.45-1-1-1S2 .45 2 1v1H1c-.55 0-1 .45-1 1s.45 1 1 1h1v3H1c-.55 0-1 .45-1 1s.45 1 1 1h1v3H1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1v-1h3v1c0 .55.45 1 1 1s1-.45 1-1v-1h3v1c0 .55.45 1 1 1s1-.45 1-1v-1h1c.55 0 1-.45 1-1s-.45-1-1-1h-1V9h1zm-8 3H4V9h3v3zm0-5H4V4h3v3zm5 5H9V9h3v3zm0-5H9V4h3v3z\"],\n \"grid-view\": [\"M0 1v6h7V0H1C.45 0 0 .45 0 1zm0 14c0 .55.45 1 1 1h6V9H0v6zM15 0H9v7h7V1c0-.55-.45-1-1-1zM9 16h6c.55 0 1-.45 1-1V9H9v7z\"],\n \"group-objects\": [\"M5 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6-3H5C2.24 3 0 5.24 0 8s2.24 5 5 5h6c2.76 0 5-2.24 5-5s-2.24-5-5-5zm0 9H5c-2.21 0-4-1.79-4-4s1.79-4 4-4h6c2.21 0 4 1.79 4 4s-1.79 4-4 4zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"grouped-bar-chart\": [\"M10 12c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1s-1 .45-1 1v8c0 .55.45 1 1 1zm3 0c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55.45 1 1 1zm2 1H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm-9-1c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1s-1 .45-1 1v3c0 .55.45 1 1 1zm-3 0c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1v9c0 .55.45 1 1 1z\"],\n \"hand\": [\"M15 5c0-.55-.45-1-1-1-.41 0-.76.24-.91.59v.01s0 .01-.01.01L11.57 8h-.36l.78-4.84C12 3.11 12 3.05 12 3a1 1 0 00-1.99-.16v.01L9.18 8H9V1c0-.55-.45-1-1-1S7 .45 7 1v7h-.09l-.93-5.18A1 1 0 005 2c-.55 0-1 .45-1 1 0 .05 0 .11.01.16L5.26 11h-.04L2.83 7.44C2.65 7.18 2.35 7 2 7c-.55 0-1 .45-1 1 0 .17.04.33.12.47l3 5.69h.01v.01A5.002 5.002 0 0013 11v-.59l1.93-5.05c.05-.11.07-.23.07-.36z\"],\n \"hand-down\": [\"M14.72 7.87c-1.54-.67-2.99-2.68-3.7-3.95C10.11 1.95 9.93 0 6.14 0 4.05 0 2.71.61 1.92 2.12 1.27 3.36 1 5.21 1 7.83v.79c0 .65.6 1.18 1.35 1.18.34 0 .64-.11.88-.29.17.48.68.84 1.29.84.41 0 .78-.16 1.03-.42.23.37.67.63 1.19.63.57 0 1.05-.31 1.25-.74l.01.63v4.05c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V7.9c.58.41 1.55 1.21 2.47 1.29 1.57.14 1.82-1.07 1.25-1.32z\"],\n \"hand-left\": [\"M12.08 4.97c-1.26-.71-3.27-2.15-3.95-3.7C7.88.7 6.67.96 6.81 2.52c.09.93.89 1.9 1.3 2.48H1.5C.67 5 0 5.67 0 6.5S.67 8 1.5 8h4.05l.63.01c-.44.2-.75.69-.75 1.25 0 .52.26.96.63 1.19-.26.25-.42.61-.42 1.03 0 .61.35 1.12.84 1.29-.18.24-.29.54-.29.88 0 .75.54 1.35 1.19 1.35h.79c2.62 0 4.47-.28 5.71-.92 1.51-.79 2.12-2.14 2.12-4.22 0-3.79-1.95-3.97-3.92-4.89z\"],\n \"hand-right\": [\"M14.5 5H7.89c.41-.58 1.21-1.55 1.3-2.47C9.34.97 8.12.71 7.87 1.28c-.67 1.54-2.68 2.99-3.95 3.7C1.95 5.89 0 6.07 0 9.86c0 2.09.61 3.43 2.12 4.22 1.24.65 3.09.92 5.71.92h.79c.65 0 1.18-.6 1.18-1.35 0-.34-.11-.64-.29-.88.48-.17.84-.68.84-1.29 0-.41-.16-.78-.42-1.03.37-.23.63-.67.63-1.19 0-.57-.31-1.05-.74-1.25l.63-.01h4.05c.83 0 1.5-.67 1.5-1.5S15.33 5 14.5 5z\"],\n \"hand-up\": [\"M13.65 6.19c-.34 0-.64.11-.88.29-.17-.48-.68-.84-1.29-.84-.41 0-.78.16-1.03.42-.23-.37-.67-.63-1.19-.63-.57 0-1.05.31-1.25.74L8 5.55V1.5C8 .67 7.33 0 6.5 0S5 .67 5 1.5v6.61c-.58-.41-1.55-1.21-2.48-1.3C.96 6.67.7 7.88 1.28 8.13c1.54.67 2.99 2.68 3.7 3.95C5.89 14.05 6.07 16 9.86 16c2.09 0 3.43-.61 4.22-2.12.64-1.24.92-3.09.92-5.71v-.79c0-.65-.6-1.19-1.35-1.19z\"],\n \"hat\": [\"M15 10c.495 0 .933.379.993.882L16 11v.505c0 1.461-3.524 2.45-7.707 2.493L8 14c-4.31 0-8-1-8-2.495V11c0-.561.466-1 1-1 .895 0 3 1 7 1l.381-.003C12.135 10.937 14.134 10 15 10zm-4-8c1.13 0 2.02 2.153 2.671 6.46-1.063.266-2.644.652-4.887.727l-.403.01L8 9.2c-2.664 0-4.488-.444-5.673-.74C2.98 4.153 3.87 2 5 2c2 0 1.329 2 3 2s1-2 3-2z\"],\n \"header\": [\"M13 1c-.55 0-1 .45-1 1v5H4V2c0-.55-.45-1-1-1s-1 .45-1 1v12c0 .55.45 1 1 1s1-.45 1-1V9h8v5c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z\"],\n \"header-one\": [\"M14.06 8c-.04.23-.12.44-.25.61-.13.17-.29.3-.48.41-.18.11-.39.18-.62.23-.23.04-.46.07-.71.07v1.03h1.74V16H15V8h-.94zM7 0c-.56 0-1 .45-1 1v4H2V1c0-.55-.45-1-1-1-.56 0-1 .45-1 1v10c0 .55.45 1 1 1 .56 0 1-.45 1-1V7h4v4c0 .55.45 1 1 1 .56 0 1-.45 1-1V1c0-.54-.45-1-1-1z\"],\n \"header-two\": [\"M13.17 13.93c-.17.15-.33.29-.46.44-.13.16-.22.32-.27.49h3.55V16H11c.01-.65.16-1.22.44-1.71s.67-.91 1.17-1.27c.24-.18.49-.36.75-.54.25-.18.49-.36.71-.57.21-.2.39-.42.53-.65.14-.24.21-.51.22-.82 0-.14-.02-.29-.05-.45-.03-.16-.09-.31-.18-.45a1.13 1.13 0 00-.37-.35c-.16-.09-.37-.14-.63-.14-.24 0-.43.05-.59.15-.16.1-.29.24-.38.42-.1.17-.17.38-.21.62-.05.24-.07.5-.08.77h-1.19c0-.43.05-.83.16-1.2s.27-.69.49-.96c.21-.25.48-.46.79-.62.31-.15.67-.23 1.07-.23.45 0 .82.08 1.11.23.3.16.55.36.73.6.19.24.32.5.39.79.08.28.12.54.12.79 0 .31-.04.6-.13.85s-.22.49-.37.7c-.15.21-.32.41-.52.59s-.4.35-.61.51l-.63.45c-.21.14-.39.28-.57.42zM0 1c0-.55.44-1 1-1 .55 0 1 .46 1 1v10c0 .55-.44 1-1 1-.55 0-1-.46-1-1V1zm6 0c0-.55.44-1 1-1 .55 0 1 .46 1 1v10c0 .55-.44 1-1 1-.55 0-1-.46-1-1V1zM2 5h4v2H2V5z\"],\n \"headset\": [\"M14.85 6.34C14.18 2.72 11.37 0 8 0S1.82 2.72 1.15 6.34C.47 6.9 0 8.1 0 9.5 0 11.43.9 13 2 13c0 1.1.9 2 2 2h2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1H4c-.55 0-1-.45-1-1 .55 0 1-.45 1-1V7c0-.45-.3-.81-.71-.94C3.97 3.7 5.81 2 8 2s4.03 1.7 4.71 4.06c-.41.13-.71.49-.71.94v5c0 .55.45 1 1 1h1c1.1 0 2-1.57 2-3.5 0-1.4-.47-2.6-1.15-3.16z\"],\n \"heart\": [\"M16 5.095c0-2.255-1.88-4.083-4.2-4.083-1.682 0-3.13.964-3.8 2.352a4.206 4.206 0 00-3.8-2.352C1.88 1.012 0 2.84 0 5.095c0 .066.007.13.01.194H.004c.001.047.01.096.014.143l.013.142c.07.8.321 1.663.824 2.573C2.073 10.354 4.232 12.018 8 15c3.767-2.982 5.926-4.647 7.144-6.854.501-.905.752-1.766.823-2.562.007-.055.012-.11.016-.164.003-.043.012-.088.013-.13h-.006c.003-.066.01-.13.01-.195z\"],\n \"heart-broken\": [\"M7.71 8.87L6.17 6.55l.02-.01A.906.906 0 016 6c0-.07.03-.13.04-.19h-.02l.78-3.92C6.09 1.34 5.19 1 4.2 1 1.88 1 0 2.83 0 5.09c0 .07.01.13.01.19H0c0 .05.01.1.01.14 0 .05.01.1.01.14.07.8.32 1.66.82 2.57 1.07 1.94 2.88 3.47 5.86 5.84l-.68-2.74h.02C6.03 11.16 6 11.08 6 11c0-.28.11-.53.29-.71l1.42-1.42zM16 5.09C16 2.83 14.12 1 11.8 1c-1.2 0-2.27.5-3.04 1.28l-.7 3.51 1.77 2.66-.01.01c.1.15.18.33.18.54 0 .28-.11.53-.29.71l-1.6 1.6.75 3.01c3.23-2.56 5.16-4.15 6.28-6.18.5-.91.75-1.77.82-2.56.01-.05.01-.11.02-.16 0-.04.01-.09.01-.13h-.01c.01-.07.02-.14.02-.2z\"],\n \"heat-grid\": [\"M0 10h5V7H0v3zm1-2h3v1H1V8zm14-5h-4v3h5V4c0-.55-.45-1-1-1zm0 2h-3V4h3v1zM0 4v2h5V3H1c-.55 0-1 .45-1 1zm0 9c0 .55.45 1 1 1h4v-3H0v2zm6-7h4V3H6v3zm0 8h4v-3H6v3zm1-2h2v1H7v-1zm4 2h4c.55 0 1-.45 1-1v-2h-5v3zm0-4h5V7h-5v3zm-5 0h4V7H6v3z\"],\n \"heatmap\": [\"M2 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm11-7c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm3 4.5A2.5 2.5 0 0013.5 6c-.98 0-1.82.57-2.23 1.39-.6-.78-1.51-1.3-2.56-1.36.18-.49.29-.99.29-1.53C9 2.01 6.99 0 4.5 0S0 2.01 0 4.5 2.01 9 4.5 9c.19 0 .37-.03.56-.06-.03.19-.06.37-.06.56C5 11.43 6.57 13 8.5 13c1.63 0 2.98-1.11 3.37-2.62.44.38 1 .62 1.63.62A2.5 2.5 0 0016 8.5zM14.5 13c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"],\n \"help\": [\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm1 13H7v-2h2v2zm1.93-6.52c-.14.32-.35.64-.62.97L9.25 8.83c-.12.15-.24.29-.28.42-.04.13-.09.3-.09.52V10H7.12V8.88s.05-.51.21-.71L8.4 6.73c.22-.26.35-.49.44-.68.09-.19.12-.38.12-.58 0-.3-.1-.55-.28-.75-.18-.19-.44-.28-.76-.28-.33 0-.59.1-.78.29-.19.19-.33.46-.4.81-.03.11-.1.15-.2.14l-1.7-.25c-.12-.01-.16-.08-.14-.19.12-.82.46-1.47 1.03-1.94.57-.48 1.32-.72 2.25-.72.47 0 .9.07 1.29.22s.72.34 1 .59c.28.25.49.55.65.89.15.35.22.72.22 1.12s-.07.75-.21 1.08z\"],\n \"helper-management\": [\"M13 5h-2v2h2V5zm0 6h-2v2h2v-2zm0-3h-2v2h2V8zm2-8H1C.4 0 0 .4 0 1v14c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V1c0-.6-.4-1-1-1zm-1 14H2V2h12v12zm-7-3H5v2h2v-2zm3 0H8v2h2v-2z\"],\n \"highlight\": [\"M9.12 11.07l2-2.02.71.71 4-4.04L10.17 0l-4 4.04.71.71-2 2.02 4.24 4.3zM2 12.97h4c.28 0 .53-.11.71-.3l1-1.01-3.42-3.45-3 3.03c-.18.18-.29.44-.29.72 0 .55.45 1.01 1 1.01zm13 1.01H1c-.55 0-1 .45-1 1.01S.45 16 1 16h14c.55 0 1-.45 1-1.01s-.45-1.01-1-1.01z\"],\n \"history\": [\"M8 3c-.55 0-1 .45-1 1v4c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L9 7.59V4c0-.55-.45-1-1-1zm0-3a7.95 7.95 0 00-6 2.74V1c0-.55-.45-1-1-1S0 .45 0 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.54C4.64 2.78 6.23 2 8 2c3.31 0 6 2.69 6 6 0 2.61-1.67 4.81-4 5.63v-.01c-.63.23-1.29.38-2 .38-3.31 0-6-2.69-6-6 0-.55-.45-1-1-1s-1 .45-1 1c0 4.42 3.58 8 8 8 .34 0 .67-.03 1-.07.02 0 .04-.01.06-.01C12.98 15.4 16 12.06 16 8c0-4.42-3.58-8-8-8z\"],\n \"home\": [\"M2 10v5c0 .55.45 1 1 1h3v-5h4v5h3c.55 0 1-.45 1-1v-5L8 4l-6 6zm13.71-2.71L14 5.59V2c0-.55-.45-1-1-1s-1 .45-1 1v1.59L8.71.29C8.53.11 8.28 0 8 0s-.53.11-.71.29l-7 7a1.003 1.003 0 001.42 1.42L8 2.41l6.29 6.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z\"],\n \"horizontal-bar-chart\": [\"M4 5h7c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zM1 1c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1zm14 6H4c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h11c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-6 5H4c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1z\"],\n \"horizontal-bar-chart-asc\": [\"M1 3h5c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm0 4h7c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 6H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM1 11h10c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"horizontal-bar-chart-desc\": [\"M15 1H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM8 9H1c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1zm-2 4H1c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm5-8H1c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"horizontal-distribution\": [\"M2 0c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm13 0c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm-5 2H7c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z\"],\n \"id-number\": [\"M2 5v7h12V5H2zm0-2h12c1.1 0 2 .9 2 2v7c0 1.1-.9 2-2 2H2c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z\", \"M7.9 10.48c-.14-.33-.84-.55-1.3-.75-.46-.2-.4-.33-.42-.5v-.07c.16-.14.29-.33.37-.56 0 0 0-.01.01-.02.02-.05.03-.1.05-.15.1-.01.16-.13.19-.23.03-.04.07-.15.06-.27-.02-.16-.08-.24-.15-.26v-.03c0-.2-.02-.48-.05-.67-.01-.05-.02-.1-.03-.16-.07-.23-.21-.44-.4-.58-.2-.15-.48-.23-.73-.23s-.53.08-.72.23c-.19.14-.33.35-.4.58-.02.05-.03.1-.03.16-.05.18-.06.47-.06.67v.03c-.07.03-.14.1-.15.26-.02.12.03.22.06.27.02.1.09.22.2.24.01.05.03.1.05.15v.01c.08.23.22.42.38.56v.07c-.02.17.03.29-.43.5-.46.2-1.16.42-1.3.75s-.09.52-.09.52H8c-.01 0 .05-.19-.1-.52zM10 6h2c.55 0 1 .45 1 1s-.45 1-1 1h-2c-.55 0-1-.45-1-1s.45-1 1-1zM10 9h2c.55 0 1 .45 1 1s-.45 1-1 1h-2c-.55 0-1-.45-1-1s.45-1 1-1z\"],\n \"image-rotate-left\": [\"M13 2h-1.59l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C8.11 2.47 8 2.72 8 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H13c.55 0 1 .45 1 1v3c0 .55.45 1 1 1s1-.45 1-1V5c0-1.66-1.34-3-3-3zm-5.5 9c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7H1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 6.33L7 12l-1 1-2-3-2 2.67V9h7v4.33z\"],\n \"image-rotate-right\": [\"M5.71 5.71l2-2C7.89 3.53 8 3.28 8 3c0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H3C1.34 2 0 3.34 0 5v3c0 .55.45 1 1 1s1-.45 1-1V5c0-.55.45-1 1-1h1.59l-.3.29a1.003 1.003 0 001.42 1.42zM12.5 11c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM15 7H6c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 6.33L12 12l-1 1-2-3-2 2.67V9h7v4.33z\"],\n \"import\": [\"M7.29 11.71c.18.18.43.29.71.29s.53-.11.71-.29l4-4a1.003 1.003 0 00-1.42-1.42L9 8.59V1c0-.55-.45-1-1-1S7 .45 7 1v7.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l4 4zM15 11c-.55 0-1 .45-1 1v2H2v-2c0-.55-.45-1-1-1s-1 .45-1 1v3c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1z\"],\n \"inbox\": [\"M13.91 2.6c-.16-.36-.51-.61-.92-.61h-10c-.41 0-.77.25-.92.61L-.01 7.45v5.54c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V7.45L13.91 2.6zm-1.92 5.39c-.55 0-1 .45-1 1v1h-6v-1c0-.55-.45-1-1-1H1.94l1.71-4h8.68l1.71 4h-2.05z\"],\n \"inbox-filtered\": [\"M6.432 2c.094.14.202.273.324.394L8.42 4H3.66L1.95 8H4c.55 0 1 .45 1 1v1h6.557c.693 0 1.363-.262 1.837-.736l.103-.102.85-1.14a2.564 2.564 0 00.623-1.682V5.058L16 7.46V13c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V7.46l2.08-4.85C2.23 2.25 2.59 2 3 2h3.432zm9.048-2c.31 0 .52.26.52.57 0 .16-.06.3-.17.41l-2.86 2.73v2.63c0 .16-.06.3-.17.41l-.82 1.1c-.1.1-.25.17-.41.17-.31 0-.57-.26-.57-.57V3.71L8.17.98A.566.566 0 018 .57c0-.31.26-.57.57-.57h6.91z\"],\n \"inbox-geo\": [\"M6.341 2A5.99 5.99 0 006 4H3.66L1.95 8H4c.55 0 1 .45 1 1v1h7a5.978 5.978 0 004-1.528V13c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V7.46l2.08-4.85C2.23 2.25 2.59 2 3 2h3.341zm3.679 2.145c0-.125.075-.23.205-.225h.345l.79.8c.005 0 0 .005 0 .005v.295c0 .13-.085.23-.215.23h-.07v.15c0 .13-.09.2-.215.2v.535c0 .125-.12.225-.245.225s-.245-.1-.245-.225V5.25h-.145c-.125 0-.205-.1-.205-.23v-.875zm2.235-2.195c-.03 0-.055-.005-.06-.035 0-.03.03-.035.06-.035h.11c.035 0 .06.005.06.035 0 .03-.03.035-.06.035h-.11zm-1.165-.025a.094.094 0 01-.13 0l-.25-.25a.094.094 0 010-.13.094.094 0 01.13 0l.25.25a.094.094 0 010 .13zm1.53.445c-.035 0-.07-.025-.07-.06v-.155c0-.03.035-.06.07-.06s.07.025.07.06v.155c0 .03-.035.06-.07.06zM12 0c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4zm0 7c1.655 0 3-1.345 3-3 0-.195-.02-.39-.06-.575h-.21c-.125 0-.225-.07-.23-.21h-.215c.075.07.155.14.155.23V3.9c0 .06-.04.115-.075.155h-.015l-.01.005-.015.01-.445.43v.815c0 .13-.07.22-.2.22h-.36c-.125 0-.21-.09-.21-.22v-.84a.627.627 0 00-.36-.345h-.45c-.13 0-.245-.095-.245-.225v-.46c0-.125.115-.23.245-.23l.13-.005.21-.215c.09-.09.24-.09.33 0l.22.225h.47c.105 0 .155-.105.225-.21v-.075h-.205a.106.106 0 01-.105-.105.11.11 0 01.105-.105h.18l.025.005v-.12s-.03-.025-.04-.025h-.2l-.045.05a.235.235 0 01-.33.005l-.045-.06h-.115l.16.175c.015.015.015.06 0 .075-.02.015-.045.02-.06.005l-.195-.185h-.085l-.245.23-.02-.005c-.025.07-.06.055-.095.055-.085 0-.15-.045-.15-.13s.065-.14.15-.14h.115v-.125c0-.06.04-.09.1-.09h.05V2.36c0-.095.095-.2.19-.2h.19c.105 0 .18-.075.18-.185V1.94c0-.015.035.01.035-.06h-.125l-.005.01-.21.22a.085.085 0 01-.115 0 .085.085 0 010-.115l.255-.255c.02-.015.045-.015.065-.015.005 0 .005.015.005.015h.64a2.327 2.327 0 00-.355-.275 2.452 2.452 0 00-.355-.195c-.03-.015-.055-.03-.08-.04a3.025 3.025 0 00-1.735-.175c-.09.02-.175.055-.265.08-.09.03-.18.05-.265.085-.075.03-.145.07-.22.105-.115.06-.235.115-.34.185l-.005.005c-.1.065-.18.145-.27.22h.455c.06 0 .11.045.11.105s-.05.105-.11.105h-.32c0 .07-.025.04-.025.045v.24h.285l.15-.17c.09-.09.235-.105.325-.015.09.09.09.23 0 .32l-.795.79-.01.01c-.005 0-.005 0-.01.005l-.025.015h-.01a.235.235 0 01-.12.025h-.23c-.08.07-.125.1-.125.18v.06c0 .01-.02.02-.02.03l.375.39c.04.04.04.1 0 .14-.04.04-.1.04-.14 0l-.39-.385a.213.213 0 01-.055.01c-.105 0-.195-.085-.195-.185v-.235h-.055A3.1 3.1 0 009 4c0 1.655 1.345 3 3 3zm2.27-2.135c.05 0 .105.04.105.09v.285c0 .05-.055.09-.105.09-.05 0-.105-.04-.105-.09v-.285c0-.05.055-.09.105-.09zm-2.085-3.27c0 .13-.105.21-.225.21h-.25v.07c0 .075-.03.135-.105.135s-.105-.06-.105-.135V1.64c-.075-.02-.025-.025-.025-.04 0-.125.085-.215.21-.215h.27c.13 0 .23.085.23.21z\"],\n \"inbox-search\": [\"M5.639 2a5.391 5.391 0 00-.144 2H3.66L1.95 8H4c.55 0 1 .45 1 1v1h6V9c0-.088.012-.174.033-.255.12-.007.238-.019.39-.038.154-.008.252-.03.442-.077a5.34 5.34 0 00.24-.05h.05l.122-.04 1.266 1.271c.425.47 1.116.769 1.847.769.21 0 .414-.025.61-.071V13c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V7.46l2.08-4.85C2.23 2.25 2.59 2 3 2h2.639zM15.82 7.53c.1.12.17.27.18.44 0 .34-.27.61-.61.61a.57.57 0 01-.43-.18l-2.24-2.25c-.13.08-.26.16-.4.23-.02.01-.05.02-.07.03-.14.06-.27.12-.42.17h-.01c-.14.05-.29.08-.44.11-.04.01-.08.02-.11.02-.15.02-.3.04-.46.04-1.85 0-3.35-1.51-3.35-3.37S8.96.01 10.81 0c1.85 0 3.35 1.51 3.35 3.37 0 .16-.02.31-.04.47-.01.04-.01.07-.02.11-.02.15-.05.29-.1.44v.01c-.05.15-.11.28-.17.42-.01.02-.02.05-.03.07-.07.14-.14.27-.23.4l2.25 2.24zm-5.01-1.94c1.22 0 2.21-.99 2.21-2.22 0-1.23-.99-2.22-2.21-2.22S8.6 2.14 8.6 3.37c0 1.22.99 2.22 2.21 2.22z\"],\n \"inbox-update\": [\"M8.1 2a5.023 5.023 0 000 2H3.66L1.95 8H4c.55 0 1 .45 1 1v1h6V9c0-.55.45-1 1-1h2.05c.708 0 1.352-.241 1.905-.645L16 7.46V13c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V7.46l2.08-4.85C2.23 2.25 2.59 2 3 2h5.1zM13 6a3 3 0 110-6 3 3 0 010 6z\"],\n \"info-sign\": [\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zM7 3h2v2H7V3zm3 10H6v-1h1V7H6V6h3v6h1v1z\"],\n \"inheritance\": [\"M5 8c0 1.66 1.34 3 3 3h4.59L11.3 9.71A.965.965 0 0111 9a1.003 1.003 0 011.71-.71l3 3c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-3 3a1.003 1.003 0 01-1.42-1.42l1.3-1.29H8c-2.76 0-5-2.24-5-5H1a1 1 0 01-1-1V1a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5zM2 2v4h4V2H2z\"],\n \"inherited-group\": [\"M1 7c.51 0 .935.388.993.884L2 8v3c0 .51.388.935.884.993L3 12h1.59l-.3-.29a1.003 1.003 0 011.324-1.504l.096.084 2 2c.18.18.29.43.29.71 0 .233-.076.446-.206.614l-.084.096-2 2A1.003 1.003 0 014 15c0-.24.08-.458.224-.629l.076-.081.29-.29H3a2.996 2.996 0 01-2.995-2.823L0 11V8c0-.55.45-1 1-1zm5.388-7c.629 0 1.338.21 1.838.6.48.38.85.91 1.019 1.52.04.13.07.27.09.4.09.48.14 1.22.14 1.73v.07c.18.08.34.27.37.67.03.32-.09.59-.16.71-.06.28-.21.58-.48.63-.03.13-.07.26-.12.39 0 .01-.01.04-.01.04-.22.58-.55 1.08-.949 1.45v.18c.04.45-.12.77 1.059 1.3 1.179.53 2.947 1.09 3.307 1.95.37.86.22 1.36.22 1.36H9c0-.539-.21-1.045-.583-1.417l-2-2A1.997 1.997 0 005 9c-.149 0-.296-.015-.442-.045.099-.19.082-.37.101-.575 0-.05.01-.11.01-.17-.41-.35-.75-.86-.969-1.45v-.01s-.01-.01-.01-.02c-.04-.12-.09-.26-.12-.39-.28-.05-.44-.36-.5-.64-.06-.12-.19-.39-.16-.71.04-.41.21-.6.39-.68v-.06c0-.51.05-1.26.14-1.74.02-.13.05-.27.09-.4.17-.6.54-1.13 1.02-1.51C5.048.21 5.757 0 6.387 0zm4.625 2.04c.49 0 1.05.16 1.439.46.38.29.67.7.8 1.17.03.1.05.21.07.31.07.37.11.94.11 1.33v.05c.139.06.269.21.289.51.02.25-.07.45-.13.54-.05.21-.16.44-.38.48a1.711 1.711 0 01-.1.33c-.17.44-.43.83-.749 1.11v.14c.03.35-.09.59.83 1 .929.41 2.317.84 2.597 1.5.29.66.17 1.04.17 1.04H13.66v.01c-.05-.24-.14-.5-.25-.76-.36-.86-1.119-1.33-2.687-2-.14-.06-.59-.25-.6-.25-.21-.09-.36-.15-.5-.22.02-.1.02-.2.03-.31 0-.04.01-.08.01-.13-.07-.06-.13-.12-.19-.19.22-.32.4-.67.54-1.05.02-.06.02-.06.03-.1.29-.23.48-.57.59-.96.16-.33.25-.73.21-1.16-.03-.4-.16-.76-.37-1.03-.02-.53-.07-1.13-.15-1.54-.01-.06-.02-.12-.03-.19.23-.06.48-.09.72-.09z\"],\n \"inner-join\": [\"M6.6 3.3C5.3 4.4 4.5 6.1 4.5 8s.8 3.6 2.1 4.7c-.5.2-1 .3-1.6.3-2.8 0-5-2.2-5-5s2.2-5 5-5c.6 0 1.1.1 1.6.3zm-1.96 8.68C3.92 10.83 3.5 9.46 3.5 8s.42-2.83 1.14-3.98C2.6 4.2 1 5.91 1 8s1.6 3.8 3.64 3.98zM8 4c-1.2.9-2 2.4-2 4s.8 3.1 2 4c1.2-.9 2-2.3 2-4s-.8-3.1-2-4zm3-1c2.8 0 5 2.2 5 5s-2.2 5-5 5c-.6 0-1.1-.1-1.6-.3 1.3-1.1 2.1-2.9 2.1-4.7s-.8-3.5-2.1-4.7c.5-.2 1-.3 1.6-.3zm.35 1.02c.73 1.15 1.14 2.52 1.14 3.98s-.42 2.83-1.14 3.98c2.04-.18 3.64-1.9 3.64-3.98s-1.6-3.8-3.64-3.98z\"],\n \"insert\": [\"M5 9h2v2c0 .6.4 1 1 1s1-.4 1-1V9h2c.6 0 1-.4 1-1s-.4-1-1-1H9V5c0-.6-.4-1-1-1s-1 .4-1 1v2H5c-.6 0-1 .4-1 1s.4 1 1 1zm10-9H1C.4 0 0 .4 0 1v14c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V1c0-.6-.4-1-1-1zm-1 14H2V2h12v12z\"],\n \"intersection\": [\"M10 3c-.92 0-1.76.26-2.5.69C6.76 3.26 5.92 3 5 3 2.24 3 0 5.24 0 8s2.24 5 5 5c.92 0 1.76-.26 2.5-.69.74.43 1.58.69 2.5.69 2.76 0 5-2.24 5-5s-2.24-5-5-5zm-4.1 7.85c-.29.09-.59.15-.9.15-1.66 0-3-1.34-3-3s1.34-3 3-3c.31 0 .61.06.9.15C5.33 5.96 5 6.94 5 8s.33 2.04.9 2.85zM10 11c-.31 0-.61-.06-.9-.15.57-.81.9-1.79.9-2.85s-.33-2.04-.9-2.85c.29-.09.59-.15.9-.15 1.66 0 3 1.34 3 3s-1.34 3-3 3z\"],\n \"ip-address\": [\"M5 2.66C5 4.14 8 8 8 8s3-3.86 3-5.34C10.99 1.2 9.66 0 8 0S5 1.2 5 2.66zM7 3c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1zM10.5 10H8v5h1v-4h1v1H9v1h2v-3h-.5zM2 9h12c.55 0 1 .45 1 1v5c0 .55-.45 1-1 1H2c-.55 0-1-.45-1-1v-5c0-.55.45-1 1-1zm4 1v5h1v-5H6z\"],\n \"issue\": [\"M8 16A8 8 0 118 0a8 8 0 010 16zm0-2A6 6 0 108 2a6 6 0 000 12zm1-2H7v-2h2v2zm0-3H7V4h2v5z\"],\n \"issue-closed\": [\"M9.296.104a2.99 2.99 0 00-1.003.664 2.987 2.987 0 00-.75 1.25 6 6 0 106.28 4.527c.043-.039.085-.079.127-.12l1.456-1.456A8 8 0 119.296.105zm2.532 5.2a.997.997 0 01-.707-.294L9.707 3.596a1 1 0 011.414-1.414l.707.707 1.768-1.768a1 1 0 111.414 1.415L12.536 5.01a.997.997 0 01-.708.293zM9 12H7v-2h2v2zm0-3H7V4h2v5z\"],\n \"issue-new\": [\"M10.568.421c-.01.04-.018.08-.026.121-.837.156-1.53.73-1.85 1.497a6 6 0 105.27 5.273 2.51 2.51 0 001.496-1.854c.04-.008.081-.016.121-.026A8 8 0 1110.568.421zM9 12H7v-2h2v2zm0-3H7V4h2v5zm1-6c0-.55.45-1 1-1h1V1c0-.55.45-1 1-1s1 .45 1 1v1h1c.55 0 1 .45 1 1s-.45 1-1 1h-1v1.005c0 .55-.45 1-1 1s-1-.45-1-1V4h-1c-.55 0-1-.45-1-1z\"],\n \"italic\": [\"M9.8 4H11c.5 0 1-.4 1-1s-.4-1-1-1H7c-.5 0-1 .4-1 1s.4 1 1 1h.8l-1.6 8H5c-.5 0-1 .4-1 1s.4 1 1 1h4c.5 0 1-.4 1-1s-.4-1-1-1h-.8l1.6-8z\"],\n \"join-table\": [\"M15 5h-3V2c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h3v3c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-5-1v2H6V4h4zm0 6H6V7h4v3zM2 4h3v2H2V4zm0 5V7h3v2H2zm4 4v-2h4v2H6zm8 0h-3v-2h3v2zm0-3h-3V8h3v2z\"],\n \"key\": [\"M11 0C8.24 0 6 2.24 6 5c0 1.02.31 1.96.83 2.75L.29 14.29a1.003 1.003 0 001.42 1.42L3 14.41l1.29 1.29c.18.19.43.3.71.3s.53-.11.71-.29l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71L6.41 11l1.83-1.83c.8.52 1.74.83 2.76.83 2.76 0 5-2.24 5-5s-2.24-5-5-5zm0 8c-.23 0-.45-.03-.66-.08-.01 0-.02-.01-.03-.01-.21-.05-.41-.12-.6-.21a3.014 3.014 0 01-1.62-2c0-.01-.01-.02-.01-.03C8.03 5.45 8 5.23 8 5c0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3z\"],\n \"key-backspace\": [\"M15 2H6c-.28 0-.53.11-.71.29l-5 5C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l5 5c.18.18.43.29.71.29h9c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm-2.29 7.29a1.003 1.003 0 01-1.42 1.42L10 9.41 8.71 10.7c-.18.19-.43.3-.71.3a1.003 1.003 0 01-.71-1.71L8.59 8l-1.3-1.29a1.003 1.003 0 011.42-1.42L10 6.59l1.29-1.29c.18-.19.43-.3.71-.3a1.003 1.003 0 01.71 1.71L11.41 8l1.3 1.29z\"],\n \"key-command\": [\"M12 9h-1V7h1c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3v1H7V4c0-1.66-1.34-3-3-3S1 2.34 1 4s1.34 3 3 3h1v2H4c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3v-1h2v1c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3zm0-6c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM4 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-8c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm5 4H7V7h2v2zm3 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"key-control\": [\"M12.71 5.29l-4-4C8.53 1.11 8.28 1 8 1s-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L8 3.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z\"],\n \"key-delete\": [\"M15.71 7.29l-5-5A.997.997 0 0010 2H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h9c.28 0 .53-.11.71-.29l5-5c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zm-7 2a1.003 1.003 0 01-1.42 1.42L6 9.41 4.71 10.7c-.18.19-.43.3-.71.3a1.003 1.003 0 01-.71-1.71L4.59 8l-1.3-1.29a1.003 1.003 0 011.42-1.42L6 6.59 7.29 5.3c.18-.19.43-.3.71-.3a1.003 1.003 0 01.71 1.71L7.41 8l1.3 1.29z\"],\n \"key-enter\": [\"M14 2c-.55 0-1 .45-1 1v3c0 1.66-1.34 3-3 3H4.41L5.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L4.41 11H10c2.76 0 5-2.24 5-5V3c0-.55-.45-1-1-1z\"],\n \"key-escape\": [\"M2 7c.55 0 1-.45 1-1V4.41L7.29 8.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L4.41 3H6c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm7-5.9v2A5 5 0 113.1 9h-2c.49 3.39 3.38 6 6.9 6 3.87 0 7-3.13 7-7 0-3.52-2.61-6.41-6-6.9z\"],\n \"key-option\": [\"M11 4h4c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1s.45 1 1 1zm4 8h-3.43L5.86 2.49h-.02A.975.975 0 005 2H1c-.55 0-1 .45-1 1s.45 1 1 1h3.43l5.71 9.51.01-.01c.18.3.49.5.85.5h4c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"key-shift\": [\"M13.71 7.29l-5-5C8.53 2.11 8.28 2 8 2s-.53.11-.71.29l-5 5A1.003 1.003 0 003 9h2v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V9h2a1.003 1.003 0 00.71-1.71z\"],\n \"key-tab\": [\"M15 10H4.41L5.7 8.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L2 9.59V8c0-.55-.45-1-1-1s-1 .45-1 1v6c0 .55.45 1 1 1s1-.45 1-1v-1.59l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L4.41 12H15c.55 0 1-.45 1-1s-.45-1-1-1zm0-9c-.55 0-1 .45-1 1v1.59L11.71 1.3A.965.965 0 0011 1a1.003 1.003 0 00-.71 1.71L11.59 4H1c-.55 0-1 .45-1 1s.45 1 1 1h10.59L10.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L14 6.41V8c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z\"],\n \"known-vehicle\": [\"M15 3a.997.997 0 00-.707.293L12 5.586l-1.293-1.293a1 1 0 10-1.414 1.414l2 2a.997.997 0 001.414 0l3-3A1 1 0 0015 3zm-.879 6.121l-.007-.007c-.313.309-.69.552-1.114.702V10h-.998H12h-1v-.184c-.424-.15-.8-.395-1.112-.704l-.01.01-2-2 .012-.012A2.978 2.978 0 017.184 6H3c-.176 0-.06-.824 0-1l.73-1.63C3.79 3.192 3.823 3 4 3H7.78C8.328 2.39 9.115 2 10 2c.768 0 1.461.293 1.987.77l.844-.844c-.238-.244-.524-.442-.794-.524C12.037 1.402 10.72 1 8 1c-2.72 0-4.037.402-4.037.402-.508.155-1.078.711-1.268 1.237l-.763 2.117H.88c-.484 0-.88.423-.88.939s.396.939.88.939h.375L1 7c-.034.685 0 1.436 0 2v5c0 .657.384 1 1 1s1-.343 1-1v-1h10v1c0 .657.384 1 1 1s1-.343 1-1V9l-.003-.754-.876.875zM5.001 10H3V8h2v2z\"],\n \"lab-test\": [\"M11 1a1 1 0 010 2v3l3 7v1.25a.75.75 0 01-.75.75H2.75a.75.75 0 01-.75-.75V13l3-7V3a1 1 0 110-2h6zM9 3H7v3l-1.714 4h5.428L9 6V3z\"],\n \"label\": [\"M11 2H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V7l-5-5zm3 10H2V4h8v2H3v1h7v1h4v4zm-3-5V4l3 3h-3zm-8 3h10V9H3v1z\"],\n \"layer\": [\"M16 8c0-.37-.21-.68-.51-.85l.01-.01-7-4-.01.01C8.34 3.06 8.18 3 8 3s-.34.06-.49.15l-.01-.02-7 4 .01.01C.21 7.32 0 7.63 0 8s.21.68.51.85l-.01.01 7 4 .01-.01c.15.09.31.15.49.15s.34-.06.49-.15l.01.01 7-4-.01-.01c.3-.17.51-.48.51-.85z\"],\n \"layers\": [\"M.55 4.89l7 3.5c.14.07.29.11.45.11s.31-.04.45-.11l7-3.5a.998.998 0 00-.06-1.81L8.4.08a1.006 1.006 0 00-.79 0l-6.99 3a.992.992 0 00-.07 1.81zM15 10c-.16 0-.31.04-.45.11L8 13.38 1.45 10.1c-.14-.06-.29-.1-.45-.1-.55 0-1 .45-1 1 0 .39.23.73.55.89l7 3.5c.14.07.29.11.45.11s.31-.04.45-.11l7-3.5c.32-.16.55-.5.55-.89 0-.55-.45-1-1-1zm0-3.5c-.16 0-.31.04-.45.11L8 9.88 1.45 6.61A.997.997 0 001 6.5c-.55 0-1 .45-1 1 0 .39.23.73.55.89l7 3.5c.14.07.29.11.45.11s.31-.04.45-.11l7-3.5c.32-.16.55-.5.55-.89 0-.55-.45-1-1-1z\"],\n \"layout\": [\"M14 4c-1.1 0-2 .9-2 2 0 .47.17.9.44 1.24l-.68.91A1.996 1.996 0 009.07 9.5H7.93C7.71 8.64 6.93 8 6 8c-.47 0-.9.17-1.24.44l-.91-.68c.1-.23.15-.49.15-.76 0-.37-.11-.71-.28-1.01l2.27-2.27c.3.17.64.28 1.01.28 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .37.11.71.28 1.01L3.01 5.28C2.71 5.11 2.37 5 2 5 .9 5 0 5.9 0 7s.9 2 2 2c.47 0 .9-.17 1.24-.44l.91.68c-.1.23-.15.49-.15.76 0 .37.11.71.28 1.01l-1.27 1.27C2.71 12.11 2.37 12 2 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2c0-.37-.11-.71-.28-1.01l1.27-1.27c.3.17.64.28 1.01.28.93 0 1.71-.64 1.93-1.5h1.14c.22.86 1 1.5 1.93 1.5 1.1 0 2-.9 2-2 0-.47-.17-.9-.44-1.24l.68-.91c.23.1.49.15.76.15 1.1 0 2-.9 2-2s-.9-2-2-2z\"],\n \"layout-auto\": [\"M14 9.5c-.56 0-1.06.23-1.42.59L8.99 8l3.59-2.09A2.002 2.002 0 0016 4.5c0-1.1-.9-2-2-2s-2 .9-2 2c0 .19.03.37.08.54L8.5 7.13v-3.2c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S6 .9 6 2c0 .93.64 1.71 1.5 1.93v3.2L3.92 5.04c.05-.17.08-.35.08-.54 0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.56 0 1.06-.23 1.42-.59L7.01 8l-3.59 2.09A2.002 2.002 0 000 11.5c0 1.1.9 2 2 2s2-.9 2-2c0-.19-.03-.37-.08-.54L7.5 8.87v3.2c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93v-3.2l3.58 2.09c-.05.17-.08.35-.08.54 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2z\"],\n \"layout-balloon\": [\"M14 11c-.2 0-.38.04-.56.09L12.42 9.4c.36-.36.58-.85.58-1.4 0-.55-.22-1.04-.58-1.4l1.01-1.69c.19.05.37.09.57.09 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .55.22 1.04.58 1.4l-1.01 1.69C11.38 6.04 11.2 6 11 6c-.93 0-1.71.64-1.93 1.5H6.93C6.71 6.64 5.93 6 5 6c-.2 0-.38.04-.56.09L3.42 4.4C3.78 4.04 4 3.55 4 3c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.2 0 .38-.04.56-.09L3.58 6.6C3.22 6.96 3 7.45 3 8c0 .55.22 1.04.58 1.4l-1.01 1.69C2.38 11.04 2.2 11 2 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2c0-.55-.22-1.04-.58-1.4l1.01-1.69c.19.05.37.09.57.09.93 0 1.71-.64 1.93-1.5h2.14c.22.86 1 1.5 1.93 1.5.2 0 .38-.04.56-.09l1.01 1.69c-.35.36-.57.85-.57 1.4 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2z\"],\n \"layout-circle\": [\"M14.16 6.02c-.12-.36-.26-.7-.43-1.03.17-.29.27-.63.27-.99 0-1.1-.9-2-2-2-.36 0-.7.1-.99.27-.33-.17-.67-.31-1.03-.43A1.987 1.987 0 008 0C6.95 0 6.1.81 6.02 1.84c-.36.12-.7.26-1.03.43C4.7 2.1 4.36 2 4 2c-1.1 0-2 .9-2 2 0 .36.1.7.27.99-.17.33-.31.67-.43 1.03C.81 6.1 0 6.95 0 8c0 1.05.81 1.9 1.84 1.98.12.36.26.7.43 1.03-.17.29-.27.63-.27.99 0 1.1.9 2 2 2 .36 0 .7-.1.99-.27.33.17.67.32 1.03.43C6.1 15.19 6.95 16 8 16c1.05 0 1.9-.81 1.98-1.84.36-.12.7-.26 1.03-.43.29.17.63.27.99.27 1.1 0 2-.9 2-2 0-.36-.1-.7-.27-.99.17-.33.31-.67.43-1.03C15.19 9.9 16 9.05 16 8c0-1.05-.81-1.9-1.84-1.98zm-.99 3.79c-.05.16-.11.31-.17.46-.3-.17-.64-.27-1-.27-1.1 0-2 .9-2 2 0 .36.1.7.27 1-.15.07-.3.12-.46.17C9.5 12.48 8.81 12 8 12s-1.5.48-1.81 1.17c-.16-.06-.32-.11-.46-.17.17-.3.27-.64.27-1 0-1.1-.9-2-2-2-.36 0-.7.1-1 .27-.07-.15-.12-.3-.17-.46C3.52 9.5 4 8.81 4 8s-.48-1.5-1.17-1.81c.06-.16.11-.32.17-.46.3.17.64.27 1 .27 1.1 0 2-.9 2-2 0-.36-.1-.7-.27-1 .15-.07.3-.12.46-.17C6.5 3.52 7.19 4 8 4s1.5-.48 1.81-1.17c.16.06.32.11.46.17-.17.3-.27.64-.27 1 0 1.1.9 2 2 2 .36 0 .7-.1 1-.27.07.15.12.3.17.46C12.48 6.5 12 7.19 12 8s.48 1.5 1.17 1.81z\"],\n \"layout-grid\": [\"M2 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6C.9 6 0 6.9 0 8s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM8 0C6.9 0 6 .9 6 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM8 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"layout-group-by\": [\"M2 6C.9 6 0 6.9 0 8s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 5c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-7c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM2 1C.9 1 0 1.9 0 3s.9 2 2 2 2-.9 2-2-.9-2-2-2zm7 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm5 3c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"layout-hierarchy\": [\"M14.5 12.07V9.93c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2-.93 0-1.71.64-1.93 1.5H9.93c-.18-.7-.73-1.25-1.43-1.43V3.93c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S6 .9 6 2c0 .93.64 1.71 1.5 1.93v2.14c-.7.18-1.25.73-1.43 1.43H3.93C3.71 6.64 2.93 6 2 6 .9 6 0 6.9 0 8c0 .93.64 1.71 1.5 1.93v2.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93V9.93c.7-.18 1.25-.73 1.43-1.43h2.14c.18.7.73 1.25 1.43 1.43v2.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93V9.93c.7-.18 1.25-.73 1.43-1.43h2.14c.18.7.73 1.25 1.43 1.43v2.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93z\"],\n \"layout-linear\": [\"M14 6c-.93 0-1.71.64-1.93 1.5H9.93C9.71 6.64 8.93 6 8 6s-1.71.64-1.93 1.5H3.93C3.71 6.64 2.93 6 2 6 .9 6 0 6.9 0 8s.9 2 2 2c.93 0 1.71-.64 1.93-1.5h2.13C6.29 9.36 7.07 10 8 10s1.71-.64 1.93-1.5h2.13c.22.86 1 1.5 1.93 1.5 1.1 0 2-.9 2-2C16 6.9 15.1 6 14 6z\"],\n \"layout-skew-grid\": [\"M2 6C.9 6 0 6.9 0 8s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-2c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM2 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 9c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6-3c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM8 3c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 9c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"layout-sorted-clusters\": [\"M2 6C.9 6 0 6.9 0 8s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM8 9c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"learning\": [\"M8.441 1.104a.985.985 0 00-.882 0L.365 5c-.487.253-.487.747 0 1L7.56 9.896a.985.985 0 00.882 0L15.635 6c.487-.253.487-.747 0-1L8.44 1.104z\", \"M14 5.5l.016 4.514c.002.548.447.99.994.99a.99.99 0 00.99-.99V5.5h-2zM3.371 9.047l4.387 2.432a.5.5 0 00.485 0l4.39-2.432a.25.25 0 01.371.218v2.955a.25.25 0 01-.134.222l-4.635 2.436a.5.5 0 01-.466 0l-4.635-2.436A.25.25 0 013 12.22V9.265a.25.25 0 01.371-.218z\"],\n \"left-join\": [\"M6.6 3.3C6.1 3.1 5.6 3 5 3 2.2 3 0 5.2 0 8s2.2 5 5 5c.6 0 1.1-.1 1.6-.3C5.3 11.6 4.5 9.9 4.5 8s.8-3.6 2.1-4.7zM8 4c-1.2.9-2 2.4-2 4s.8 3.1 2 4c1.2-.9 2-2.3 2-4s-.8-3.1-2-4zm3-1c2.8 0 5 2.2 5 5s-2.2 5-5 5c-.6 0-1.1-.1-1.6-.3 1.3-1.1 2.1-2.9 2.1-4.7s-.8-3.5-2.1-4.7c.5-.2 1-.3 1.6-.3zm.35 1.02c.73 1.15 1.14 2.52 1.14 3.98s-.42 2.83-1.14 3.98c2.04-.18 3.64-1.9 3.64-3.98s-1.6-3.8-3.64-3.98z\"],\n \"less-than\": [\"M13.287 5.958a1 1 0 00-.574-1.916l-10 3c-.95.285-.95 1.631 0 1.916l10 3a1 1 0 00.574-1.916L6.48 8l6.807-2.042z\"],\n \"less-than-or-equal-to\": [\"M13.287 3.958a1 1 0 00-.575-1.916l-10 3c-.95.285-.95 1.63 0 1.916l10 3a1 1 0 00.575-1.916L6.48 6l6.807-2.042zM13 12H3a1 1 0 000 2h10a1 1 0 000-2z\"],\n \"lifesaver\": [\"M9.405 11.746C8.968 11.91 8.495 12 8 12c-.494 0-.968-.09-1.405-.254l-.702 1.873C6.548 13.865 7.258 14 8 14c.742 0 1.452-.135 2.107-.38l-.702-1.874zm2.341-2.341l1.873.702C13.865 9.452 14 8.742 14 8c0-.742-.135-1.452-.38-2.107l-1.874.702c.164.437.254.91.254 1.405 0 .494-.09.968-.254 1.405zM9.405 4.254l.702-1.873A5.987 5.987 0 008 2c-.742 0-1.452.135-2.107.38l.702 1.874C7.032 4.09 7.505 4 8 4c.494 0 .968.09 1.405.254zM4.254 6.595L2.38 5.893A5.987 5.987 0 002 8c0 .742.135 1.452.38 2.107l1.874-.702A3.991 3.991 0 014 8c0-.494.09-.968.254-1.405zM8 16A8 8 0 118 0a8 8 0 010 16zm0-6a2 2 0 100-4 2 2 0 000 4z\"],\n \"lightbulb\": [\"M9.01 14h-2c-.55 0-1 .45-1 1s.45 1 1 1h2c.55 0 1-.45 1-1s-.44-1-1-1zm1-3h-4c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1s-.44-1-1-1zm-2-11C5.26 0 3.03 1.95 3.03 4.35c0 2.37 1.63 2.64 1.94 5.22 0 .24.22.44.5.44h5.09c.28 0 .5-.19.5-.44C11.37 6.99 13 6.72 13 4.35 13 1.95 10.77 0 8.01 0z\"],\n \"link\": [\"M4.99 11.99c.28 0 .53-.11.71-.29l6-6a1.003 1.003 0 00-1.42-1.42l-6 6a1.003 1.003 0 00.71 1.71zm3.85-2.02L6.4 12.41l-1 1-.01-.01c-.36.36-.85.6-1.4.6-1.1 0-2-.9-2-2 0-.55.24-1.04.6-1.4l-.01-.01 1-1 2.44-2.44c-.33-.1-.67-.16-1.03-.16-1.1 0-2.09.46-2.81 1.19l-.02-.02-1 1 .02.02c-.73.72-1.19 1.71-1.19 2.81 0 2.21 1.79 4 4 4 1.1 0 2.09-.46 2.81-1.19l.02.02 1-1-.02-.02c.73-.72 1.19-1.71 1.19-2.81 0-.35-.06-.69-.15-1.02zm7.15-5.98c0-2.21-1.79-4-4-4-1.1 0-2.09.46-2.81 1.19l-.02-.02-1 1 .02.02c-.72.72-1.19 1.71-1.19 2.81 0 .36.06.69.15 1.02l2.44-2.44 1-1 .01.01c.36-.36.85-.6 1.4-.6 1.1 0 2 .9 2 2 0 .55-.24 1.04-.6 1.4l.01.01-1 1-2.43 2.45c.33.09.67.15 1.02.15 1.1 0 2.09-.46 2.81-1.19l.02.02 1-1-.02-.02a3.92 3.92 0 001.19-2.81z\"],\n \"list\": [\"M1 3h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 10H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"list-columns\": [\"M6 1c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1h5zm9-12c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1h5z\"],\n \"list-detail-view\": [\"M6 9H1c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm0 4H1c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm9-12h-5c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM6 5H1c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H1c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"locate\": [\"M15 7h-.09A6.98 6.98 0 009 1.1V1c0-.55-.45-1-1-1S7 .45 7 1v.09A6.98 6.98 0 001.1 7H1c-.55 0-1 .45-1 1s.45 1 1 1h.1A6.969 6.969 0 007 14.91V15c0 .55.45 1 1 1s1-.45 1-1v-.09A6.98 6.98 0 0014.9 9h.1c.55 0 1-.45 1-1s-.45-1-1-1zm-6.02 5.9c-.05-.5-.46-.9-.98-.9s-.93.4-.98.9A5.017 5.017 0 013.1 8.98c.5-.05.9-.46.9-.98s-.4-.93-.9-.98A5.017 5.017 0 017.02 3.1c.05.5.46.9.98.9s.93-.4.98-.9c1.97.39 3.52 1.95 3.92 3.92-.5.05-.9.46-.9.98s.4.93.9.98a5.017 5.017 0 01-3.92 3.92zM8 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"lock\": [\"M13.96 7H12V3.95C12 1.77 10.21 0 8 0S4 1.77 4 3.95V7H1.96c-.55 0-.96.35-.96.9v6.91c0 .54.41 1.19.96 1.19h12c.55 0 1.04-.65 1.04-1.19V7.9c0-.55-.49-.9-1.04-.9zM6 7V3.95c0-1.09.9-1.97 2-1.97s2 .88 2 1.97V7H6z\"],\n \"log-in\": [\"M11 8c0-.28-.11-.53-.29-.71l-3-3a1.003 1.003 0 00-1.42 1.42L7.59 7H1c-.55 0-1 .45-1 1s.45 1 1 1h6.59L6.3 10.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71zm4-8H9c-.55 0-1 .45-1 1s.45 1 1 1h5v12H9c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"log-out\": [\"M7 14H2V2h5c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1zm8.71-6.71l-3-3a1.003 1.003 0 00-1.42 1.42L12.59 7H6c-.55 0-1 .45-1 1s.45 1 1 1h6.59l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"manual\": [\"M15.99 1.13c-.02-.41-.33-.77-.78-.87C12.26-.36 9.84.13 8 1.7 6.16.13 3.74-.36.78.26.33.35.03.72.01 1.13H0v12c0 .08 0 .17.02.26.12.51.65.82 1.19.71 2.63-.55 4.59-.04 6.01 1.57.02.03.06.04.08.06.02.02.03.04.05.06.04.03.09.04.13.07.05.03.09.05.14.07.11.04.23.07.35.07h.04c.12 0 .24-.03.35-.07.05-.02.09-.05.14-.07.04-.02.09-.04.13-.07.02-.02.03-.04.05-.06.03-.02.06-.03.08-.06 1.42-1.6 3.39-2.12 6.01-1.57.54.11 1.07-.21 1.19-.71.04-.09.04-.18.04-.26l-.01-12zM7 12.99c-1.4-.83-3.07-1.14-5-.93V1.96c2.11-.28 3.75.2 5 1.46v9.57zm7-.92c-1.93-.21-3.6.1-5 .93V3.42c1.25-1.26 2.89-1.74 5-1.46v10.11z\"],\n \"manually-entered-data\": [\"M1 8h3.76l2-2H1c-.55 0-1 .45-1 1s.45 1 1 1zm14.49-4.01c.31-.32.51-.76.51-1.24C16 1.78 15.22 1 14.25 1c-.48 0-.92.2-1.24.51l-1.44 1.44 2.47 2.47 1.45-1.43zM1 4h7.76l2-2H1c-.55 0-1 .45-1 1s.45 1 1 1zm0 6c-.55 0-1 .45-1 1 0 .48.35.86.8.96L2.76 10H1zm9.95-6.43l-6.69 6.69 2.47 2.47 6.69-6.69-2.47-2.47zm4.25 2.47L13.24 8H15c.55 0 1-.45 1-1 0-.48-.35-.86-.8-.96zM2 15l3.86-1.39-2.46-2.44L2 15zm13-5h-3.76l-2 2H15c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"map\": [\"M15.55 3.17l-4.49-3A.975.975 0 009.99.15L5.53 2.82 1.56.17A1.003 1.003 0 000 1v11c0 .35.18.65.45.83l4.49 3a.975.975 0 001.07.02l4.46-2.67 3.97 2.65A1.003 1.003 0 0016 15V4c0-.35-.18-.65-.45-.83zM5 13.46l-3-2v-8.6l2.94 1.96c.02.02.04.03.06.04v8.6zm5-2.32s-.01 0-.01.01L6 13.53V4.86s.01 0 .01-.01L10 2.47v8.67zm4 1.99l-2.94-1.96c-.02-.01-.04-.02-.05-.03v-8.6l3 2v8.59z\"],\n \"map-create\": [\"M14 6.82v6.32l-2.94-1.96c-.02-.01-.04-.02-.05-.03V6.22c-.08-.07-.15-.16-.22-.24-.28-.02-.54-.08-.79-.16v5.32s-.01 0-.01.01L6 13.53V4.86s.01 0 .01-.01l2.05-1.23C8.02 3.42 8 3.21 8 3c0-.98.47-1.84 1.2-2.39l-3.67 2.2L1.56.17A1.003 1.003 0 000 1v11c0 .35.18.65.45.83l4.49 3a.975.975 0 001.07.02l4.46-2.67 3.97 2.65A1.003 1.003 0 0016 15V5.82c-.25.09-.52.14-.8.16-.33.36-.73.67-1.2.84zm-9 6.64l-3-2v-8.6l2.94 1.96c.02.02.04.03.06.04v8.6zM11 4h1v1c0 .55.45 1 1 1s1-.45 1-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"map-marker\": [\"M8.46 0C5.42 0 2.95 2.39 2.95 5.33 2.95 8.28 8.46 16 8.46 16s5.51-7.72 5.51-10.67C13.96 2.39 11.5 0 8.46 0zm0 8a2.5 2.5 0 010-5 2.5 2.5 0 010 5z\"],\n \"maximize\": [\"M5.99 8.99c-.28 0-.53.11-.71.29l-3.29 3.29v-1.59c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.41L6.7 10.7a1.003 1.003 0 00-.71-1.71zm9-9h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.3a.99.99 0 00-.29.7 1.003 1.003 0 001.71.71l3.29-3.29V5c0 .55.45 1 1 1s1-.45 1-1V1c0-.56-.45-1.01-1-1.01z\"],\n \"media\": [\"M11.99 6.99c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm3-5h-14c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-10c0-.55-.45-1-1-1zm-1 9l-5-3-1 2-3-4-3 5v-7h12v7z\"],\n \"menu\": [\"M1 4h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 8H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm0-5H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"menu-closed\": [\"M14.99 6.99h-9c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zm-12-2c-.28 0-.53.11-.71.29l-2 2a1.014 1.014 0 000 1.42l2 2a1.003 1.003 0 001.71-.71v-4c0-.55-.45-1-1-1zm3-1h9c.55 0 1-.45 1-1s-.45-1-1-1h-9c-.55 0-1 .45-1 1s.45 1 1 1zm9 8h-9c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"menu-open\": [\"M9.99 11.99h-9c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zm0-5h-9c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zm0-5h-9c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zm5.71 5.3l-2-2a1.003 1.003 0 00-1.71.71v4a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71s-.11-.53-.29-.71z\"],\n \"merge-columns\": [\"M5.71 5.29a1.003 1.003 0 00-1.42 1.42l.3.29H2V2h3v1.51c.52.06.99.29 1.34.65l.66.66V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-3.82l-.66.66c-.35.35-.82.59-1.34.65V14H2V9h2.59l-.3.29a1.003 1.003 0 001.42 1.42l2-2C7.89 8.53 8 8.28 8 8c0-.28-.11-.53-.29-.71l-2-2zM15 0h-5c-.55 0-1 .45-1 1v3.82l.66-.66c.35-.35.82-.59 1.34-.65V2h3v5h-2.59l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C8.11 7.47 8 7.72 8 8c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H14v5h-3v-1.51c-.52-.06-.99-.29-1.34-.65L9 11.18V15c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"merge-links\": [\"M8 7c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm6 3c-.93 0-1.71.64-1.93 1.5H11V3c0-1.66-1.34-3-3-3S5 1.34 5 3v4.5H3.93C3.71 6.64 2.93 6 2 6 .9 6 0 6.9 0 8s.9 2 2 2c.93 0 1.71-.64 1.93-1.5H5V13c0 1.66 1.34 3 3 3s3-1.34 3-3V8.5h1.07c.22.86 1 1.5 1.93 1.5 1.1 0 2-.9 2-2s-.9-2-2-2zm-4 7c0 1.1-.9 2-2 2s-2-.9-2-2V3c0-1.1.9-2 2-2s2 .9 2 2v10z\"],\n \"minimize\": [\"M15.99.99a1.003 1.003 0 00-1.71-.71l-3.29 3.29V1.99c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H12.4l3.3-3.29c.18-.18.29-.43.29-.71zm-10 8h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59L.29 14.28a1.003 1.003 0 001.42 1.42L5 12.41V14c0 .55.45 1 1 1s1-.45 1-1v-4a1.02 1.02 0 00-1.01-1.01z\"],\n \"minus\": [\"M13 7H3c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"mobile-phone\": [\"M12 0H4c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM8 15c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3-3H5V3h6v9z\"],\n \"mobile-video\": [\"M15 4c-.28 0-.53.11-.71.29L12 6.59V4c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V9.41l2.29 2.29c.18.19.43.3.71.3.55 0 1-.45 1-1V5c0-.55-.45-1-1-1z\"],\n \"modal\": [\"M15 1a1 1 0 011 1v12a1 1 0 01-1 1H1a1 1 0 01-1-1V2a1 1 0 011-1h14zm-1 4H2v8h12V5zm-3-3H9v2h2V2zm3 0h-2v2h2V2z\"],\n \"modal-filled\": [\"M15 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm1 4H0V3h16v2zm-3-2h-2V1h2v2z\"],\n \"moon\": [\"M15 11.38A7.835 7.835 0 017.85 16C3.51 16 0 12.49 0 8.15 0 4.97 1.89 2.23 4.62 1c-.45.99-.7 2.08-.7 3.23a7.85 7.85 0 007.85 7.85c1.15 0 2.24-.25 3.23-.7z\"],\n \"more\": [\"M2 6.03a2 2 0 100 4 2 2 0 100-4zM14 6.03a2 2 0 100 4 2 2 0 100-4zM8 6.03a2 2 0 100 4 2 2 0 100-4z\"],\n \"mountain\": [\"M16 13H3l6-9h1l2 2h1l3 7zm-2.5-3.5l-1-2.5h-1l-2-2-3 4.5L9 8l1 1 1-1 2.5 1.5zM5.94 7l-4.122 6H0l5-6h.94z\"],\n \"move\": [\"M15.71 7.29l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H9V3.41l.29.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-2-2C8.53.11 8.28 0 8 0s-.53.11-.71.29l-2 2a1.003 1.003 0 001.42 1.42l.29-.3V7H3.41l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L3.41 9H7v3.59l-.29-.29A.965.965 0 006 12a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2a1.003 1.003 0 00-1.42-1.42l-.29.3V9h3.59l-.29.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"mugshot\": [\"M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14h-.15c-.03-.09-.04-.16-.08-.25-.34-.79-2.01-1.31-3.12-1.8-1.11-.49-.96-.79-1-1.2-.01-.06-.01-.12-.01-.18.38-.34.69-.8.89-1.33 0 0 .01-.03.01-.04.04-.12.08-.24.11-.36.25-.05.4-.33.46-.59.06-.1.18-.36.15-.65-.04-.37-.19-.55-.35-.62v-.06c0-.48-.04-1.16-.13-1.61-.02-.12-.05-.25-.08-.37-.16-.55-.51-1.05-.96-1.39C9.26 3.19 8.6 3 8 3c-.59 0-1.26.19-1.73.55-.45.35-.8.84-.96 1.39-.04.13-.06.25-.08.38-.09.45-.13 1.13-.13 1.61v.06c-.18.06-.33.24-.37.62-.03.29.09.54.15.65.06.26.21.54.47.59.03.12.07.25.11.36 0 .01.01.02.01.02v.01c.21.54.53 1.01.92 1.35 0 .05-.01.11-.01.16-.04.41.08.7-1.03 1.2-1.11.49-2.77 1.01-3.12 1.8-.04.09-.05.16-.08.25H2V2h12v12z\"],\n \"multi-select\": [\"M12 3.98H4c-.55 0-1 .45-1 1v1h8v5h1c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1zm3-3H7c-.55 0-1 .45-1 1v1h8v5h1c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1zm-6 6H1c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1zm-1 5H2v-3h6v3z\"],\n \"music\": [\"M15 0c-.07 0-.13.03-.19.04V.02l-10 2v.02C4.35 2.13 4 2.52 4 3v9.12c-.31-.07-.65-.12-1-.12-1.66 0-3 .9-3 2s1.34 2 3 2 3-.9 3-2V6.32l8-1.6v5.4c-.31-.07-.65-.12-1-.12-1.66 0-3 .9-3 2s1.34 2 3 2 3-.9 3-2V1c0-.55-.45-1-1-1z\"],\n \"new-drawing\": [\"M14.9 11c.6 0 1 .5 1 1 0 .257-.073.44-.22.614l-.08.086-3 3c-.2.2-.4.3-.7.3-.5 0-1-.4-1-1 0-.257.073-.44.22-.614l.08-.086 3-3c.2-.2.4-.3.7-.3zM1.3.1l6.734 2.45a3.005 3.005 0 002.095 3.322 3.005 3.005 0 003.401 2.081L13.9 9.8v.2c0 .257-.073.44-.22.614l-.08.086-3 3c-.171.171-.343.27-.577.294L9.9 14h-.2l-5-1-.1-.01c-.231-.05-.45-.26-.56-.49L4 12.4l-4-11 .3-.3 5.8 5.8c-.1.2-.2.4-.2.6 0 .8.6 1.5 1.5 1.5s1.5-.7 1.5-1.5S8.2 6 7.4 6c-.16 0-.32.064-.48.14l-.12.06L1 .4l.3-.3zM13 0c.55 0 1 .45 1 1v1h1c.55 0 1 .45 1 1s-.45 1-1 1h-1v1c0 .503-.376.922-.861.99l-.013.002A.999.999 0 0113 6l.097-.006-.027.004a1 1 0 01-.037.001L13 6c-.55 0-1-.45-1-1V4h-1a.993.993 0 01-.855-.482A1 1 0 0110 3c0-.55.45-1 1-1h1V1c0-.55.45-1 1-1z\"],\n \"new-grid-item\": [\"M6 0H1C.45 0 0 .45 0 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm5 14c0-.55-.45-1-1-1s-1 .45-1 1v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1s-.45-1-1-1zM6 9H1c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1zm9 4c-.55 0-1 .45-1 1-.55 0-1 .45-1 1s.45 1 1 1h1c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm-4-4h-1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1s1-.45 1-1c.55 0 1-.45 1-1s-.45-1-1-1zm4-9h-5c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm0 9h-1c-.55 0-1 .45-1 1s.45 1 1 1c0 .55.45 1 1 1s1-.45 1-1v-1c0-.55-.45-1-1-1z\"],\n \"new-layer\": [\"M13.982 6.272l1.518.868-.01.01c.3.17.51.48.51.85s-.21.68-.51.85l.01.01-7 4-.01-.01A.94.94 0 018 13a.94.94 0 01-.49-.15l-.01.01-7-4 .01-.01A.977.977 0 010 8c0-.37.21-.68.51-.86L.5 7.13l7-4 .01.02A.94.94 0 018 3c.086 0 .168.014.246.038a2 2 0 105.736 3.234zM14 3c.55 0 1 .45 1 1s-.45 1-1 1h-1v1c0 .55-.45 1-1 1s-1-.45-1-1V5h-1c-.55 0-1-.45-1-1s.45-1 1-1h1V2c0-.55.45-1 1-1s1 .45 1 1v1h1z\"],\n \"new-layers\": [\"M13 3h2a1 1 0 010 2h-2v2a1 1 0 01-2 0V5H9a1 1 0 110-2h2V1a1 1 0 012 0v2zm-3-1.983V2H9a2 2 0 100 4h1v1c0 .279.057.544.16.785l-1.71.855c-.14.07-.29.11-.45.11-.16 0-.31-.04-.45-.11l-7-3.5a.992.992 0 01.07-1.81l6.99-3a1.006 1.006 0 01.79 0l1.6.687zm.91 7.66a2 2 0 003.085-1.54l.555-.277c.14-.07.29-.11.45-.11.55 0 1 .45 1 1 0 .39-.23.73-.55.89l-7 3.5c-.14.07-.29.11-.45.11-.16 0-.31-.04-.45-.11l-7-3.5C.23 8.48 0 8.14 0 7.75c0-.55.45-1 1-1 .16 0 .31.04.45.11L8 10.13l2.91-1.453zM15 10.25c.55 0 1 .45 1 1 0 .39-.23.73-.55.89l-7 3.5c-.14.07-.29.11-.45.11-.16 0-.31-.04-.45-.11l-7-3.5c-.32-.16-.55-.5-.55-.89 0-.55.45-1 1-1 .16 0 .31.04.45.1L8 13.63l6.55-3.27c.14-.07.29-.11.45-.11z\"],\n \"new-link\": [\"M15 3h-1V2c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V5h1c.55 0 1-.45 1-1s-.45-1-1-1zm-3.5 6a2.5 2.5 0 00-2.45 2h-4.1a2.5 2.5 0 100 1h4.1a2.5 2.5 0 102.45-3z\"],\n \"new-object\": [\"M8 4c0 .6.4 1 1 1h2v2c0 .6.4 1 1 1s1-.4 1-1V5h2c.6 0 1-.4 1-1s-.4-1-1-1h-2V1c0-.6-.4-1-1-1s-1 .4-1 1v2H9c-.6 0-1 .5-1 1zm6.5 2.5V7c0 1.4-1.1 2.5-2.5 2.5S9.5 8.4 9.5 7v-.5H9C7.6 6.5 6.5 5.4 6.5 4S7.6 1.5 9 1.5h.5V1c0-.3.1-.6.1-.8C9.1.1 8.6 0 8 0 3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8c0-.6-.1-1.3-.2-1.9-.4.3-.8.4-1.3.4z\"],\n \"new-person\": [\"M9.12 12.69c-1.17-.53-1.01-.85-1.05-1.29-.01-.06-.01-.12-.01-.19.4-.37.73-.87.94-1.44 0 0 .01-.03.01-.04.05-.14.09-.27.12-.4.27-.06.43-.36.49-.63.06-.11.19-.39.16-.7-.04-.41-.2-.6-.38-.68v-.07c0-.51-.05-1.25-.14-1.74-.02-.13-.05-.27-.09-.4-.17-.6-.53-1.14-1.01-1.52C7.66 3.2 6.96 3 6.33 3c-.62 0-1.33.2-1.82.59-.49.38-.85.92-1.02 1.52-.04.13-.07.26-.09.4-.09.49-.13 1.23-.13 1.74v.06c-.19.08-.35.27-.39.68-.03.31.1.59.16.7.06.28.22.59.5.64.03.14.07.27.11.4 0 .01.01.02.01.02v.01c.22.59.55 1.1.96 1.46 0 .06-.01.12-.01.17-.04.44.08.76-1.09 1.29-1.17.53-2.93 1.1-3.29 1.95-.35.87-.2 1.37-.2 1.37h12.6s.15-.5-.22-1.36c-.36-.85-2.12-1.42-3.29-1.95zM14.89 2h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"new-prescription\": [\"M9.82 11.66l2.48-2.87c.12-.2.13-.37.04-.53-.11-.19-.3-.26-.52-.26h-1.29c-.27 0-.49.13-.63.34L8.44 9.9 6.95 8a.482.482 0 00-.08-.1L5.82 6.55c.57-.24 1.04-.57 1.42-1.01.49-.57.74-1.27.74-2.08 0-.51-.1-.99-.32-1.42-.21-.43-.51-.8-.89-1.11A4.1 4.1 0 005.42.24C4.91.08 4.34 0 3.72 0H.61C.26 0 0 .23 0 .56v9.89c0 .33.26.55.61.55h.8c.36 0 .61-.23.61-.56V6.99H3.3l3.73 4.74-2.71 3.48c-.12.2-.13.37-.04.53.11.19.3.26.52.26h1.27c.27 0 .51-.12.64-.34l1.69-2.15 1.66 2.14c.12.21.34.35.62.35h1.43c.2 0 .39-.08.5-.25.12-.18.09-.38-.02-.55l-2.77-3.54zM4.18 5H1.99V2.02h2.19c.62 0 1.08.13 1.38.37.29.22.44.62.44 1.08 0 .45-.15.94-.44 1.17-.31.23-.76.36-1.38.36zM15 2h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1zM9.99 3.01c0 .02.01.04.01.06V2.95c0 .02-.01.04-.01.06z\"],\n \"new-text-box\": [\"M5 6.5c0 .28.22.5.5.5H7v3.5c0 .28.22.5.5.5s.5-.22.5-.5V7h1.5c.28 0 .5-.22.5-.5S9.78 6 9.5 6h-4c-.28 0-.5.22-.5.5zM15 2h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1zm-2 5c-.55 0-1 .45-1 1v5H3V4h5c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h11c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1z\"],\n \"ninja\": [\"M16 5s-2.52 2.11-4.96 1.99C11.03 4.89 10.39.23 5 0c0 0 2.11 2.54 1.96 4.99C4.86 5.01.23 5.65 0 11c0 0 2.56-2.12 5.02-1.95.02 2.11.67 6.72 5.98 6.95 0 0-2.09-2.54-1.94-4.99 2.11-.02 6.71-.68 6.94-6.01zM8 9.5c-.83 0-1.5-.67-1.5-1.5S7.17 6.5 8 6.5s1.5.67 1.5 1.5S8.83 9.5 8 9.5z\"],\n \"not-equal-to\": [\"M7.58 5l.44-2.196a1 1 0 011.96.392L9.62 5H13a1 1 0 010 2H9.22l-.4 2H13a1 1 0 010 2H8.42l-.44 2.196a1 1 0 01-1.96-.392L6.38 11H3a1 1 0 010-2h3.78l.4-2H3a1 1 0 110-2h4.58z\"],\n \"notifications\": [\"M8 16c1.1 0 2-.9 2-2H6c0 1.1.9 2 2 2zm6-5c-.55 0-1-.45-1-1V6c0-2.43-1.73-4.45-4.02-4.9 0-.04.02-.06.02-.1 0-.55-.45-1-1-1S7 .45 7 1c0 .04.02.06.02.1A4.992 4.992 0 003 6v4c0 .55-.45 1-1 1s-1 .45-1 1 .45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"notifications-updated\": [\"M8 16c1.1 0 2-.9 2-2H6c0 1.1.9 2 2 2zm3.399-13.667l-.413.412A2.99 2.99 0 009 1.99a3 3 0 00-3 2.99c0 .8.32 1.558.876 2.114l2.002 1.992A2.99 2.99 0 0013 9.184V10c0 .55.45 1 1 1s1 .45 1 1-.45 1-1 1H2c-.55 0-1-.45-1-1s.45-1 1-1 1-.45 1-1V6c0-2.43 1.73-4.45 4.02-4.9 0-.04-.02-.06-.02-.1 0-.55.45-1 1-1s1 .45 1 1c0 .04-.02.06-.02.1a4.97 4.97 0 012.419 1.233zM10.29 7.67l-2-1.99a.99.99 0 01-.29-.7 1 1 0 011-.99c.27 0 .52.11.7.29l1.29 1.29 3.28-3.28c.18-.18.42-.29.7-.29.55 0 1 .44 1 .99 0 .28-.11.52-.3.7l-3.98 3.98a.99.99 0 01-1.4 0z\"],\n \"numbered-list\": [\"M2.76 7h1.26V0h-.94c-.04.21-.12.39-.25.54-.13.15-.29.27-.48.36-.18.09-.39.16-.62.2-.23.04-.46.06-.71.06v.9h1.74V7zm-.59 7.17c.18-.12.37-.25.58-.37a10.763 10.763 0 001.24-.83c.2-.16.37-.33.52-.51.15-.19.28-.39.37-.61.09-.22.14-.47.14-.74 0-.22-.04-.45-.12-.7-.08-.26-.21-.49-.4-.69-.18-.21-.43-.39-.72-.52-.3-.14-.68-.21-1.12-.21-.41 0-.77.07-1.08.2-.32.14-.58.32-.8.56-.22.23-.38.51-.49.84-.11.32-.16.67-.16 1.05h1.19c.01-.24.03-.47.08-.67.05-.21.11-.39.21-.54.09-.15.22-.27.38-.36.16-.09.35-.13.59-.13.26 0 .47.04.63.12.16.08.29.18.38.3.09.12.15.25.18.39s.05.27.05.4c-.01.27-.08.5-.22.71-.14.21-.32.4-.53.57-.22.18-.45.34-.71.49-.26.15-.51.31-.74.47-.5.31-.89.68-1.17 1.11-.3.41-.44.91-.45 1.48h5v-1H1.43c.05-.15.14-.29.27-.43.14-.13.29-.26.47-.38zM15.01 1.99h-7c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-1c0-.55-.44-1-1-1zm0 9h-7c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-1c0-.55-.44-1-1-1z\"],\n \"numerical\": [\"M2.79 4.61c-.13.17-.29.3-.48.41-.18.11-.39.18-.62.23-.23.04-.46.07-.71.07v1.03h1.74V12h1.26V4h-.94c-.04.23-.12.44-.25.61zm4.37 5.31c.18-.14.37-.28.58-.42l.63-.45c.21-.16.41-.33.61-.51s.37-.38.52-.59c.15-.21.28-.45.37-.7.09-.25.13-.54.13-.85 0-.25-.04-.52-.12-.8-.07-.29-.2-.55-.39-.79a2.18 2.18 0 00-.73-.6c-.29-.15-.66-.23-1.11-.23-.41 0-.77.08-1.08.23-.31.16-.58.37-.79.64-.22.27-.38.59-.49.96-.11.37-.16.77-.16 1.2h1.19c.01-.27.03-.53.08-.77.04-.24.11-.45.21-.62.09-.18.22-.32.38-.42.16-.1.35-.15.59-.15.26 0 .47.05.63.14.15.09.28.21.37.35.09.14.15.29.18.45.03.16.05.31.05.45-.01.31-.08.58-.22.82-.14.23-.32.45-.53.65-.22.21-.46.39-.71.57-.26.18-.51.36-.75.54-.5.36-.89.78-1.17 1.27-.28.49-.43 1.06-.44 1.71h5v-1.15H6.43c.05-.17.14-.33.27-.49.13-.15.29-.29.46-.44zm8.5-1.56c-.23-.35-.54-.57-.95-.65v-.02c.34-.13.6-.34.76-.63.16-.29.24-.63.24-1.02 0-.34-.06-.64-.19-.9s-.3-.47-.51-.64c-.21-.17-.45-.3-.72-.38-.27-.09-.54-.13-.82-.13-.36 0-.68.07-.96.2-.28.13-.53.32-.72.55-.2.23-.36.51-.47.83-.11.32-.18.66-.19 1.04h1.15c-.01-.2.01-.39.06-.58.05-.19.12-.36.22-.51.1-.15.22-.27.37-.36.15-.09.32-.13.53-.13.32 0 .59.1.79.3.21.2.31.46.31.79 0 .23-.05.43-.14.59-.09.16-.21.29-.35.38-.15.09-.32.16-.51.19-.19.04-.38.05-.57.04v.93c.23-.01.45 0 .67.02.22.02.42.08.59.17.18.09.32.23.43.4.11.18.16.41.16.71 0 .44-.13.78-.39 1.02s-.58.36-.97.36c-.45 0-.79-.16-1.02-.47-.23-.31-.33-.7-.32-1.17H11c.01.4.06.77.17 1.1.11.33.26.61.47.85.21.23.46.42.77.54.31.13.67.19 1.08.19.34 0 .66-.05.96-.16.3-.11.57-.27.8-.47.23-.2.41-.45.55-.74.13-.27.2-.6.2-.97 0-.5-.11-.92-.34-1.27z\"],\n \"office\": [\"M15 5h-3V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h3v-4h4v4h7c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM5 10H2V7h3v3zm0-5H2V2h3v3zm5 5H7V7h3v3zm0-5H7V2h3v3zm4 9h-2v-2h2v2zm0-4h-2V7h2v3z\"],\n \"offline\": [\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zM6 14l1-5H4l6-7-1 5h3l-6 7z\"],\n \"oil-field\": [\"M15 14h-1.35l-3.34-7.51 2.46-.95 1.45 3.21c.09.2.36.3.6.23.1-.03.18-.08.24-.15.05-.08 1.23-1.56.87-4.2-.11-.79-.52-4.62-3.26-4.62-.93 0-1.68.62-1.67 1.37 0 .14.03.28.09.42l.87 1.92L.64 8.07v.01A.98.98 0 000 9c0 .55.45 1 1 1 .13 0 .25-.03.36-.07v.01l1.04-.4L3.67 14H2c-.55 0-1 .45-1 1s.45 1 1 1h13c.55 0 1-.45 1-1s-.45-1-1-1zM4.27 8.81L7.14 7.7 5.2 12.08l-.93-3.27zM6.54 14L9 8.46 11.46 14H6.54z\"],\n \"one-column\": [\"M11.99-.01h-3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-14c0-.55-.45-1-1-1zm-6 5c-.28 0-.53.11-.71.29l-2 2a1.014 1.014 0 000 1.42l2 2a1.003 1.003 0 001.71-.71v-4c0-.55-.45-1-1-1z\"],\n \"outdated\": [\"M8 0c4.42 0 8 3.58 8 8 0 4.06-3.02 7.4-6.94 7.92-.02 0-.04.01-.06.01-.33.04-.66.07-1 .07-4.42 0-8-3.58-8-8 0-.55.45-1 1-1s1 .45 1 1c0 3.31 2.69 6 6 6 .71 0 1.37-.15 2-.38v.01c2.33-.82 4-3.02 4-5.63 0-3.31-2.69-6-6-6-1.78 0-3.36.78-4.46 2H5c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1s1 .45 1 1v1.74A7.95 7.95 0 018 0zm1 12H7v-2h2v2zm0-3H7V4h2v5z\"],\n \"page-layout\": [\"M15 .95H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-12c0-.55-.45-1-1-1zm-9 12H2v-6h4v6zm8 0H7v-6h7v6zm0-7H2v-3h12v3z\"],\n \"panel-stats\": [\"M10 4h3v1h-3zM10 6h3v1h-3zM10 8h3v1h-3zM10 10h3v1h-3z\", \"M15 1H1c-.6 0-1 .4-1 1v11c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1zM8 12H2V3h6v9zm6 0H9V3h5v9z\"],\n \"panel-table\": [\"M15 1H1c-.6 0-1 .4-1 1v11c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1zM8 9H6V7h2v2zm0-3H6V4h2v2zm-6 6V3h3v9H2zm4 0v-2h2v2H6zm8 0H9v-2h5v2zm0-3H9V7h5v2zm0-3H9V4h5v2z\"],\n \"paperclip\": [\"M14.68 2.31A4.54 4.54 0 0011.46.99c-1.15 0-2.31.44-3.19 1.32L.95 9.63c-.63.63-.95 1.46-.95 2.28a3.21 3.21 0 003.23 3.22c.83 0 1.66-.31 2.3-.95l7.31-7.32c.76-.77.76-1.98.01-2.73s-1.99-.76-2.75 0l-6.07 6.08c-.24.25-.24.65.01.9s.65.25.91.01l6.07-6.08c.25-.25.67-.25.91-.01.25.25.25.67 0 .92l-7.31 7.32c-.75.75-2.04.74-2.76.01-.75-.75-.73-2.02.01-2.76L9.2 3.21c1.24-1.24 3.35-1.26 4.58-.03 1.24 1.24 1.24 3.36 0 4.6l-7.12 7.13c-.24.25-.24.64.01.88.24.24.63.24.88.01v.01l7.13-7.13A4.41 4.41 0 0016 5.51c0-1.16-.44-2.32-1.32-3.2z\"],\n \"paragraph\": [\"M13 1H6C3.8 1 2 2.8 2 5s1.8 4 4 4v5c0 .6.4 1 1 1s1-.5 1-1V3h2v11c0 .6.4 1 1 1s1-.5 1-1V3h1c.5 0 1-.4 1-1s-.4-1-1-1z\"],\n \"path\": [\"M14.5 0h-13C.67 0 0 .67 0 1.5S.67 3 1.5 3H7v3H3.5C2.67 6 2 6.67 2 7.5S2.67 9 3.5 9H7v3H5.5c-.83 0-1.5.67-1.5 1.5S4.67 15 5.5 15h5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5H9V9h3.5c.83 0 1.5-.67 1.5-1.5S13.33 6 12.5 6H9V3h5.5c.83 0 1.5-.67 1.5-1.5S15.33 0 14.5 0z\"],\n \"path-search\": [\"M15 14.62l-4-2.4V9.77c-.32.09-.66.15-1 .18v2.27l-4 2.4V8.71c-.38-.31-.72-.66-1-1.06v6.97l-4-2.4V8c.55 0 1-.45 1-1s-.45-1-1-1V1.38l3.15 1.89c.08-.34.18-.66.32-.97L.76.07v.01A.496.496 0 00.5 0C.22 0 0 .22 0 .5v12c0 .18.1.33.25.42v.01l5 3v-.01c.07.05.16.08.25.08s.18-.03.25-.08v.01l4.74-2.85 4.74 2.85v-.01c.09.05.18.08.27.08.28 0 .5-.22.5-.5v-3.78c-.3.17-.63.28-1 .28v2.62zM2 5c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1zm6-1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm7.75-.92l-1.19-.72c.18.43.29.9.36 1.38l.08.04v3.39l1 1V3.5c0-.18-.1-.33-.25-.42zM10 2c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3.3 4.89c.44-.7.7-1.51.7-2.39C14 2.01 11.99 0 9.5 0S5 2.01 5 4.5 7.01 9 9.5 9c.88 0 1.69-.26 2.39-.7l2.41 2.41c.17.18.42.29.7.29a1.003 1.003 0 00.71-1.71l-2.41-2.4zM9.5 8C7.57 8 6 6.43 6 4.5S7.57 1 9.5 1 13 2.57 13 4.5 11.43 8 9.5 8z\"],\n \"pause\": [\"M6 3H4c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm6 0h-2c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"people\": [\"M13.69 13.98c-.05-.24-.14-.5-.25-.76-.36-.86-1.12-1.33-2.69-2-.14-.06-.59-.25-.6-.25-.21-.09-.36-.15-.5-.22.02-.1.02-.2.03-.31 0-.04.01-.08.01-.13-.07-.06-.13-.12-.19-.19.22-.32.4-.67.54-1.05.02-.06.02-.06.03-.1.29-.23.48-.57.59-.96.16-.33.25-.73.21-1.16-.03-.4-.16-.76-.37-1.03-.02-.53-.07-1.13-.15-1.54-.01-.06-.02-.12-.03-.19.23-.06.48-.09.72-.09.49 0 1.05.16 1.44.46.38.29.67.7.8 1.17.03.1.05.21.07.31.07.37.11.94.11 1.33v.05c.14.06.27.21.29.51.02.25-.07.45-.13.54-.05.21-.16.44-.38.48-.02.1-.05.2-.09.3 0 .01-.01.03-.01.03-.17.44-.43.83-.75 1.11v.14c.03.35-.09.59.83 1 .93.41 2.32.84 2.6 1.5.29.66.17 1.04.17 1.04h-2.3zm-1.17-.38c.37.86.22 1.36.22 1.36H.06s-.14-.5.22-1.36 2.13-1.43 3.31-1.96c1.17-.54 1.05-.86 1.09-1.3 0-.05.01-.11.01-.17-.41-.35-.75-.86-.97-1.45v-.01s-.01-.01-.01-.02c-.04-.12-.09-.26-.12-.39-.28-.05-.44-.36-.5-.64-.06-.12-.19-.39-.16-.71.04-.41.21-.6.39-.68v-.06c0-.51.05-1.26.14-1.74.02-.13.05-.27.09-.4.17-.6.54-1.13 1.02-1.51.5-.39 1.21-.6 1.84-.6s1.34.21 1.84.6c.48.38.85.91 1.02 1.52.04.13.07.27.09.4.09.48.14 1.22.14 1.73v.07c.18.08.34.27.37.67.03.32-.09.59-.16.71-.06.28-.21.58-.48.63-.03.13-.07.26-.12.39 0 .01-.01.04-.01.04-.22.58-.55 1.08-.95 1.45v.18c.04.45-.12.77 1.06 1.3 1.18.53 2.95 1.09 3.31 1.95z\"],\n \"percentage\": [\"M6 6V4c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1c1.1 0 2-.9 2-2zM3.5 6c-.28 0-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5s.5.22.5.5v1c0 .28-.22.5-.5.5zM13 8h-1c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1c1.1 0 2-.9 2-2v-2c0-1.1-.9-2-2-2zm0 3.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5s.5.22.5.5v1zM12 3a1.003 1.003 0 00-1.87-.5l-5.99 9.98c-.09.15-.14.33-.14.52a1.003 1.003 0 001.87.5l5.99-9.98c.09-.15.14-.33.14-.52z\"],\n \"person\": [\"M15.68 14.32c-.46-1.05-2.68-1.75-4.16-2.4-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.08-.14.23-.48.2-.87-.05-.5-.25-.73-.47-.82v-.09c0-.63-.06-1.55-.17-2.15A3.671 3.671 0 0010.32.72C9.68.25 8.79-.01 8-.01c-.79 0-1.68.25-2.31.73-.61.47-1.06 1.13-1.28 1.86-.05.17-.09.33-.11.5-.12.6-.17 1.51-.17 2.15v.08c-.24.09-.45.32-.5.83-.03.38.13.72.2.86.08.35.28.72.63.78.04.17.09.33.15.49 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.37 1.59-1.48.65-3.7 1.35-4.16 2.4-.46 1.05-.27 1.67-.27 1.67h15.92c-.01.01.18-.61-.28-1.66z\"],\n \"phone\": [\"M15.9 12.41c-.06-.06-3.37-2-3.48-2.05a.794.794 0 00-.32-.08c-.15 0-.34.11-.57.32-.23.22-.94 1.19-1.15 1.4-.21.22-.38.32-.52.32-.07 0-.15-.02-.25-.06-.1-.04-1.16-.58-3.36-2.52-2.2-1.93-2.49-3.2-2.5-3.55 0-.14.11-.31.32-.52.22-.21.45-.41.7-.6.25-.19.49-.4.7-.62.22-.23.32-.42.32-.57 0-.11-.03-.21-.08-.32C5.66 3.46 3.66.15 3.59.08 3.44-.07 2.85 0 2.55.16.16 1.46-.03 3.2 0 3.89c.04.71.49 4.46 4.16 7.95C8.72 16.17 11.89 16 12.1 16c.69 0 2.82-.38 3.72-2.55.13-.32.25-.87.08-1.04z\"],\n \"pie-chart\": [\"M7 1.08c-3.37.5-5.97 3.4-5.97 6.92 0 3.87 3.13 7 6.98 7 3.52 0 6.42-2.61 6.91-6H7V1.08z\", \"M8 0v8h8c0-4.42-3.58-8-8-8z\"],\n \"pin\": [\"M9.41.92c-.51.51-.41 1.5.15 2.56L4.34 7.54C2.8 6.48 1.45 6.05.92 6.58l3.54 3.54-3.54 4.95 4.95-3.54 3.54 3.54c.53-.53.1-1.88-.96-3.42l4.06-5.22c1.06.56 2.04.66 2.55.15L9.41.92z\"],\n \"pivot\": [\"M4.57 7.02L.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4.27-4.27c-.58-.35-1.07-.84-1.41-1.42zM15 8c-.55 0-1 .45-1 1v.59l-2.57-2.57c-.34.58-.83 1.07-1.41 1.41L12.59 11H12c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-4-3c0-1.66-1.34-3-3-3S5 3.34 5 5s1.34 3 3 3 3-1.34 3-3zM8 6c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"pivot-table\": [\"M2 4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm0-4H1C.45 0 0 .45 0 1v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm11.71 4.29C13.53 4.11 13.28 4 13 4s-.53.11-.71.29l-2 2a1.003 1.003 0 001.42 1.42l.29-.3V9c0 1.66-1.34 3-3 3H7.41l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H9c2.76 0 5-2.24 5-5V7.41l.29.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-2-2zM15 0H5c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"play\": [\"M12 8c0-.35-.19-.64-.46-.82l.01-.02-6-4-.01.02A.969.969 0 005 3c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1 .21 0 .39-.08.54-.18l.01.02 6-4-.01-.02c.27-.18.46-.47.46-.82z\"],\n \"plus\": [\"M13 7H9V3c0-.55-.45-1-1-1s-1 .45-1 1v4H3c-.55 0-1 .45-1 1s.45 1 1 1h4v4c0 .55.45 1 1 1s1-.45 1-1V9h4c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"polygon-filter\": [\"M14 5c-.24 0-.47.05-.68.13L9.97 2.34c.01-.11.03-.22.03-.34 0-1.1-.9-2-2-2S6 .9 6 2c0 .04.01.08.01.12L2.88 4.21C2.61 4.08 2.32 4 2 4 .9 4 0 4.9 0 6c0 .74.4 1.38 1 1.72v4.55c-.6.35-1 .99-1 1.73 0 1.1.9 2 2 2 .74 0 1.38-.4 1.72-1h4.55c.35.6.98 1 1.72 1 1.1 0 2-.9 2-2 0-.37-.11-.7-.28-1L14 9c1.11-.01 2-.9 2-2s-.9-2-2-2zm-4.01 7c-.73 0-1.37.41-1.71 1H3.73c-.18-.3-.43-.55-.73-.72V7.72c.6-.34 1-.98 1-1.72 0-.04-.01-.08-.01-.12l3.13-2.09c.27.13.56.21.88.21.24 0 .47-.05.68-.13l3.35 2.79c-.01.11-.03.22-.03.34 0 .37.11.7.28 1l-2.29 4z\"],\n \"power\": [\"M8 8c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1S7 .45 7 1v6c0 .55.45 1 1 1zm3-5.32v2.34c1.21.91 2 2.35 2 3.98 0 2.76-2.24 5-5 5s-5-2.24-5-5c0-1.63.79-3.06 2-3.98V2.68C2.64 3.81 1 6.21 1 9c0 3.87 3.13 7 7 7s7-3.13 7-7c0-2.79-1.64-5.19-4-6.32z\"],\n \"predictive-analysis\": [\"M16 6.41c0-1.01-.49-1.94-1.29-2.49-.43-1.92-2.07-3.28-4-3.28-.46 0-.92.08-1.35.24C8.83.31 8.11 0 7.34 0c-.9 0-1.74.44-2.28 1.16-.12-.01-.24-.02-.36-.02-1.31 0-2.42.89-2.77 2.17C.78 3.72 0 4.84 0 6.13c0 .38.07.76.21 1.12C.07 7.6 0 7.98 0 8.36c0 1.11.58 2.11 1.51 2.63.54.56 1.27.87 2.03.87.49 0 .95-.12 1.37-.36a2.85 2.85 0 002.18 1.04c.52 0 1.03-.14 1.47-.42.49.39 1.07.65 1.69.73 1.04 1.15 1.84 2.63 1.84 2.64 0 0 .28.49.26.49.77 0 1.41-.16 1.32-1.04 0 .02-.73-2.31-.73-2.31.41-.21.75-.55.97-.98.9-.52 1.47-1.53 1.47-2.61 0-.24-.03-.48-.08-.71.45-.52.7-1.21.7-1.92zm-1.23 1.02l-.15-.16-.61-.67c-.27-.29-.54-.94-.58-1.39l-.1-1.01c-.05-.59-.94-.58-.91.11 0 .02.1 1.01.1 1.01.03.29.12.62.24.93-.06-.01-.12-.02-.18-.02 0 0-2.06-.1-2.05-.11-.58-.02-.71.97-.04 1l2.05.11c.42.02 1.04.3 1.29.58l.49.54.02.05c.08.21.12.44.12.66 0 .74-.41 1.41-1.07 1.75l-.16.08-.07.18c-.15.38-.48.66-.88.74l-.54.11.7 2.2c-.38-.61-.95-1.43-1.62-2.14l-.12-.13-.17-.01c-.41-.03-.8-.17-1.14-.38l1.36-1.18c.35-.31.83-.44.99-.39 0 0 .63.17.62.18.63.16.83-.74.23-.97l-.62-.18c-.55-.16-1.33.18-1.79.58l-1.53 1.33-.31.26c-.35.29-.75.44-1.2.44-.64 0-1.23-.33-1.58-.86V9.15c0-.4.17-.79.27-.85 0 0 .52-.34.51-.35.71-.53.18-1.23-.49-.89 0-.01-.52.35-.52.35-.26.15-.45.44-.58.77-.11-.11-.22-.2-.34-.28 0 0-1.53-1.01-1.53-1.02-.65-.45-1.2.51-.49.89 0-.01 1.51 1.02 1.51 1.02.37.24.62.78.62 1.09v.67c-.34.19-.63.29-.99.29-.54 0-1.05-.23-1.41-.63l-.05-.06-.07-.04c-.65-.34-1.05-1-1.05-1.73 0-.3.07-.6.2-.87l.12-.25L1.15 7c-.13-.27-.2-.56-.2-.87 0-.9.61-1.68 1.48-1.89l.31-.08.05-.34a1.926 1.926 0 012.38-1.58l.32.08.18-.31c.35-.6.99-.97 1.67-.97.44 0 .86.15 1.2.42l-.36.36v-.01l-.25.26c-.33.27-.74.42-.89.4 0 0-.67-.1-.67-.11-.67-.13-.87.86-.14 1.02.01 0 .67.11.67.11.02 0 .05 0 .07.01-.11.37-.15.77-.1 1.12 0 0 .17.99.15.99.11.52 1.06.36.93-.18 0-.01-.15-.99-.15-.99-.05-.37.12-.94.36-1.19l.39-.4c.05-.05.1-.09.15-.14l.74-.76c.4-.18.83-.27 1.27-.27 1.55 0 2.86 1.12 3.11 2.67l.04.25.21.12c.61.35.98 1 .98 1.7 0 .36-.1.7-.28 1.01z\"],\n \"prescription\": [\"M10.91 8.34c.14-.21.36-.34.63-.34h1.29c.22 0 .41.07.52.26.09.16.08.33-.04.53l-2.49 2.87 2.77 3.54c.12.17.14.37.02.55-.11.17-.3.25-.5.25h-1.44a.69.69 0 01-.61-.35L9.4 13.51l-1.69 2.15c-.13.21-.36.34-.63.34H5.8c-.22 0-.41-.07-.52-.26-.09-.16-.08-.33.04-.53l2.71-3.48L4.3 6.99H3.03v3.47c0 .33-.26.56-.62.56h-.8c-.35-.01-.61-.23-.61-.56V.56c0-.33.26-.56.62-.56h3.11c.62 0 1.19.08 1.7.24.51.16.96.39 1.34.69a3.194 3.194 0 011.21 2.53c0 .81-.25 1.5-.74 2.08-.37.44-.84.77-1.42 1.01L7.88 7.9c.04.04.07.08.08.1l1.49 1.9 1.46-1.56zM5.18 5c.62 0 1.08-.13 1.39-.37.29-.23.44-.71.44-1.16s-.15-.87-.44-1.1C6.26 2.12 5.8 2 5.18 2H2.99v3h2.19z\"],\n \"presentation\": [\"M15 1H9c0-.55-.45-1-1-1S7 .45 7 1H1c-.55 0-1 .45-1 1s.45 1 1 1v8c0 .55.45 1 1 1h3.59L3.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L7 13.41V15c0 .55.45 1 1 1s1-.45 1-1v-1.59l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L10.41 12H14c.55 0 1-.45 1-1V3c.55 0 1-.45 1-1s-.45-1-1-1zm-2 9H3V3h10v7z\"],\n \"print\": [\"M12 2.02c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v1h8v-1zm3 2H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h1v-3h12v3h1c.55 0 1-.45 1-1v-6c0-.56-.45-1-1-1zm-1 3h-2v-1h2v1zm-3 6H5v-3H3v4c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-4h-2v3z\"],\n \"projects\": [\"M14 3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v1h12V3zm-2-3H4c-.55 0-1 .45-1 1h10c0-.55-.45-1-1-1zm3 5H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-3 6c0 .55-.45 1-1 1H5c-.55 0-1-.45-1-1V9h1v2h6V9h1v2z\"],\n \"properties\": [\"M2 6C.9 6 0 6.9 0 8s.9 2 2 2 2-.9 2-2-.9-2-2-2zm4-3h9c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1zm-4 9c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm13-5H6c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zm0 6H6c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"property\": [\"M3 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-.5-6.5a2.5 2.5 0 000 5 2.5 2.5 0 000-5zM7 3h8c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1zm8 10H7c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zM3 0C1.9 0 1 .9 1 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 6H7c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1z\"],\n \"publish-function\": [\"M12.16 3.76c.15-.11.3-.16.47-.16.06 0 .17.02.34.06.16.04.31.06.43.06a.58.58 0 00.6-.6c0-.19-.06-.33-.17-.44-.11-.11-.28-.16-.49-.16-.19 0-.37.04-.54.13-.17.09-.39.27-.65.55-.2.21-.48.58-.87 1.11a5.22 5.22 0 00-.78-1.79l-2.05.32-.04.21c.15-.03.28-.04.39-.04.2 0 .37.08.5.25.21.26.5 1.03.88 2.33-.29.36-.49.6-.6.71-.18.19-.33.31-.45.36-.09.04-.19.07-.3.07-.09 0-.23-.04-.42-.13a.904.904 0 00-.36-.09c-.2 0-.36.06-.49.18a.59.59 0 00-.19.46c0 .18.06.32.18.43.12.11.28.16.48.16.2 0 .38-.04.55-.12.17-.08.39-.24.65-.49s.62-.65 1.07-1.19c.18.52.33.89.46 1.13.13.24.28.4.44.51.17.1.37.16.62.16.24 0 .49-.08.74-.25.33-.21.66-.58 1.01-1.09l-.21-.11c-.23.31-.41.5-.52.57a.44.44 0 01-.26.07c-.12 0-.24-.07-.36-.21-.2-.24-.46-.91-.8-2 .29-.49.54-.81.74-.96zM6.37 5.83l.68-2.53h.83l.2-.64h-.84c.24-.91.56-1.59.96-2.01.24-.27.48-.4.71-.4.05 0 .08.01.11.04s.04.06.04.1c0 .04-.03.11-.1.21-.06.1-.1.2-.1.29 0 .13.05.24.15.33.1.09.23.14.39.14.17 0 .31-.06.42-.17.12-.12.18-.27.18-.46 0-.21-.08-.39-.25-.52C9.57.07 9.3 0 8.93 0c-.59 0-1.12.16-1.59.48-.48.32-.93.85-1.36 1.59-.15.26-.29.42-.42.49s-.35.11-.64.1l-.19.65h.81L4.35 7.68c-.2.72-.33 1.16-.4 1.33-.1.24-.26.45-.46.62a.48.48 0 01-.31.1c-.03 0-.06-.01-.08-.03l-.03-.03c0-.02.03-.06.09-.11.06-.06.09-.15.09-.26 0-.13-.05-.23-.14-.32-.1-.09-.23-.13-.41-.13-.21 0-.38.05-.51.16A.52.52 0 002 9.4c0 .16.08.3.23.42.16.12.4.18.74.18.53 0 .99-.13 1.4-.39.41-.26.76-.65 1.07-1.19.3-.53.61-1.39.93-2.59zm2.34 3.46A.997.997 0 008 9c-.28 0-.53.11-.71.29l-2 2a1.003 1.003 0 001.42 1.42l.29-.3V15c0 .55.45 1 1 1s1-.45 1-1v-2.59l.29.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-2-2z\"],\n \"pulse\": [\"M15 8h-1.46l-1.7-2.55-.02.01A.984.984 0 0011 5c-.43 0-.79.27-.93.65h-.01l-1.69 4.51-1.38-8.32h-.02A.989.989 0 006 1c-.41 0-.77.25-.92.61L2.34 8H1c-.55 0-1 .45-1 1s.45 1 1 1h2c.41 0 .77-.25.92-.61l1.65-3.86 1.44 8.63h.02c.08.47.47.84.97.84.43 0 .79-.27.93-.65h.01l2.31-6.17.92 1.38.02-.01c.17.26.46.45.81.45h2c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"random\": [\"M11.48 4h1.11l-.29.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H11c-.32 0-.59.16-.77.38l-.01-.01L8.28 4.8l1.28 1.6L11.48 4zm2.23 6.29a1.003 1.003 0 00-1.42 1.42l.3.29h-1.11l-7.7-9.62h-.01A.996.996 0 003 2H1c-.55 0-1 .45-1 1s.45 1 1 1h1.52l7.7 9.62.01-.01c.18.23.45.39.77.39h1.59l-.29.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2zM2.52 12H1c-.55 0-1 .45-1 1s.45 1 1 1h2c.32 0 .59-.16.77-.38l.01.01 1.94-2.42L4.44 9.6 2.52 12z\"],\n \"record\": [\"M8 3a5 5 0 100 10A5 5 0 108 3z\"],\n \"redo\": [\"M12 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm3.71-6.71l-3-3a1.003 1.003 0 00-1.42 1.42L12.59 4H5C2.24 4 0 6.24 0 9s2.24 5 5 5h4v-2H5c-1.66 0-3-1.34-3-3s1.34-3 3-3h7.59L11.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"refresh\": [\"M14.99 6.99c-.55 0-1 .45-1 1 0 3.31-2.69 6-6 6-1.77 0-3.36-.78-4.46-2h1.46c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1s1-.45 1-1v-1.74a7.95 7.95 0 006 2.74c4.42 0 8-3.58 8-8 0-.55-.45-1-1-1zm0-7c-.55 0-1 .45-1 1v1.74a7.95 7.95 0 00-6-2.74c-4.42 0-8 3.58-8 8 0 .55.45 1 1 1s1-.45 1-1c0-3.31 2.69-6 6-6 1.77 0 3.36.78 4.46 2h-1.46c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1z\"],\n \"regression-chart\": [\"M13 6.5c0 .83.67 1.5 1.5 1.5S16 7.33 16 6.5 15.33 5 14.5 5 13 5.67 13 6.5zM8.5 5c.83 0 1.5-.67 1.5-1.5S9.33 2 8.5 2 7 2.67 7 3.5 7.67 5 8.5 5zM9 9.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5S11.33 8 10.5 8 9 8.67 9 9.5zM4.5 8C5.33 8 6 7.33 6 6.5S5.33 5 4.5 5 3 5.67 3 6.5 3.67 8 4.5 8zM15 12H3.26l12.03-8.59-.58-.81L2 11.67V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"remove\": [\"M10.99 6.99h-6c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1zm-3-7c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.68 6-6 6z\"],\n \"remove-column\": [\"M14 0H4c-.55 0-1 .45-1 1v3h2V2h3v12H5v-2H3v3c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14h-3V2h3v12zm-8.71-3.29a1.003 1.003 0 001.42-1.42L4.41 8 5.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L3 6.59l-1.29-1.3A1.003 1.003 0 00.29 6.71L1.59 8 .29 9.29a1.003 1.003 0 001.42 1.42L3 9.41l1.29 1.3z\"],\n \"remove-column-left\": [\"M4 9h4c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm11-9H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-5 14H2V2h8v12zm4 0h-3V2h3v12z\"],\n \"remove-column-right\": [\"M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM5 14H2V2h3v12zm9 0H6V2h8v12zM8 9h4c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"remove-row-bottom\": [\"M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2V6h12v8zm0-9H2V2h12v3zm-8 6h4c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"remove-row-top\": [\"M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2v-3h12v3zm0-4H2V2h12v8zM6 7h4c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"repeat\": [\"M10 5c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1.74A7.95 7.95 0 008 0C3.58 0 0 3.58 0 8c0 4.06 3.02 7.4 6.94 7.92.02 0 .04.01.06.01.33.04.66.07 1 .07 4.42 0 8-3.58 8-8 0-.55-.45-1-1-1s-1 .45-1 1c0 3.31-2.69 6-6 6-.71 0-1.37-.15-2-.38v.01C3.67 12.81 2 10.61 2 8c0-3.31 2.69-6 6-6 1.77 0 3.36.78 4.46 2H11c-.55 0-1 .45-1 1z\"],\n \"reset\": [\"M6 5c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1s1 .45 1 1v1.74A7.95 7.95 0 018 0c4.42 0 8 3.58 8 8 0 4.06-3.02 7.4-6.94 7.92-.02 0-.04.01-.06.01-.33.04-.66.07-1 .07-4.42 0-8-3.58-8-8 0-.55.45-1 1-1s1 .45 1 1c0 3.31 2.69 6 6 6 .71 0 1.37-.15 2-.38v.01c2.33-.82 4-3.02 4-5.63 0-3.31-2.69-6-6-6-1.77 0-3.36.78-4.46 2H5c.55 0 1 .45 1 1z\"],\n \"resolve\": [\"M6.6 3.3C6.1 3.1 5.6 3 5 3 2.2 3 0 5.2 0 8s2.2 5 5 5c.6 0 1.1-.1 1.6-.3C5.3 11.6 4.5 9.9 4.5 8s.8-3.6 2.1-4.7zM8 4c-1.2.9-2 2.4-2 4s.8 3.1 2 4c1.2-.9 2-2.3 2-4s-.8-3.1-2-4zm3-1c-.6 0-1.1.1-1.6.3 1.3 1.2 2.1 2.9 2.1 4.7s-.8 3.6-2.1 4.7c.5.2 1 .3 1.6.3 2.8 0 5-2.2 5-5s-2.2-5-5-5z\"],\n \"rig\": [\"M5.71 3c0 1.1.96 2 2.14 2C9.04 5 10 3.96 10 3c0-1.96-1.47-3-2.14-3H5c0 1.96 2.68 1.4.71 3zm2.5 3l.01.01s0-.01-.01-.01zm6.5 8.29L10 9.59V7c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v2.58l-4.71 4.7c-.18.19-.29.44-.29.72a1.003 1.003 0 001.71.71L6 12.42V15c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2.58l3.29 3.29a1.003 1.003 0 001.42-1.42z\"],\n \"right-join\": [\"M6.6 3.3C5.3 4.4 4.5 6.1 4.5 8s.8 3.6 2.1 4.7c-.5.2-1 .3-1.6.3-2.8 0-5-2.2-5-5s2.2-5 5-5c.6 0 1.1.1 1.6.3zm-1.96 8.68C3.92 10.83 3.5 9.46 3.5 8s.42-2.83 1.14-3.98C2.6 4.2 1 5.91 1 8s1.6 3.8 3.64 3.98zM8 4c-1.2.9-2 2.4-2 4s.8 3.1 2 4c1.2-.9 2-2.3 2-4s-.8-3.1-2-4zm3-1c2.8 0 5 2.2 5 5s-2.2 5-5 5c-.6 0-1.1-.1-1.6-.3 1.3-1.1 2.1-2.9 2.1-4.7s-.8-3.5-2.1-4.7c.5-.2 1-.3 1.6-.3z\"],\n \"ring\": [\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 12c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z\"],\n \"rotate-document\": [\"M12 2h-1.59l.29-.29c.19-.18.3-.43.3-.71A1.003 1.003 0 009.29.29l-2 2C7.11 2.47 7 2.72 7 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H12c.55 0 1 .45 1 1v3c0 .55.45 1 1 1s1-.45 1-1V5c0-1.66-1.34-3-3-3zM5.71 5.29A.997.997 0 005 5H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V9c0-.28-.11-.53-.29-.71l-3-3zM7 14H2V7h2v2c0 .55.45 1 1 1h2v4z\"],\n \"rotate-page\": [\"M8 6H2c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zm-1 8H3V8h4v6zm5-12h-1.59l.29-.29c.19-.18.3-.43.3-.71A1.003 1.003 0 009.29.29l-2 2C7.11 2.47 7 2.72 7 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H12c.55 0 1 .45 1 1v3c0 .55.45 1 1 1s1-.45 1-1V5c0-1.66-1.34-3-3-3z\"],\n \"route\": [\"M11.669 5.066l.099.189c.113.213.236.434.367.661.226.39.468.78.709 1.151l-.198-.004-.48-.004c-1.745.003-2.369.233-2.369.688 0 .053.226.19 1.038.436l.84.24C13.9 9.064 15 9.83 15 11.63c0 2.123-1.607 3.122-4.027 3.366-.651.065-1.266.075-2.043.05l-.958-.035H5.196l.268-.406c.336-.517.672-1.052.998-1.593h1.636l.572.023c.857.036 1.475.034 2.103-.03 1.526-.153 2.227-.59 2.227-1.375 0-.531-.402-.84-1.66-1.22l-.691-.198c-1.04-.293-1.764-.562-2.222-.946C8.8 8.366 9 7.612 9 6.997a5.03 5.03 0 00-.184-1.334c.645-.395 1.598-.562 2.853-.597zM4 3a4.007 4.007 0 014 3.997C8 9.21 4 15 4 15l-.416-.62C2.56 12.827 0 8.767 0 6.997A4.002 4.002 0 014 3zm0 2a2 2 0 10.001 4.001A2 2 0 004 5zm10-4c1.103 0 1.996.896 2 1.999C16 4.105 14 7 14 7l-.293-.44C13.15 5.707 12 3.838 12 2.999 12 1.896 12.897 1 14 1z\"],\n \"satellite\": [\"M3 9c0-.6.4-1 1-1s1 .4 1 1c0 1.1.9 2 2 2 .6 0 1 .4 1 1s-.4 1-1 1c-2.2 0-4-1.8-4-4zM0 9c0-.6.4-1 1-1s1 .4 1 1c0 2.8 2.2 5 5 5 .6 0 1 .4 1 1s-.4 1-1 1c-3.9 0-7-3.1-7-7zm7 1c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1zm1.3-2.8c-.4-.4-.4-1 0-1.4l4.5-4.5c.4-.4 1-.4 1.4 0l.5.5c.4.4.4 1 0 1.4l-4.5 4.5c-.4.4-1 .4-1.4 0l-.5-.5zM5.2.3c.4-.4 1-.4 1.4 0l2.1 2.1c.4.4.4 1 0 1.4l-.9.9c-.4.4-1 .4-1.4 0L4.3 2.6c-.4-.4-.4-1 0-1.4l.9-.9zm7 7c.4-.4 1-.4 1.4 0l2.1 2.1c.4.4.4 1 0 1.4l-.9.9c-.4.4-1 .4-1.4 0l-2.1-2.1c-.4-.4-.4-1 0-1.4l.9-.9z\"],\n \"saved\": [\"M6.71 9.29a1.003 1.003 0 00-1.42 1.42l2 2a.997.997 0 001.6-.27h.01l2-4h-.01c.06-.13.11-.28.11-.44 0-.55-.45-1-1-1-.39 0-.72.23-.89.56H9.1l-1.38 2.76-1.01-1.03zM9 0H3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5L9 0zm3 14H4V2h4v4h4v8z\"],\n \"scatter-plot\": [\"M15 12H2V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm-.5-7c.83 0 1.5-.67 1.5-1.5S15.33 2 14.5 2 13 2.67 13 3.5 13.67 5 14.5 5zm-3 4c.83 0 1.5-.67 1.5-1.5S12.33 6 11.5 6 10 6.67 10 7.5 10.67 9 11.5 9zm-4-2C8.33 7 9 6.33 9 5.5S8.33 4 7.5 4 6 4.67 6 5.5 6.67 7 7.5 7zm-3 4c.83 0 1.5-.67 1.5-1.5S5.33 8 4.5 8 3 8.67 3 9.5 3.67 11 4.5 11z\"],\n \"search\": [\"M15.55 13.43l-2.67-2.68a6.94 6.94 0 001.11-3.76c0-3.87-3.13-7-7-7s-7 3.13-7 7 3.13 7 7 7c1.39 0 2.68-.42 3.76-1.11l2.68 2.67a1.498 1.498 0 102.12-2.12zm-8.56-1.44c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"],\n \"search-around\": [\"M13.5 11c-.51 0-.98.15-1.38.42l-2.4-2.41c.17-.3.28-.64.28-1.01s-.11-.71-.28-1.01l2.41-2.41c.39.27.86.42 1.37.42a2.5 2.5 0 000-5A2.5 2.5 0 0011 2.5c0 .51.15.98.42 1.38l-2.41 2.4C8.71 6.11 8.37 6 8 6s-.71.11-1.01.28l-2.41-2.4c.27-.4.42-.87.42-1.38a2.5 2.5 0 00-5 0A2.5 2.5 0 002.5 5c.51 0 .98-.15 1.38-.42l2.41 2.41C6.11 7.29 6 7.63 6 8s.11.71.28 1.01l-2.41 2.41c-.39-.27-.86-.42-1.37-.42a2.5 2.5 0 000 5A2.5 2.5 0 005 13.5c0-.51-.15-.98-.42-1.38l2.41-2.41c.3.18.64.29 1.01.29s.71-.11 1.01-.28l2.41 2.41c-.27.39-.42.86-.42 1.37a2.5 2.5 0 005 0 2.5 2.5 0 00-2.5-2.5zm0-10c.83 0 1.5.67 1.5 1.5S14.33 4 13.5 4 12 3.33 12 2.5 12.67 1 13.5 1zm-11 3C1.67 4 1 3.33 1 2.5S1.67 1 2.5 1 4 1.67 4 2.5 3.33 4 2.5 4zm0 11c-.83 0-1.5-.67-1.5-1.5S1.67 12 2.5 12s1.5.67 1.5 1.5S3.33 15 2.5 15zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"],\n \"search-template\": [\"M15.55 13.43l-2.67-2.67c.7-1.09 1.11-2.38 1.11-3.77 0-3.87-3.13-7-7-7s-7 3.13-7 7 3.13 7 7 7c1.39 0 2.68-.41 3.77-1.11l2.67 2.67a1.498 1.498 0 102.12-2.12zm-8.56-1.44c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm2.5-6h-5c-.28 0-.5.22-.5.5s.22.5.5.5h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5zm0-2h-5c-.28 0-.5.22-.5.5s.22.5.5.5h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5zm0 4h-5c-.28 0-.5.22-.5.5s.22.5.5.5h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5z\"],\n \"search-text\": [\"M9 4H5c-.55 0-1 .45-1 1s.45 1 1 1h1v3c0 .55.45 1 1 1s1-.45 1-1V6h1c.55 0 1-.45 1-1s-.45-1-1-1zm6.56 9.44l-2.67-2.67C13.59 9.68 14 8.39 14 7c0-3.87-3.13-7-7-7S0 3.13 0 7s3.13 7 7 7c1.39 0 2.68-.41 3.77-1.11l2.67 2.67a1.498 1.498 0 102.12-2.12zM7 12c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"],\n \"segmented-control\": [\"M15 4H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 6H8V6h6v4z\"],\n \"select\": [\"M16 15c0-.28-.12-.52-.31-.69l.02-.02-3.12-3.12 3.41-.84-8.05-2.86c.03-.09.05-.17.05-.27V2c0-.55-.45-1-1-1H3c0-.55-.45-1-1-1S1 .45 1 1c-.55 0-1 .45-1 1s.45 1 1 1v4c0 .55.45 1 1 1h5.2c.1 0 .18-.02.27-.05L10.33 16l.85-3.41 3.12 3.12.02-.02c.16.19.4.31.68.31.04 0 .07-.02.1-.02s.06.02.1.02c.44 0 .8-.36.8-.8 0-.04-.02-.07-.02-.1s.02-.06.02-.1zM6 6H3V3h3v3z\"],\n \"selection\": [\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-9C6.34 5 5 6.34 5 8s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"],\n \"send-message\": [\"M15.398 9.01l-13.87 6.865c-.536.267-1.176.081-1.422-.427A.953.953 0 010 15v-4.838l8.67-2.168L0 5.923V1.001C0 .47.407 0 1.004 0c.169 0 .416.04.567.116L15.403 7.07a1.084 1.084 0 01-.005 1.939z\"],\n \"send-to\": [\"M15 7.5c-.8 0-1.5-.4-2-1l-1.2 1.2c-.4.5-1.1.7-1.8.7-1.4.1-2.5-1-2.5-2.4 0-.7.3-1.3.7-1.8L9.5 3c-.6-.5-1-1.2-1-2 0-.3.1-.7.2-1H8C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8v-.7c-.3.1-.6.2-1 .2zM15 0h-4c-.6 0-1 .5-1 1s.4 1 1 1h1.6L9.3 5.3c-.2.2-.3.4-.3.7 0 .5.4 1 1 1 .3 0 .5-.1.7-.3L14 3.4V5c0 .6.4 1 1 1 .5 0 1-.4 1-1V1c0-.5-.4-1-1-1z\"],\n \"send-to-graph\": [\"M6 9H2c-.55 0-1 .45-1 1s.45 1 1 1h1.59L.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L5 12.41V14c0 .55.45 1 1 1s1-.45 1-1v-4c0-.55-.45-1-1-1zm8 .5c-.56 0-1.06.23-1.42.59l-2.13-1.24L8.99 8l3.59-2.09A2.002 2.002 0 0016 4.5c0-1.1-.9-2-2-2s-2 .9-2 2c0 .19.03.37.08.54L8.5 7.13v-3.2c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S6 .9 6 2c0 .93.64 1.71 1.5 1.93v3.2l-.88-.52-2.7-1.57c.05-.17.08-.35.08-.54 0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.56 0 1.06-.23 1.42-.59l2.13 1.24 3.84 2.24 2.7 1.57c-.06.17-.09.35-.09.54 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2z\"],\n \"send-to-map\": [\"M6 9H2c-.55 0-1 .45-1 1s.45 1 1 1h1.59L.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L5 12.41V14c0 .55.45 1 1 1s1-.45 1-1v-4c0-.55-.45-1-1-1zm9.55-5.83l-4.49-3A.975.975 0 009.99.15L5.53 2.82 1.56.17A1.003 1.003 0 000 1v6h2V2.87l2.94 1.96.06.03V7h1V4.86s.01 0 .01-.01L10 2.47v8.67s-.01 0-.01.01l-.99.58v2.33l1.47-.88 3.97 2.65A1.003 1.003 0 0016 15V4c0-.35-.18-.65-.45-.83zM14 13.13l-2.94-1.96c-.02-.01-.04-.02-.05-.03v-8.6l3 2v8.59z\"],\n \"series-add\": [\"M10.68 7.9c.44.54 1.07.92 1.79 1.05l-2.76 2.76c-.18.18-.43.29-.71.29s-.53-.11-.71-.3L5 8.41l-3 3V13h13c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1s1 .45 1 1v4.59l2.29-2.3C4.47 6.11 4.72 6 5 6s.53.11.71.29L9 9.59l1.68-1.69zM15 3c.55 0 1 .45 1 1s-.45 1-1 1h-1v1c0 .55-.45 1-1 1s-1-.45-1-1V5h-1c-.55 0-1-.45-1-1s.45-1 1-1h1V2c0-.55.45-1 1-1s1 .45 1 1v1h1z\"],\n \"series-configuration\": [\"M9.94 9.64c.65.23 1.34.36 2.06.36.14 0 .29-.01.43-.01L9.7 12.71c-.18.18-.43.29-.71.29-.28 0-.53-.11-.71-.3L5 9.41l-3 3V14h12.99c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1s1 .45 1 1v4.59l2.29-2.3C4.47 7.11 4.72 7 5 7c.28 0 .53.11.71.29L9 10.59l.94-.95zm4.73-6.44h.92c.22 0 .4.18.4.4v.8c0 .22-.18.4-.4.4h-.93c-.06.2-.14.38-.24.55l.66.65c.15.15.15.4 0 .55l-.54.55c-.15.15-.4.15-.55 0l-.65-.65c-.17.1-.36.18-.55.24v.91c0 .22-.18.4-.4.4h-.8c-.22 0-.4-.18-.4-.4v-.93c-.18-.06-.36-.13-.52-.22l-.68.68c-.15.16-.41.16-.57 0l-.56-.56a.417.417 0 010-.57l.68-.68c-.08-.16-.16-.33-.22-.52h-.93c-.22 0-.4-.18-.4-.4v-.8c0-.22.18-.4.4-.4h.93c.06-.2.14-.38.24-.55l-.65-.64a.392.392 0 010-.55l.54-.55a.38.38 0 01.54 0l.65.65c.18-.1.36-.18.55-.24V.4c0-.22.18-.4.4-.4h.8c.22 0 .4.18.4.4v.93c.18.06.35.14.52.22l.68-.68c.15-.16.41-.16.57 0l.57.57c.15.16.15.41 0 .57l-.68.68c.09.16.16.33.22.51zm-4.18.8c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5c-.82 0-1.5.67-1.5 1.5z\"],\n \"series-derived\": [\"M10.66 7.92c.44.54 1.07.91 1.8 1.03L9.71 11.7c-.18.19-.43.3-.71.3s-.53-.11-.71-.3L5 8.41l-3 3V13h13c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1s1 .45 1 1v4.59l2.29-2.3C4.47 6.11 4.72 6 5 6s.53.11.71.29L9 9.59l1.66-1.67zM12.3 5.3l.3-.3H8c-.6 0-1-.4-1-1s.4-1 1-1h4.6l-.3-.3c-.2-.2-.3-.4-.3-.7 0-.6.5-1 1-1 .3 0 .5.1.7.3l2 2c.2.2.3.4.3.7s-.1.5-.3.7l-2 2c-.2.2-.4.3-.7.3-.6 0-1-.4-1-1 0-.3.1-.5.3-.7z\"],\n \"series-filtered\": [\"M9.29 9.3c.3.62.8 1.12 1.42 1.41l-1 1c-.18.18-.43.29-.71.29s-.53-.11-.71-.3L5 8.41l-3 3V13h13c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1s1 .45 1 1v4.59l2.29-2.3C4.47 6.11 4.72 6 5 6s.53.11.71.29L9 9.59l.29-.29zM15.48 1c.31 0 .52.26.52.57 0 .16-.06.3-.17.41l-2.86 2.73v2.63c0 .16-.06.3-.17.41l-.82 1.1c-.1.1-.25.17-.41.17-.31 0-.57-.26-.57-.57V4.71L8.17 1.98A.566.566 0 018 1.57c0-.31.26-.57.57-.57h6.91z\"],\n \"series-search\": [\"M9.6 8.94a4.937 4.937 0 001.82.01c.1-.01.22-.04.39-.08l.23-.07c.04-.01.08-.02.11-.04l.22.22-2.7 2.72c-.18.19-.43.3-.71.3s-.53-.11-.71-.3L4.98 8.41l-2.99 3V13h12.94c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V3.99c0-.55.45-1 1-1s1 .45 1 1v4.59l2.28-2.3c.17-.18.42-.29.7-.29s.53.11.7.29l3.28 3.3.64-.64zm6.22-.41c.1.12.17.27.18.44 0 .34-.27.61-.61.61a.57.57 0 01-.43-.18l-2.24-2.25c-.13.08-.26.16-.4.23-.02.01-.05.02-.07.03-.14.06-.27.12-.42.17h-.01c-.14.05-.29.08-.44.11-.04.01-.08.02-.11.02-.15.02-.3.04-.46.04-1.85 0-3.35-1.51-3.35-3.37S8.96 1.01 10.81 1c1.85 0 3.35 1.51 3.35 3.37 0 .16-.02.31-.04.47-.01.04-.01.07-.02.11-.02.15-.05.29-.1.44v.01c-.05.15-.11.28-.17.42-.01.02-.02.05-.03.07-.07.14-.14.27-.23.4l2.25 2.24zm-5.01-1.94c1.22 0 2.21-.99 2.21-2.22 0-1.23-.99-2.22-2.21-2.22S8.6 3.14 8.6 4.37c0 1.22.99 2.22 2.21 2.22z\"],\n \"settings\": [\"M3 1c0-.55-.45-1-1-1S1 .45 1 1v3h2V1zm0 4H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm12-4c0-.55-.45-1-1-1s-1 .45-1 1v2h2V1zM9 1c0-.55-.45-1-1-1S7 .45 7 1v6h2V1zM1 15c0 .55.45 1 1 1s1-.45 1-1v-5H1v5zM15 4h-2c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-2 11c0 .55.45 1 1 1s1-.45 1-1V9h-2v6zM9 8H7c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-2 7c0 .55.45 1 1 1s1-.45 1-1v-2H7v2z\"],\n \"share\": [\"M10.99 13.99h-9v-9h4.76l2-2H.99c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h11c.55 0 1-.45 1-1V7.24l-2 2v4.75zm4-14h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L7.29 7.28a1 1 0 00-.3.71 1.003 1.003 0 001.71.71l5.29-5.29V6c0 .55.45 1 1 1s1-.45 1-1V1c0-.56-.45-1.01-1-1.01z\"],\n \"shield\": [\"M8 16c4.667-3.048 7-7.238 7-12.571-1.556 0-3.889-1.143-7-3.429-3.111 2.286-5.444 3.429-7 3.429C1 8.762 3.333 12.952 8 16zM8 2.121c2.005 1.388 3.715 2.304 5.186 2.735-.342 3.702-2.05 6.683-5.186 9.038V2.121z\"],\n \"shop\": [\"M3 2h10c.55 0 1-.45 1-1s-.45-1-1-1H3c-.55 0-1 .45-1 1s.45 1 1 1zm9 11H4v-3H2v5c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-5h-2v3zm4-6l-1.01-3.17C14.9 3.36 14.49 3 14 3H2c-.49 0-.9.36-.98.83L.01 7H0c0 1.1.9 2 2 2s2-.9 2-2c0 1.1.9 2 2 2s2-.9 2-2c0 1.1.9 2 2 2s2-.9 2-2c0 1.1.9 2 2 2s2-.9 2-2z\"],\n \"shopping-cart\": [\"M14 10H7.72l-.33-1H13c.39 0 .72-.23.89-.56h.01l2-4h-.01c.06-.13.11-.28.11-.44 0-.55-.45-1-1-1H5.39l-.44-1.32h-.01C4.8 1.29 4.44 1 4 1H1c-.55 0-1 .45-1 1s.45 1 1 1h2.28l2.33 7H4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2h6c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2zM6.05 5h7.33l-1 2H6.72l-.67-2z\"],\n \"signal-search\": [\"M5.474 7.971A5.31 5.31 0 006.66 8.9l.007.019.018.056c.015.038.038.06.045.098l1.5 5.999a.75.75 0 01-1.455.36l-.42-1.68h-.704l-.42 1.68a.746.746 0 01-.907.547.746.746 0 01-.547-.907l1.5-6c.007-.037.03-.06.044-.097.015-.037.015-.075.038-.112a.722.722 0 01-.105-.36c0-.207.084-.394.22-.53zM2.795 5.277a.763.763 0 00-.015-1.065.756.756 0 00-1.065.015c-2.286 2.34-2.286 6.21 0 8.549a.747.747 0 101.072-1.042c-1.709-1.763-1.709-4.702.008-6.457zM7.808 9.388a5.318 5.318 0 001.58.211 2.236 2.236 0 01-.656.98.756.756 0 01-1.057-.098.756.756 0 01.097-1.057l.036-.036zM11.544 9.105l.378.378a6.02 6.02 0 01-1.638 3.285c-.285.3-.757.3-1.057.015a.74.74 0 01-.015-1.057 4.52 4.52 0 001.185-2.24c.4-.083.785-.212 1.147-.381z\", \"M4.054 9.424c-.427-.352-.352-1.582-.03-1.822a.752.752 0 00.15-1.05.752.752 0 00-1.05-.15c-1.079.802-1.221 3.18-.03 4.177a.75.75 0 10.96-1.155zM9.318 0a4.318 4.318 0 014.317 4.318c0 .206-.02.402-.049.598-.01.05-.01.088-.02.138-.039.196-.078.382-.137.569v.01c-.059.186-.137.363-.216.54l-.039.087a5.285 5.285 0 01-.294.51l2.884 2.886a.878.878 0 01.236.559.787.787 0 01-.785.785.785.785 0 01-.56-.226L11.772 7.89a5.285 5.285 0 01-.51.295l-.089.039c-.176.079-.353.157-.54.216h-.01a3.701 3.701 0 01-.568.137c-.05.01-.099.02-.138.02-.196.03-.392.049-.598.049A4.318 4.318 0 015 4.327 4.332 4.332 0 019.318 0zm-.02 1.1A3.195 3.195 0 006.1 4.298a3.195 3.195 0 003.198 3.198 3.195 3.195 0 003.198-3.198A3.195 3.195 0 009.298 1.1z\"],\n \"sim-card\": [\"M13.71 4.29l-4-4A.997.997 0 009 0H3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5c0-.28-.11-.53-.29-.71zM7 6h2v2H7V6zM4 6h2v2H4V6zm2 8H4v-2h2v2zm3 0H7v-2h2v2zm3 0h-2v-2h2v2zm0-3H4V9h8v2zm0-3h-2V6h2v2z\"],\n \"slash\": [\"M10 2a.99.99 0 00-.96.73l-2.99 9.96A1.003 1.003 0 007 14c.46 0 .85-.31.96-.73l2.99-9.96A1.003 1.003 0 0010 2z\"],\n \"small-cross\": [\"M9.41 8l2.29-2.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L8 6.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42L6.59 8 4.3 10.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L8 9.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L9.41 8z\"],\n \"small-minus\": [\"M11 7H5c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"small-plus\": [\"M11 7H9V5c0-.55-.45-1-1-1s-1 .45-1 1v2H5c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V9h2c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"small-tick\": [\"M12 5c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z\"],\n \"snowflake\": [\"M13.364 9l.879.879a1 1 0 11-1.415 1.414l-2.12-2.121A1.003 1.003 0 0110.568 9H9v1.604c.042.03.083.065.121.103l2.122 2.121a1 1 0 01-1.415 1.415L9 13.414V15a1 1 0 01-2 0v-1.636l-.879.879a1 1 0 11-1.414-1.415l2.121-2.12c.054-.054.111-.1.172-.139V9H5.38c-.038.06-.084.118-.137.172l-2.122 2.12A1 1 0 111.707 9.88L2.586 9H1a1 1 0 110-2h1.536l-.829-.828a1 1 0 011.414-1.415L5.243 6.88c.038.038.072.079.103.121H7V5.38a1.003 1.003 0 01-.172-.137L4.708 3.12A1 1 0 016.12 1.707L7 2.586V1a1 1 0 112 0v1.536l.828-.829a1 1 0 011.415 1.414L9.12 5.243A1.007 1.007 0 019 5.346V7h1.604c.03-.042.065-.083.103-.121l2.121-2.122a1 1 0 011.415 1.415L13.414 7H15a1 1 0 010 2h-1.636z\"],\n \"social-media\": [\"M9.5 4c.4 0 .8-.1 1.1-.3C12 4.5 12.9 6 13 7.6c0 .5.5.9 1 .9.6 0 1-.4 1-1v-.2c-.2-2.4-1.5-4.4-3.5-5.5-.1-1-.9-1.8-2-1.8s-2 .9-2 2 .9 2 2 2zM4 8.5c0-.7-.4-1.3-.9-1.7.3-1.4 1.2-2.6 2.5-3.3.3-.1.6-.4.6-.9s-.4-1-1-1c-.2 0-.3 0-.5.1-1.9 1-3.2 2.8-3.6 5C.4 7.1 0 7.8 0 8.5c0 1.1.9 2 2 2s2-.9 2-2zm8.8 1.2c-1.1 0-2 .9-2 2v.3c-.8.6-1.8.9-2.8.9-1.2 0-2.3-.4-3.2-1.1-.2-.2-.4-.3-.7-.3-.6 0-1 .4-1 1 0 .3.1.6.3.8C4.6 14.4 6.2 15 8 15c1.5 0 3-.5 4.1-1.3.2.1.5.1.7.1 1.1 0 2-.9 2-2s-.9-2.1-2-2.1z\"],\n \"sort\": [\"M5 12c-.28 0-.53.11-.71.29l-.29.3V9c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29A.965.965 0 001 12a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 005 12zm3-9h7c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm7 2H8c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1zm0 8H8c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H8c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"sort-alphabetical\": [\"M6 12c-.28 0-.53.11-.71.29l-.29.3V9c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29A.965.965 0 002 12a1.003 1.003 0 00-.71 1.71l2 2c.19.18.44.29.71.29.28 0 .53-.11.71-.29l2-2c.18-.18.29-.43.29-.71a.99.99 0 00-1-1zm7.93-.95v-1.04H9.25v1.11h2.94L9 14.96V16h5.02v-1.11h-3.27l3.18-3.84zm-1.42-4.84l.62 1.78H15L11.94.01H10.1L7 7.99h1.81l.64-1.78h3.06zm-1.52-4.24h.02l1.03 2.93H9.92l1.07-2.93z\"],\n \"sort-alphabetical-desc\": [\"M5.99 11.99c-.28 0-.53.11-.71.29l-.29.29V8.99c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29a1.003 1.003 0 00-1.42 1.42l2 2c.18.18.43.29.71.29.28 0 .53-.11.71-.29l2-2c.18-.18.29-.43.29-.71 0-.56-.45-1.01-1-1.01zM12.7 10h-1.38L9 15.99h1.36l.48-1.33h2.3l.46 1.33H15L12.7 10zm-1.51 3.67l.8-2.2h.02l.77 2.2h-1.59zm3.8-7.17h-4.57l4.45-5.12V0H8.34v1.48h4.1L7.99 6.59v1.39h7V6.5z\"],\n \"sort-asc\": [\"M8 7h3c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm0-4h1c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm0 8h5c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm-3 1c-.28 0-.53.11-.71.29l-.29.3V9c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29A.965.965 0 001 12a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 005 12zm10 1H8c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"sort-desc\": [\"M5 12c-.28 0-.53.11-.71.29l-.29.3V9c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29A.965.965 0 001 12a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 005 12zm4 1H8c-.55 0-1 .45-1 1s.45 1 1 1h1c.55 0 1-.45 1-1s-.45-1-1-1zm4-8H8c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm-2 4H8c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1zm4-8H8c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"sort-numerical\": [\"M6 11.99c-.28 0-.53.11-.71.29l-.29.3V8.99c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29c-.18-.18-.43-.3-.71-.3a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29.28 0 .53-.11.71-.29l2-2A1.003 1.003 0 006 11.99zm7.91-.08c-.06-.36-.17-.68-.33-.96-.16-.28-.37-.51-.64-.69-.27-.17-.61-.26-1.03-.26-.28 0-.54.06-.78.17-.23.11-.43.26-.6.45-.17.19-.3.41-.39.67a2.492 2.492 0 00-.04 1.52 1.623 1.623 0 00.89 1.03c.22.11.45.16.68.16.26 0 .5-.05.7-.15s.38-.26.53-.5l.02.02c-.01.16-.03.34-.07.54-.03.2-.09.4-.17.57-.08.18-.18.33-.31.45s-.29.19-.5.19a.63.63 0 01-.48-.21c-.13-.14-.21-.31-.25-.5H10.1c.03.25.1.48.19.68.1.2.22.37.38.5.16.14.33.24.54.31s.42.1.65.1c.39 0 .72-.09.99-.27.27-.18.49-.41.66-.7.17-.29.29-.61.37-.97.08-.36.12-.72.12-1.07 0-.36-.03-.72-.09-1.08zm-1.14.54c-.04.13-.09.24-.16.34a.78.78 0 01-.27.24c-.11.06-.24.09-.39.09a.75.75 0 01-.37-.09.777.777 0 01-.26-.25c-.07-.1-.12-.22-.15-.35-.03-.13-.05-.26-.05-.4 0-.13.02-.26.05-.39.04-.13.09-.24.16-.34.07-.1.16-.18.26-.24s.22-.09.35-.09c.14 0 .26.03.37.09.11.06.2.14.28.24a1.32 1.32 0 01.23.74c0 .15-.02.28-.05.41zm-1.56-4.47H13V0h-1.42c-.05.3-.16.56-.31.76-.16.21-.35.37-.58.5-.23.13-.49.21-.78.26-.3.05-.6.07-.91.06V2.8h2.21v5.18z\"],\n \"sort-numerical-desc\": [\"M6 11.99c-.28 0-.53.11-.71.29l-.29.3V8.99c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29a.982.982 0 00-.71-.3 1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 006 11.99zm7.86-9.45c-.09-.48-.26-.9-.5-1.28S12.8.58 12.4.35C12 .12 11.49 0 10.86 0c-.43 0-.82.07-1.17.22s-.65.35-.9.6-.44.55-.58.89c-.14.34-.2.71-.2 1.11 0 .31.05.61.15.91.1.3.26.57.48.8.23.24.52.43.85.58.33.14.68.21 1.03.21.4 0 .75-.07 1.05-.2.3-.13.57-.35.79-.66l.02.02c-.02.21-.05.45-.1.73-.05.27-.13.53-.25.76-.12.24-.27.44-.47.6-.19.16-.44.25-.75.25a.98.98 0 01-.72-.29c-.19-.18-.31-.4-.37-.66H8.15c.05.34.14.64.29.9.15.26.34.49.57.67.23.18.5.32.8.41.31.1.63.15.98.15.58 0 1.08-.12 1.48-.36.4-.24.73-.55.99-.93.26-.39.44-.82.56-1.29.12-.48.18-.96.18-1.44s-.05-.96-.14-1.44zm-1.71.72c-.05.17-.14.32-.24.46-.11.13-.24.24-.41.31-.16.08-.36.12-.58.12-.21 0-.39-.04-.55-.13-.16-.08-.29-.19-.39-.33-.12-.14-.19-.29-.24-.46-.05-.17-.08-.35-.08-.54 0-.18.03-.35.08-.52.06-.16.14-.31.25-.44.11-.13.24-.24.4-.32.16-.08.33-.12.52-.12.21 0 .4.04.56.12.16.08.3.19.41.32.11.14.2.29.26.46.06.17.09.35.09.52 0 .2-.03.38-.08.55zm-.46 7.31c-.12.15-.26.28-.44.37-.17.09-.37.16-.58.2-.22.04-.44.05-.67.05v.92h1.65v3.88h1.33V10h-1.06c-.03.23-.11.42-.23.57z\"],\n \"split-columns\": [\"M12 10a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H9V2h3v1.71c.31-.13.64-.21 1-.21s.69.08 1 .21V1c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v2.71c.31-.13.64-.21 1-.21s.69.08 1 .21V2h3v5H3.41l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L3.41 9H7v5H4v-1.71c-.31.13-.64.21-1 .21s-.69-.08-1-.21V15c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-2.71c-.31.13-.64.21-1 .21s-.69-.08-1-.21V14H9V9h3.59l-.29.29c-.19.18-.3.43-.3.71z\"],\n \"square\": [\"M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2V2h12v12z\"],\n \"stacked-chart\": [\"M10 2c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1v3h3V2zm3 10h1c.55 0 1-.45 1-1V8h-3v3c0 .55.45 1 1 1zm2-7c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v2h3V5zm-5 1H7v3h3V6zM5 7c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v1h3V7zm3 5h1c.55 0 1-.45 1-1v-1H7v1c0 .55.45 1 1 1zm7 1H2c-.55 0-1 .45-1 1s.45 1 1 1h13c.55 0 1-.45 1-1s-.45-1-1-1zM3 12h1c.55 0 1-.45 1-1V9H2v2c0 .55.45 1 1 1z\"],\n \"star\": [\"M8 0l2.5 5.3 5.5.8-4 4.1.9 5.8L8 13.3 3.1 16l.9-5.8-4-4.1 5.5-.8z\"],\n \"star-empty\": [\"M16 6.11l-5.53-.84L8 0 5.53 5.27 0 6.11l4 4.1L3.06 16 8 13.27 12.94 16 12 10.21l4-4.1zM4.91 13.2l.59-3.62L3 7.02l3.45-.53L8 3.2l1.55 3.29 3.45.53-2.5 2.56.59 3.62L8 11.49 4.91 13.2z\"],\n \"step-backward\": [\"M12 3c-.24 0-.44.09-.62.23l-.01-.01L7 6.72V4c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V9.28l4.38 3.5.01-.01c.17.14.37.23.61.23.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"step-chart\": [\"M15 12H2v-2h3c.55 0 1-.45 1-1V7h2v1c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V5h1c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1v3h-2V6c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v2H2V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"step-forward\": [\"M12 3h-1c-.55 0-1 .45-1 1v2.72l-4.38-3.5v.01A.987.987 0 005 3c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1 .24 0 .44-.09.62-.23l.01.01L10 9.28V12c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"stop\": [\"M12 3H4c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"stopwatch\": [\"M9 2v1.083A6.002 6.002 0 018 15 6 6 0 017 3.083V2H6a1 1 0 110-2h4a1 1 0 010 2H9zM8 5a4 4 0 104 4H8V5z\"],\n \"strikethrough\": [\"M14 7H8.65c-.38-.09-.73-.18-1.04-.26-.31-.08-.49-.13-.54-.14-.43-.11-.79-.29-1.05-.52-.27-.23-.4-.55-.4-.95 0-.29.07-.53.21-.72s.32-.34.54-.46c.22-.11.46-.19.72-.24.26-.05.52-.07.77-.07.74 0 1.36.15 1.84.46.32.2.55.5.68.9h2.22c-.06-.33-.17-.64-.32-.92-.25-.45-.59-.84-1.02-1.15-.43-.31-.93-.54-1.49-.7S8.59 2 7.95 2c-.55 0-1.1.07-1.63.2-.54.13-1.02.34-1.45.62-.42.28-.76.63-1.02 1.05-.26.42-.39.92-.39 1.5 0 .3.04.59.13.88.08.26.21.51.39.75H2c-.55 0-1 .45-1 1s.45 1 1 1h7.13c.25.07.49.14.71.22.25.09.48.23.7.44.21.21.32.53.32.97 0 .21-.05.43-.14.63-.09.21-.24.39-.45.55-.21.16-.48.29-.81.39-.33.1-.73.15-1.2.15-.44 0-.84-.05-1.21-.14-.37-.09-.7-.24-.99-.43-.29-.2-.51-.45-.67-.76-.01 0-.01-.01-.02-.02H3.14a3.68 3.68 0 001.39 2.03c.46.34 1 .58 1.62.74.61.15 1.27.23 1.97.23.61 0 1.2-.07 1.79-.2.58-.13 1.11-.34 1.56-.63.46-.29.83-.66 1.11-1.11.28-.45.42-1 .42-1.64 0-.3-.05-.6-.15-.9-.05-.19-.13-.36-.22-.52H14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"style\": [\"M14 14H2V2h8.76l2-2H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V6.24l-2 2V14zm1.4-14L9.7 5.7l2.1 2.1L16 3.6V0h-.6zM4 11.92c2.33.15 4.42.15 6.15-1.5.82-.83.82-2.25 0-3.08-.45-.38-.98-.6-1.5-.6-.53 0-1.05.22-1.43.6-.82.91-1.27 3.38-3.22 4.58z\"],\n \"swap-horizontal\": [\"M0 7.02L.05 7H0v.02zm2-2.03h9.57l-1.29 1.29A1.003 1.003 0 0011.7 7.7l2.99-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2.99-3a1.07 1.07 0 00-.71-.28 1.003 1.003 0 00-.71 1.71L11.57 3H2c-.55 0-1 .45-1 1a1 1 0 001 .99zM15.96 9H16v-.02l-.04.02zM14 11.01H4.43l1.29-1.29A1.003 1.003 0 004.3 8.3l-2.99 3a.99.99 0 00-.29.7c0 .28.11.53.29.71l2.99 3a1.003 1.003 0 001.42-1.42L4.43 13H14c.55 0 1-.45 1-1s-.45-.99-1-.99z\"],\n \"swap-vertical\": [\"M9 0h-.02L9 .04V0zM7 16h.02L7 15.95V16zM4.7 1.31c-.18-.18-.43-.29-.7-.29s-.53.11-.71.29l-3 2.99a1.003 1.003 0 001.42 1.42L3 4.43V14c0 .55.45 1 1 1s1-.45 1-1V4.43l1.29 1.29c.18.18.43.29.7.29A1.003 1.003 0 007.7 4.3l-3-2.99zM15 9.99c-.28 0-.53.11-.71.29L13 11.57V2c0-.55-.45-1-1-1s-1 .45-1 1v9.57l-1.29-1.29a.99.99 0 00-.7-.29 1.003 1.003 0 00-.71 1.71l3 2.99c.18.18.43.29.71.29.28 0 .53-.11.71-.29l3-2.99c.18-.18.29-.43.29-.71-.01-.55-.46-1-1.01-1z\"],\n \"symbol-circle\": [\"M8 3.01a5 5 0 100 10 5 5 0 100-10z\"],\n \"symbol-cross\": [\"M12 6.01h-2v-2c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v2H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2h2c.55 0 1-.45 1-1v-2c0-.56-.45-1-1-1z\"],\n \"symbol-diamond\": [\"M12 8.01c0-.19-.07-.36-.16-.51l.01-.01-3-5-.01.01c-.17-.29-.48-.49-.84-.49s-.67.2-.84.49l-.02-.01-3 5 .02.01c-.09.15-.16.32-.16.51s.07.36.16.51h-.02l3 5 .01-.01c.18.29.49.5.85.5s.67-.2.84-.49l.01.01 3-5-.01-.01c.09-.16.16-.32.16-.51z\"],\n \"symbol-square\": [\"M12 3.01H4c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-8c0-.56-.45-1-1-1z\"],\n \"symbol-triangle-down\": [\"M13 4.01c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 .16.05.31.11.44H3.1l4 8h.01c.16.33.49.56.89.56s.72-.23.89-.56h.01l4-8h-.01c.06-.14.11-.28.11-.44z\"],\n \"symbol-triangle-up\": [\"M12.89 11.56l-3.99-8h-.01c-.17-.32-.5-.55-.89-.55s-.72.23-.89.55H7.1l-4 8h.01c-.06.14-.11.29-.11.45 0 .55.45 1 1 1h8c.55 0 1-.45 1-1 0-.16-.05-.31-.11-.45z\"],\n \"tag\": [\"M1 3a2 2 0 012-2h4.584a2 2 0 011.414.586l5.413 5.412a2 2 0 010 2.829L9.827 14.41a2 2 0 01-2.829 0L1.586 8.998A2 2 0 011 7.584V3zm3.487-.007a1.494 1.494 0 100 2.988 1.494 1.494 0 000-2.988z\"],\n \"take-action\": [\"M9 11a1.003 1.003 0 001.71.71l4-4a1.003 1.003 0 00-1.42-1.42l-4 4c-.18.18-.29.43-.29.71zM4 6c.28 0 .53-.11.71-.29l4-4A1.003 1.003 0 007.29.29l-4 4A1.003 1.003 0 004 6zm4 4l5-5-.79-.79.5-.5a1.003 1.003 0 00-1.42-1.42l-.5.5L10 2 5 7l.79.79-5.5 5.5a1.003 1.003 0 001.42 1.42l5.5-5.5L8 10zm7 4H7c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"taxi\": [\"M15.12 6.63h-.38L15 7c-.01.3-.01.64 0 .98V8c0 .07-.03.13-.04.19h.02L14 13.1v.9c0 .55-.45 1-1 1s-1-.45-1-1v-1H4v1c0 .55-.45 1-1 1s-1-.45-1-1v-.9l-.98-4.9h.02C1.03 8.13 1 8.07 1 8H.99c0-.33 0-.67.01-1l.26-.37H.88C.4 6.63 0 6.21 0 5.69s.4-.94.88-.94h1.05l.77-2.11c.19-.53.76-1.08 1.26-1.24 0 0 .68-.2 2.05-.32C6.01 1.05 6 1.03 6 1c0-.55.45-1 1-1h2c.55 0 1 .45 1 1 0 .03-.01.05-.02.08 1.37.12 2.05.32 2.05.32.51.15 1.08.71 1.27 1.24l.76 2.12h1.05c.49 0 .89.42.89.93 0 .52-.4.94-.88.94zM11 10h2V8h-2v2zm-8 0h2V8H3v2zm10-5l-.73-1.63C12.21 3.19 12.18 3 12 3H4c-.18 0-.21.19-.27.37L3 5c-.06.18-.18 1 0 1h10c.18 0 .06-.82 0-1z\"],\n \"text-highlight\": [\"M9 10H2V6h7V4H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h8v-2zm4 3h-1V3h1c.55 0 1-.45 1-1s-.45-1-1-1h-1c-.37 0-.7.11-1 .28-.3-.17-.63-.28-1-.28H9c-.55 0-1 .45-1 1s.45 1 1 1h1v10H9c-.55 0-1 .45-1 1s.45 1 1 1h1c.37 0 .7-.11 1-.28.3.17.63.28 1 .28h1c.55 0 1-.45 1-1s-.45-1-1-1zm2-9h-2v2h1v4h-1v2h2c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1z\"],\n \"th\": [\"M15 1H1c-.6 0-1 .5-1 1v12c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1zM6 13H2v-2h4v2zm0-3H2V8h4v2zm0-3H2V5h4v2zm8 6H7v-2h7v2zm0-3H7V8h7v2zm0-3H7V5h7v2z\"],\n \"th-derived\": [\"M5.6 10l-.3.3c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3l2-2c.2-.2.3-.4.3-.7s-.1-.5-.3-.7l-2-2C6.5 6.1 6.3 6 6 6c-.5 0-1 .4-1 1 0 .3.1.5.3.7l.3.3H1c-.6 0-1 .4-1 1s.4 1 1 1h4.6zM15 1H2c-.5 0-1 .5-1 1v5h2V5h11v2H8.8l.6.6c.1.1.2.3.3.4H14v2H9.7c-.1.1-.2.3-.3.4l-.6.6H14v2H3v-2H1v3c0 .5.5 1 1 1h13c.6 0 1-.5 1-1V2c0-.5-.4-1-1-1z\"],\n \"th-disconnect\": [\"M12 1h3c.6 0 1 .5 1 1v12c0 .6-.4 1-1 1h-4.97l.286-2H14v-2h-3.398l.143-1H14V8h-2.97l.143-1H14V5h-2.541l.51-3.576C11.99 1.282 12 1.14 12 1zM5.97 1l-.572 4H2v2h3.112L4.97 8H2v2h2.684l-.143 1H2v2h2.255l-.225 1.576c-.02.142-.03.284-.03.424H1c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1h4.97zM8.01.859a1 1 0 111.98.282l-2 14a1 1 0 11-1.98-.282l2-14z\"],\n \"th-filtered\": [\"M10 10h3l1.78-2.226a1 1 0 00.22-.625V4.3l1-.9V14c0 .6-.4 1-1 1H1c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1h4.333L9 4.3V5H7v2h2v1H7v2h3zm-4 3v-2H2v2h4zm0-3V8H2v2h4zm0-3V5H2v2h4zm8 6v-2H7v2h7z\", \"M15.48 0c.31 0 .52.26.52.57 0 .16-.06.3-.17.41l-2.86 2.73v2.63c0 .16-.06.3-.17.41l-.82 1.1c-.1.1-.25.17-.41.17-.31 0-.57-.26-.57-.57V3.71L8.17.98A.566.566 0 018 .57c0-.31.26-.57.57-.57h6.91z\"],\n \"th-list\": [\"M15 1H1c-.6 0-1 .5-1 1v12c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1zm-1 12H2v-2h12v2zm0-3H2V8h12v2zm0-3H2V5h12v2z\"],\n \"thumbs-down\": [\"M2 2H0v7h2c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm13.99 4.38c.08-.58-.44-1.02-1.15-1.05-.25-.01-.52-.03-.81-.05.02 0 .05-.01.07-.01.7-.1 1.34-.49 1.41-1.07.06-.58-.46-.97-1.17-1.04-.25-.02-.52-.04-.79-.06.47-.15.84-.42.87-.93.04-.58-.79-1.03-1.5-1.09-.27-.02-.51-.04-.73-.05h-.09c-.23-.02-.43-.02-.62-.03C8.35.95 5.66 1.47 4 2.51v6c2.14 1.29 4.76 3.59 4.21 5.51-.18.59.31 1.05.98.98.81-.09 1.37-.91 1.4-1.78.04-1-.15-2.01-.5-2.91-.04-.25.01-.5.37-.53.49-.03 1.11-.06 1.59-.08.26 0 .51-.01.75-.02h.01c.41-.02.8-.05 1.13-.09.7-.09 1.35-.47 1.43-1.05.08-.58-.44-.97-1.15-1.05-.05-.01-.11-.01-.16-.02.17-.01.33-.03.49-.05.72-.08 1.37-.46 1.44-1.04z\"],\n \"thumbs-up\": [\"M15.99 9.62c-.08-.58-.73-.96-1.43-1.05-.15-.02-.32-.04-.49-.05.06-.01.11-.01.16-.02.71-.08 1.23-.47 1.15-1.05-.08-.58-.73-.96-1.43-1.05-.34-.04-.72-.07-1.13-.09h-.01c-.24-.01-.49-.02-.75-.02-.48-.02-1.11-.04-1.59-.08-.36-.03-.41-.28-.37-.53.35-.9.54-1.91.5-2.91-.04-.85-.6-1.68-1.41-1.77-.67-.07-1.16.39-.99.98C8.76 3.91 6.13 6.2 4 7.49v6c1.66 1.03 4.35 1.56 7.48 1.5.19 0 .39-.01.62-.02h.09c.22-.01.46-.03.73-.05.71-.06 1.54-.51 1.5-1.09-.03-.51-.4-.79-.87-.93.27-.02.54-.04.79-.06.71-.06 1.24-.45 1.17-1.04-.06-.58-.7-.97-1.41-1.07-.02 0-.05-.01-.07-.01.29-.02.57-.03.81-.05.71-.03 1.23-.47 1.15-1.05zM2 7H0v7h2c.55 0 1-.45 1-1V8c0-.56-.45-1-1-1z\"],\n \"tick\": [\"M14 3c-.28 0-.53.11-.71.29L6 10.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4c.18.18.43.29.71.29s.53-.11.71-.29l8-8A1.003 1.003 0 0014 3z\"],\n \"tick-circle\": [\"M8 16c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm4-11c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z\"],\n \"time\": [\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm1-6.41V4c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L9 7.59z\"],\n \"timeline-area-chart\": [\"M15 2.59L9.91 7.68 6.6 5.2l-.01.01C6.42 5.09 6.23 5 6 5c-.24 0-.44.09-.62.23v-.01L3 7.12V11h12V2.59zM15 12H2V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"timeline-bar-chart\": [\"M8 12h1c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1zm5 0h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1zm2 1H2c-.55 0-1 .45-1 1s.45 1 1 1h13c.55 0 1-.45 1-1s-.45-1-1-1zM3 12h1c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1z\"],\n \"timeline-events\": [\"M8 11H7v1h1v-1zm-4 0H3v1h1v-1zm7-8c.6 0 1-.5 1-1V1c0-.5-.4-1-1-1s-1 .5-1 1v1c0 .5.5 1 1 1zM4 3c.5 0 1-.5 1-1V1c0-.5-.5-1-1-1S3 .5 3 1v1c0 .5.5 1 1 1zm10-2h-1v1c0 1.1-.9 2-2 2s-2-.9-2-2V1H6v1c0 1.1-.9 2-2 2s-2-.9-2-2V1H1c-.5 0-1 .5-1 1v12c0 .5.5 1 1 1h13c.6 0 1-.5 1-1V2c0-.5-.4-1-1-1zM5 13H2v-3h3v3zm0-4H2V6h3v3zm4 4H6v-3h3v3zm0-4H6V6h3v3zm4 4h-3v-3h3v3zm0-4h-3V6h3v3zm-1-2h-1v1h1V7z\"],\n \"timeline-line-chart\": [\"M15 12H2V9.41l3-3L8.29 9.7c.18.19.43.3.71.3s.53-.11.71-.29l6-6a1.003 1.003 0 00-1.42-1.42L9 7.59l-3.29-3.3C5.53 4.11 5.28 4 5 4s-.53.11-.71.29L2 6.59V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"tint\": [\"M7.88 1s-4.9 6.28-4.9 8.9c.01 2.82 2.34 5.1 4.99 5.1 2.65-.01 5.03-2.3 5.03-5.13C12.99 7.17 7.88 1 7.88 1z\"],\n \"torch\": [\"M5 15c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H5v1zm7-15H4c-.55 0-1 .45-1 1v1h10V1c0-.55-.45-1-1-1zM5 7v6h6V7l2-4H3l2 4zm2 0c0-.55.45-1 1-1s1 .45 1 1v2c0 .55-.45 1-1 1s-1-.45-1-1V7z\"],\n \"tractor\": [\"M3.5 9a3.5 3.5 0 110 7 3.5 3.5 0 010-7zm9.5 1a3 3 0 110 6 3 3 0 010-6zm-9.5 1a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm9.5 1a1 1 0 100 2 1 1 0 000-2zM5 0c1.46 0 2.527.668 3 2l.815 3.255a78.9 78.9 0 012.186.195L11 2h2l.001 3.688c.698.095 1.37.198 2.013.312.623.11.986.479.986 1v3.354a4.001 4.001 0 00-6.873 1.645H7.999l-.026-.002A4.5 4.5 0 00.659 9.01l-.654.001v-.829C.003 7.386.002 6.423 0 6.022 0 5.5.376 4.99 1 4.99V1a1 1 0 011-1h3zm1 2H3v2.99c1.29.024 2.554.069 3.781.135L6 2z\"],\n \"train\": [\"M13 14h-1l1 2H3l1-2H3c-1.1 0-2-.9-2-2V2C1 .9 4.13 0 8 0s7 .9 7 2v10c0 1.1-.9 2-2 2zm-2-2h2v-2h-2v2zM9 7h4V3H9v4zm-6 5h2v-2H3v2zm0-5h4V3H3v4z\"],\n \"translate\": [\"M15.89 14.56l-3.99-8h-.01c-.17-.33-.5-.56-.89-.56s-.72.23-.89.56h-.01L9 8.76 7.17 7.38l.23-.18C8.37 6.47 9 5.31 9 4V3h1c.55 0 1-.45 1-1s-.45-1-1-1H7c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1H1c-.55 0-1 .45-1 1s.45 1 1 1h6v1c0 .66-.32 1.25-.82 1.61l-.68.51-.68-.5C4.32 5.25 4 4.66 4 4H2c0 1.31.63 2.47 1.6 3.2l.23.17L1.4 9.2l.01.01C1.17 9.4 1 9.67 1 10c0 .55.45 1 1 1 .23 0 .42-.09.59-.21l.01.01 2.9-2.17 2.6 1.95-1.99 3.98h.01c-.07.13-.12.28-.12.44 0 .55.45 1 1 1 .39 0 .72-.23.89-.56h.01L8.62 14h4.76l.72 1.45h.01c.17.32.5.55.89.55.55 0 1-.45 1-1 0-.16-.05-.31-.11-.44zM9.62 12L11 9.24 12.38 12H9.62z\"],\n \"trash\": [\"M14.49 3.99h-13c-.28 0-.5.22-.5.5s.22.5.5.5h.5v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-10h.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5zm-8.5 9c0 .55-.45 1-1 1s-1-.45-1-1v-6c0-.55.45-1 1-1s1 .45 1 1v6zm3 0c0 .55-.45 1-1 1s-1-.45-1-1v-6c0-.55.45-1 1-1s1 .45 1 1v6zm3 0c0 .55-.45 1-1 1s-1-.45-1-1v-6c0-.55.45-1 1-1s1 .45 1 1v6zm2-12h-4c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1h-4c-.55 0-1 .45-1 1v1h14v-1c0-.55-.45-1-1-1z\"],\n \"tree\": [\"M9 11.857V16H7v-4.143L1 13l3.885-4.44L3 9l3.07-4.297L5 5l3-5 3 5-1.07-.297L13 9l-1.885-.44L15 13l-6-1.143z\"],\n \"trending-down\": [\"M15 7c-.55 0-1 .45-1 1v.59l-4.29-4.3A.997.997 0 009 4c-.16 0-.31.05-.44.11V4.1L5 5.88 1.45 4.11v.01C1.31 4.05 1.16 4 1 4c-.55 0-1 .45-1 1 0 .39.23.72.56.89v.01l4 2v-.01c.13.06.28.11.44.11s.31-.05.44-.11v.01L8.8 6.22 12.59 10H12c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1z\"],\n \"trending-up\": [\"M15 4h-3c-.55 0-1 .45-1 1s.45 1 1 1h.59L8.8 9.78 5.45 8.11v.01C5.31 8.05 5.16 8 5 8s-.31.05-.44.11V8.1l-4 2v.01c-.33.17-.56.5-.56.89 0 .55.45 1 1 1 .16 0 .31-.05.44-.11v.01L5 10.12l3.55 1.78v-.01c.14.06.29.11.45.11.28 0 .53-.11.71-.29L14 7.41V8c0 .55.45 1 1 1s1-.45 1-1V5c0-.55-.45-1-1-1z\"],\n \"truck\": [\"M12.5 0a.5.5 0 01.5.5V9a1 1 0 011 1v2h.5a.5.5 0 01.5.5v1a.5.5 0 01-.5.5H13v1a1 1 0 01-2 0v-1H5v1a1 1 0 01-2 0v-1H1.5a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5H2v-2a1 1 0 011-1V.5a.5.5 0 011 0V3a2 2 0 012-2h4a2 2 0 012 2V.5a.5.5 0 01.5-.5zM9 8H7a1 1 0 00-1 1v2a1 1 0 001 1h2a1 1 0 001-1V9a1 1 0 00-1-1zm3.5 3h-1a.5.5 0 100 1h1a.5.5 0 100-1zm-8 0h-1a.5.5 0 100 1h1a.5.5 0 100-1zM9 9a.5.5 0 01.5.5v1l-.008.09A.5.5 0 019 11H7l-.09-.008a.5.5 0 01-.41-.492v-1l.008-.09A.5.5 0 017 9zm2-5H5v2h6V4z\"],\n \"two-columns\": [\"M3.99-.01h-3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-14c0-.55-.45-1-1-1zm11.71 7.3l-2-2a1.003 1.003 0 00-1.71.71v4a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71s-.11-.53-.29-.71zM9.99-.01h-3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-14c0-.55-.45-1-1-1z\"],\n \"unarchive\": [\"M13.382 0a1 1 0 01.894.553L16 4v11a1 1 0 01-1 1H1a1 1 0 01-1-1V4L1.724.553A1 1 0 012.618 0h10.764zM8 6c-.28 0-.53.11-.71.29l-2 2-.084.096A1.003 1.003 0 006.71 9.71l.29-.3V12l.007.116c.058.496.482.884.993.884.55 0 1-.45 1-1V9.41l.29.29.081.076A.97.97 0 0010 10a1.003 1.003 0 00.71-1.71l-2-2-.096-.084A1.002 1.002 0 008 6zm5-4H3L2 4h12l-1-2z\"],\n \"underline\": [\"M8 14c2.8 0 5-2.2 5-5V3c0-.6-.4-1-1-1s-1 .4-1 1v6c0 1.7-1.3 3-3 3s-3-1.3-3-3V3c0-.6-.4-1-1-1s-1 .4-1 1v6c0 2.8 2.2 5 5 5zM13.5 15h-11c-.3 0-.5.2-.5.5s.2.5.5.5h11c.3 0 .5-.2.5-.5s-.2-.5-.5-.5z\"],\n \"undo\": [\"M4 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm7-7H3.41L4.7 2.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C.11 4.47 0 4.72 0 5c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L3.41 6H11c1.66 0 3 1.34 3 3s-1.34 3-3 3H7v2h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\"],\n \"ungroup-objects\": [\"M3.5 5C1.57 5 0 6.57 0 8.5S1.57 12 3.5 12 7 10.43 7 8.5 5.43 5 3.5 5zm9 0C10.57 5 9 6.57 9 8.5s1.57 3.5 3.5 3.5S16 10.43 16 8.5 14.43 5 12.5 5z\"],\n \"unknown-vehicle\": [\"M10.507 9.75v-3.5c0-.089.023-.171.051-.25h-7.55c-.176 0-.061-.824 0-1l.729-1.63c.06-.177.095-.37.27-.37h4.5V1.01c-.166-.003-.32-.01-.5-.01-2.72 0-4.036.402-4.036.402-.508.155-1.079.711-1.268 1.237L1.94 4.756H.887c-.483 0-.88.423-.88.939s.397.939.88.939h.376L1.008 7c-.034.685 0 1.436 0 2v5c0 .657.384 1 1 1s1-.343 1-1v-1h10v1c0 .657.383 1 1 1s1-.343 1-1v-3.5h-3.75a.75.75 0 01-.75-.75zm-5.5.25h-2V8h2v2zm11-4.305zM15.34.826a2.807 2.807 0 00-.932-.598c-.386-.16-.868-.241-1.445-.241-.447 0-.851.076-1.213.228-.362.153-.67.364-.926.636s-.456.592-.598.963a3.535 3.535 0 00-.218 1.144V3h1.789c.003-.208.023-.405.069-.588.049-.193.124-.362.225-.506.102-.144.232-.259.39-.345.159-.087.348-.13.567-.13.325 0 .58.09.762.272.183.18.275.46.275.839.008.222-.031.407-.116.555a1.654 1.654 0 01-.335.408 7.4 7.4 0 01-.452.37c-.162.123-.316.27-.463.438a2.556 2.556 0 00-.384.611c-.11.239-.177.535-.2.889V6h1.645v-.1c.032-.248.111-.453.237-.618.126-.164.27-.31.433-.438.163-.128.335-.255.518-.383a2.413 2.413 0 00.878-1.117c.102-.255.152-.58.152-.975A2.241 2.241 0 0015.34.826zM12.007 7v2h2V7h-2z\"],\n \"unlock\": [\"M11.99-.01c-2.21 0-4 1.79-4 4v3h-7c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-7c0-.55-.45-1-1-1h-3v-3c0-1.1.9-2 2-2s2 .9 2 2v1c0 .55.45 1 1 1s1-.45 1-1v-1c0-2.21-1.79-4-4-4z\"],\n \"unpin\": [\"M9.39 1c-.5.5-.4 1.48.15 2.53L4.38 7.54C2.85 6.5 1.52 6.07 1 6.59l3.5 3.5c-.02.02-1.4 2.8-1.4 2.8l2.8-1.4 3.5 3.5c.53-.53.1-1.86-.95-3.38l4.02-5.16c1.04.55 2.01.65 2.51.14L9.39 1z\"],\n \"unresolve\": [\"M11 3c-.55 0-1.07.09-1.57.26a6.46 6.46 0 010 9.48c.5.17 1.02.26 1.57.26 2.76 0 5-2.24 5-5s-2.24-5-5-5zM9.78 9.38l.09-.27c.08-.36.13-.73.13-1.11s-.05-.75-.13-1.11l-.09-.27a5.32 5.32 0 00-.29-.79l-.12-.21c-.14-.27-.31-.52-.51-.76a.7.7 0 00-.08-.1c-.24-.27-.49-.52-.78-.74-.43-.32-.92-.58-1.45-.75l.01-.01c-.1-.03-.2-.05-.3-.08-.12-.03-.23-.07-.36-.09A5.28 5.28 0 005 3C2.24 3 0 5.24 0 8s2.24 5 5 5c.31 0 .61-.04.9-.09.12-.02.24-.06.36-.09.1-.03.21-.04.3-.08l-.01-.01c.88-.29 1.64-.8 2.22-1.49.03-.03.06-.07.09-.1.19-.24.36-.49.51-.76.04-.07.08-.14.11-.21.13-.25.23-.52.3-.79z\"],\n \"updated\": [\"M8 0a7.95 7.95 0 00-6 2.74V1c0-.55-.45-1-1-1S0 .45 0 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.54C4.64 2.78 6.22 2 8 2c3.31 0 6 2.69 6 6 0 2.61-1.67 4.81-4 5.63-.63.22-1.29.37-2 .37-3.31 0-6-2.69-6-6 0-.55-.45-1-1-1s-1 .45-1 1c0 4.42 3.58 8 8 8 .34 0 .67-.03 1-.07.02 0 .04-.01.06-.01C12.98 15.4 16 12.06 16 8c0-4.42-3.58-8-8-8zm3 5c-.28 0-.53.11-.71.29L7 8.58 5.71 7.29a1.003 1.003 0 00-1.42 1.42l2 2c.18.18.43.29.71.29.28 0 .53-.11.71-.29l4-4A1.003 1.003 0 0011 5z\"],\n \"upload\": [\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm3 8c-.28 0-.53-.11-.71-.29L9 6.41V12c0 .55-.45 1-1 1s-1-.45-1-1V6.41l-1.29 1.3a1.003 1.003 0 01-1.42-1.42l3-3C7.47 3.11 7.72 3 8 3s.53.11.71.29l3 3A1.003 1.003 0 0111 8z\"],\n \"user\": [\"M7.99-.01A7.998 7.998 0 00.03 8.77c.01.09.03.18.04.28.02.15.04.31.07.47.02.11.05.22.08.34.03.13.06.26.1.38.04.12.08.25.12.37.04.11.08.21.12.32a6.583 6.583 0 00.3.65c.07.14.14.27.22.4.04.07.08.13.12.2l.27.42.1.13a7.973 7.973 0 003.83 2.82c.03.01.05.02.07.03.37.12.75.22 1.14.29l.2.03c.39.06.79.1 1.2.1s.81-.04 1.2-.1l.2-.03c.39-.07.77-.16 1.14-.29.03-.01.05-.02.07-.03a8.037 8.037 0 003.83-2.82c.03-.04.06-.08.09-.13.1-.14.19-.28.28-.42.04-.07.08-.13.12-.2.08-.13.15-.27.22-.41.04-.08.08-.17.12-.26.06-.13.11-.26.17-.39.04-.1.08-.21.12-.32.04-.12.08-.24.12-.37.04-.13.07-.25.1-.38.03-.11.06-.22.08-.34.03-.16.05-.31.07-.47.01-.09.03-.18.04-.28.02-.26.04-.51.04-.78-.03-4.41-3.61-7.99-8.03-7.99zm0 14.4c-1.98 0-3.75-.9-4.92-2.31.67-.36 1.49-.66 2.14-.95 1.16-.52 1.04-.84 1.08-1.27.01-.06.01-.11.01-.17-.41-.36-.74-.86-.96-1.44v-.01c0-.01-.01-.02-.01-.02-.05-.13-.09-.26-.12-.39-.28-.05-.44-.35-.5-.63-.06-.11-.18-.38-.15-.69.04-.41.2-.59.38-.67v-.06c0-.51.05-1.24.14-1.72.02-.13.05-.26.09-.39.17-.59.53-1.12 1.01-1.49.49-.38 1.19-.59 1.82-.59.62 0 1.32.2 1.82.59.48.37.84.9 1.01 1.49.04.13.07.26.09.4.09.48.14 1.21.14 1.72v.07c.18.08.33.26.37.66.03.31-.1.58-.16.69-.06.27-.21.57-.48.62-.03.13-.07.26-.12.38 0 .01-.01.04-.01.04-.21.57-.54 1.06-.94 1.42 0 .06.01.13.01.19.04.43-.12.75 1.05 1.27.65.29 1.47.6 2.14.95a6.415 6.415 0 01-4.93 2.31z\"],\n \"variable\": [\"M3.94 3.15c.47-.66 1.05-1.24 1.76-1.73l.13-.4c-1.11.45-2.05 1.01-2.84 1.7-1.02.88-1.8 1.9-2.32 3.05C.22 6.76 0 7.75 0 8.75c0 1.75.66 3.5 1.99 5.25l.13-.42c-.39-.94-.59-1.82-.59-2.63 0-1.28.22-2.64.67-4.1.45-1.45 1.03-2.69 1.74-3.7zm7.51 6.41l-.27-.15c-.3.41-.52.66-.66.77-.09.06-.21.1-.33.1-.15 0-.3-.1-.45-.28-.25-.33-.59-1.22-1.01-2.69.38-.65.69-1.08.95-1.28.19-.15.39-.22.59-.22.08 0 .22.03.43.08.2.06.39.08.54.08.22 0 .4-.07.54-.22.15-.15.22-.34.22-.57 0-.25-.07-.45-.22-.59-.15-.15-.35-.22-.63-.22-.24 0-.47.06-.69.17-.21.11-.49.36-.82.74-.25.28-.61.78-1.1 1.48a6.72 6.72 0 00-.97-2.38l-2.59.44-.05.27c.19-.04.36-.06.49-.06.26 0 .47.11.64.33.26.34.63 1.38 1.11 3.12-.37.49-.63.81-.77.96-.23.24-.41.4-.56.47-.11.06-.24.09-.39.09-.11 0-.29-.06-.53-.18-.17-.07-.32-.11-.45-.11-.25 0-.46.08-.62.24-.16.16-.24.37-.24.61 0 .23.08.42.23.57.15.15.35.22.61.22.25 0 .48-.05.7-.15.22-.1.49-.32.82-.65.33-.33.78-.86 1.36-1.59.22.69.42 1.19.58 1.51.16.31.35.54.56.68.21.14.47.21.79.21.31 0 .62-.11.93-.33.4-.29.82-.77 1.26-1.47zm2.56-8.54l-.12.42c.39.95.59 1.82.59 2.64 0 1.09-.17 2.26-.5 3.51-.26.96-.6 1.87-1.02 2.71-.42.85-.82 1.51-1.21 1.98-.39.48-.87.92-1.44 1.32l-.14.4c1.11-.45 2.05-1.02 2.84-1.7 1.03-.89 1.81-1.91 2.33-3.05.44-.99.66-1.99.66-3 0-1.73-.66-3.48-1.99-5.23z\"],\n \"vertical-bar-chart-asc\": [\"M6 7c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1s1-.45 1-1V8c0-.55-.45-1-1-1zM2 9c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1zm8-5c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1s1-.45 1-1V5c0-.55-.45-1-1-1zm4-4c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"vertical-bar-chart-desc\": [\"M6 4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1s1-.45 1-1V5c0-.55-.45-1-1-1zM2 0c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm8 7c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1s1-.45 1-1V8c0-.55-.45-1-1-1zm4 2c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1z\"],\n \"vertical-distribution\": [\"M1 2h14c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1s.45 1 1 1zm14 11H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM3 5c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1H3z\"],\n \"video\": [\"M15 2H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zM5 11V5l6 3-6 3z\"],\n \"virus\": [\"M11.918 11.107l.737.737.052-.051A1 1 0 0114.2 13.12l-.078.087-1.414 1.414a1 1 0 01-1.492-1.327l.029-.033-.863-.863c-.426.231-.89.402-1.38.502L9 14l.117.007A1 1 0 019 16H7l-.117-.007A1 1 0 017 14v-1.1a4.967 4.967 0 01-1.447-.539l-.846.846.078.087a1 1 0 01-1.492 1.327l-1.414-1.414-.078-.087a1 1 0 011.492-1.327l.744-.744A4.986 4.986 0 013.23 9.5H2a1 1 0 01-1.993.117L0 9.5v-2a1 1 0 011.993-.117L2 7.5h1.025a4.973 4.973 0 01.905-2.405l-.512-.513-.125.125A1 1 0 011.8 3.38l.078-.087 1.414-1.414a1 1 0 011.529 1.277l.573.575a4.969 4.969 0 011.604-.63V2l-.116-.007a1 1 0 010-1.986L7 0h2a1 1 0 01.117 1.993L9 2l.001 1.1c.639.13 1.233.381 1.757.73l.535-.537-.078-.087a1 1 0 011.492-1.327l1.414 1.414.078.087a1 1 0 01-1.492 1.327l-.535.536a4.97 4.97 0 01.803 2.257H14l.007-.117A1 1 0 0116 7.5v2l-.007.117A1 1 0 0114 9.5h-1.229a4.987 4.987 0 01-.853 1.607zM10 9a1 1 0 100 2 1 1 0 000-2zM6.5 5a1.5 1.5 0 100 3 1.5 1.5 0 000-3z\"],\n \"volume-down\": [\"M9 2c-.28 0-.53.11-.71.29L5.59 5H3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h2.59l2.71 2.71c.17.18.42.29.7.29.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm3.57 1.44l-1.59 1.22C11.62 5.61 12 6.76 12 8s-.38 2.39-1.02 3.34l1.59 1.22C13.47 11.27 14 9.7 14 8c0-1.7-.53-3.27-1.43-4.56z\"],\n \"volume-off\": [\"M11 2c-.28 0-.53.11-.71.29L7.59 5H5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h2.59l2.71 2.71c.17.18.42.29.7.29.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z\"],\n \"volume-up\": [\"M7 1.86c-.28 0-.53.11-.71.29l-2.7 2.71H1c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h2.59l2.71 2.71a1.003 1.003 0 001.71-.71v-10c-.01-.55-.46-1-1.01-1zm6.74-.99l-1.58 1.22A9.985 9.985 0 0114 7.86c0 2.16-.69 4.15-1.85 5.78l1.58 1.22c1.42-1.97 2.26-4.38 2.26-7 .01-2.61-.84-5.02-2.25-6.99zM8.98 4.52C9.62 5.48 10 6.63 10 7.86s-.38 2.39-1.02 3.34l1.59 1.22c.9-1.29 1.43-2.86 1.43-4.56 0-1.7-.53-3.27-1.43-4.56L8.98 4.52z\"],\n \"walk\": [\"M13 8h-2c-.16 0-.31-.05-.44-.11v.01l-1.02-.51-.37 1.86 1.38.92-.01.02c.27.17.46.46.46.81v4c0 .55-.45 1-1 1s-1-.45-1-1v-3.46l-1.27-.85-1.8 4.67h-.01A.98.98 0 015 16c-.55 0-1-.45-1-1 0-.13.03-.25.07-.36h-.01L7.39 6H5.62l-.73 1.45h-.01C4.72 7.77 4.39 8 4 8c-.55 0-1-.45-1-1 0-.16.05-.31.11-.44H3.1l1-2h.01c.17-.33.5-.56.89-.56h3.16l.29-.75C8.17 2.9 8 2.47 8 2c0-1.1.9-2 2-2s2 .9 2 2c0 1-.73 1.82-1.69 1.97l-.5 1.32 1.43.71H13c.55 0 1 .45 1 1s-.45 1-1 1z\"],\n \"warning-sign\": [\"M15.84 13.5l.01-.01-7-12-.01.01c-.17-.3-.48-.5-.85-.5s-.67.2-.85.5l-.01-.01-7 12 .01.01c-.09.15-.15.31-.15.5 0 .55.45 1 1 1h14c.55 0 1-.45 1-1 0-.19-.06-.35-.15-.5zm-6.85-.51h-2v-2h2v2zm0-3h-2v-5h2v5z\"],\n \"waterfall-chart\": [\"M8 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-4 4h1c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1zm7-6c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1s-1 .45-1 1v1c0 .55.45 1 1 1zm4-3h-1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 10H2V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"widget\": [\"M13 11h2V5h-2v6zM3 5H1v6h2V5zm11-1c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM2 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM5 3h6V1H5v2zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm3 15h6v-2H5v2z\"],\n \"widget-button\": [\"M1 3h14c.55 0 1 .45 1 1v8c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1zm1 2v6h12V5H2zm3 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"widget-footer\": [\"M14 0H2c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H3v-3h10v3zm0-4H3V2h10v8z\"],\n \"widget-header\": [\"M14 0H2c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H3V6h10v8zm0-9H3V2h10v3z\"],\n \"wrench\": [\"M15.83 3.7l-3.06 3.05-2.84-.7-.7-2.83L12.29.17a5.004 5.004 0 00-4.83 1.29 4.967 4.967 0 00-1.12 5.36L.58 12.58c-.36.36-.58.86-.58 1.41 0 1.1.9 2 2 2 .55 0 1.05-.22 1.41-.59l5.77-5.77c1.79.69 3.91.33 5.35-1.12 1.32-1.3 1.74-3.15 1.3-4.81z\"],\n \"zoom-in\": [\"M7.99 5.99v-2c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1h-2zm7.56 7.44l-2.67-2.68a6.94 6.94 0 001.11-3.76c0-3.87-3.13-7-7-7s-7 3.13-7 7 3.13 7 7 7c1.39 0 2.68-.42 3.76-1.11l2.68 2.67a1.498 1.498 0 102.12-2.12zm-8.56-1.44c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"],\n \"zoom-out\": [\"M3.99 5.99c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1h-6zm11.56 7.44l-2.67-2.68a6.94 6.94 0 001.11-3.76c0-3.87-3.13-7-7-7s-7 3.13-7 7 3.13 7 7 7c1.39 0 2.68-.42 3.76-1.11l2.68 2.67a1.498 1.498 0 102.12-2.12zm-8.56-1.44c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"],\n \"zoom-to-fit\": [\"M11 10a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42L12.59 8 11.3 9.29c-.19.18-.3.43-.3.71zM1 5c.55 0 1-.45 1-1V2h2c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v3c0 .55.45 1 1 1zm4 1a1.003 1.003 0 00-1.71-.71l-2 2C1.11 7.47 1 7.72 1 8c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L3.41 8 4.7 6.71c.19-.18.3-.43.3-.71zm1-1c.28 0 .53-.11.71-.29L8 3.41 9.29 4.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-2-2C8.53 1.11 8.28 1 8 1s-.53.11-.71.29l-2 2A1.003 1.003 0 006 5zm9 6c-.55 0-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm0-11h-3c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zM4 14H2v-2c0-.55-.45-1-1-1s-1 .45-1 1v3c0 .55.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1zm6-3c-.28 0-.53.11-.71.29L8 12.59 6.71 11.3A.965.965 0 006 11a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 0010 11z\"]\n};\nexport var IconSvgPaths20 = {\n \"add\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm5-9h-4V5c0-.55-.45-1-1-1s-1 .45-1 1v4H5c-.55 0-1 .45-1 1s.45 1 1 1h4v4c0 .55.45 1 1 1s1-.45 1-1v-4h4c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"add-column-left\": [\"M4 11h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1H8V7c0-.55-.45-1-1-1s-1 .45-1 1v2H4c-.55 0-1 .45-1 1s.45 1 1 1zM19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-7 18H2V2h10v16zm6 0h-5V2h5v16z\"],\n \"add-column-right\": [\"M10 11h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1h-2V7c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1zm9-11H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM7 18H2V2h5v16zm11 0H8V2h10v16z\"],\n \"add-row-bottom\": [\"M19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2V8h16v10zm0-11H2V2h16v5zM7 14h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1h-2v-2c0-.55-.45-1-1-1s-1 .45-1 1v2H7c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"add-row-top\": [\"M7 8h2v2c0 .55.45 1 1 1s1-.45 1-1V8h2c.55 0 1-.45 1-1s-.45-1-1-1h-2V4c0-.55-.45-1-1-1s-1 .45-1 1v2H7c-.55 0-1 .45-1 1s.45 1 1 1zm12-8H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2v-5h16v5zm0-6H2V2h16v10z\"],\n \"add-to-artifact\": [\"M13 12H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zm0 4H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zM1 6h9c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm12 2H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zm6-4h-2V2c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V6h2c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"add-to-folder\": [\"M.01 10V6H20v10c0 .55-.45 1-1 1H9.995v-3.99C9.965 11.332 8.635 10 6.987 10H.01zM19 3c.55 0 1 .45.99 1v1H0V2c0-.55.45-1 1-1h5.997c.28 0 .53.11.71.29L9.414 3H19zM6.987 12c.55 0 .999.45 1.009 1.01v5c0 .55-.45 1-1 1s-.999-.45-.999-1v-2.59l-4.288 4.29a1.003 1.003 0 01-1.42-1.42L4.579 14H1.989c-.55 0-1-.45-1-1s.45-1 1-1h4.998z\"],\n \"airplane\": [\"M20 2c0-1.1-.9-2-2-2-.55 0-1.05.22-1.41.59l-4.84 4.84L2 1 1 3l7.53 5.64L4.17 13H1l-1 1 4 2 2 4 1-1v-3.17l4.36-4.36L17 19l2-1-4.43-9.74 4.84-4.84c.37-.37.59-.87.59-1.42z\"],\n \"align-center\": [\"M5 5c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1H5zM1 3h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm12 12c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1h6zm4 2H3c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm2-8H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"align-justify\": [\"M1 3h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm18 14H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0-12H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0 4H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0 4H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"align-left\": [\"M1 7h10c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm0-4h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 14H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm4-8H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM1 15h6c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"align-right\": [\"M19 17H5c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM1 3h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm18 10h-6c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H9c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"alignment-bottom\": [\"M12 16h4c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1zm7 2H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM4 16h4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1z\"],\n \"alignment-horizontal-center\": [\"M19 9h-2V7c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v2H9V3c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v6H1c-.55 0-1 .45-1 1s.45 1 1 1h2v6c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-6h2v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"alignment-left\": [\"M1 0C.45 0 0 .45 0 1v18c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm11 11H5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm7-8H5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"alignment-right\": [\"M19 0c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm-4 11H8c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm0-8H1c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"alignment-top\": [\"M8 4H4c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm11-4H1C.45 0 0 .45 0 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm-3 4h-4c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1z\"],\n \"alignment-vertical-center\": [\"M17 3h-6V1c0-.55-.45-1-1-1S9 .45 9 1v2H3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h6v2H7c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1h-2V9h6c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"annotation\": [\"M9.41 13.41l7.65-7.65-2.83-2.83-7.65 7.65 2.83 2.83zm10-10c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2-.55 0-1.05.22-1.41.59l-1.65 1.65 2.83 2.83 1.64-1.66zM18 18H2V2h8.93l2-2H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V7.07l-2 2V18zM4 16l4.41-1.59-2.81-2.79L4 16z\"],\n \"app-header\": [\"M19 0a1 1 0 011 1v18a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1h18zM8 6a1 1 0 00-1.993-.117L6 6v8a1 1 0 001.993.117L8 14v-3h4v3a1 1 0 001.993.117L14 14V6a1 1 0 00-1.993-.117L12 6v3H8V6z\"],\n \"application\": [\"M3.5 9h9c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-9c-.28 0-.5.22-.5.5s.22.5.5.5zm0 2h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-5c-.28 0-.5.22-.5.5s.22.5.5.5zM19 1H1c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm-1 16H2V6h16v11zM3.5 13h7c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-7c-.28 0-.5.22-.5.5s.22.5.5.5z\"],\n \"applications\": [\"M15 5H1c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-1 13H2V8h12v10zM3.5 10h7c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-7c-.28 0-.5.22-.5.5s.22.5.5.5zm0 2h3c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-3c-.28 0-.5.22-.5.5s.22.5.5.5zm0 2h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-5c-.28 0-.5.22-.5.5s.22.5.5.5zM19 0H5c-.55 0-1 .45-1 1v3h2V3h12v10h-1v2h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"archive\": [\"M16.434 0a1 1 0 01.857.486L20 5v14a1 1 0 01-1 1H1a1 1 0 01-1-1V5L2.709.486A1 1 0 013.566 0h12.868zM10 8c-.55 0-1 .45-1 1v4.58l-1.29-1.29-.081-.073A.996.996 0 007 11.99a1.003 1.003 0 00-.71 1.71l3 3 .096.084c.168.13.38.206.614.206.28 0 .53-.11.71-.29l3-3 .084-.096a1.003 1.003 0 00-1.504-1.324L11 13.58V9l-.007-.116A1.004 1.004 0 0010 8zm6-6H4L2 5.002h16L16 2z\"],\n \"arrow-bottom-left\": [\"M18 3a1.003 1.003 0 00-1.71-.71L4 14.59V7c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1H5.41l12.3-12.29c.18-.18.29-.43.29-.71z\"],\n \"arrow-bottom-right\": [\"M17 6c-.55 0-1 .45-1 1v7.59L3.71 2.29a1.003 1.003 0 00-1.42 1.42L14.59 16H7c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1z\"],\n \"arrow-down\": [\"M16 11c-.3 0-.5.1-.7.3L11 15.6V2c0-.5-.4-1-1-1s-1 .5-1 1v13.6l-4.3-4.3c-.2-.2-.4-.3-.7-.3-.5 0-1 .4-1 1 0 .3.1.5.3.7l6 6c.2.2.4.3.7.3s.5-.1.7-.3l6-6c.2-.2.3-.4.3-.7 0-.6-.5-1-1-1z\"],\n \"arrow-left\": [\"M18 9H4.41L8.7 4.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-6 6c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l6 6a1.003 1.003 0 001.42-1.42L4.41 11H18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"arrow-right\": [\"M18.71 9.29l-6-6a1.003 1.003 0 00-1.42 1.42L15.59 9H2c-.55 0-1 .45-1 1s.45 1 1 1h13.59l-4.29 4.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l6-6c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"arrow-top-left\": [\"M17.71 16.29L5.41 4H13c.55 0 1-.45 1-1s-.45-1-1-1H3c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1s1-.45 1-1V5.41L16.29 17.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z\"],\n \"arrow-top-right\": [\"M17 2H7c-.55 0-1 .45-1 1s.45 1 1 1h7.59L2.29 16.29a1.003 1.003 0 001.42 1.42L16 5.41V13c0 .55.45 1 1 1s1-.45 1-1V3c0-.55-.45-1-1-1z\"],\n \"arrow-up\": [\"M16.7 7.3l-6-6c-.2-.2-.4-.3-.7-.3s-.5.1-.7.3l-6 6c-.2.2-.3.4-.3.7 0 .6.5 1 1 1 .3 0 .5-.1.7-.3L9 4.4V18c0 .5.4 1 1 1s1-.5 1-1V4.4l4.3 4.3c.2.2.4.3.7.3.5 0 1-.4 1-1 0-.3-.1-.5-.3-.7z\"],\n \"arrows-horizontal\": [\"M19.7 9.3l-5-5c-.2-.2-.4-.3-.7-.3-.6 0-1 .4-1 1 0 .3.1.5.3.7L16.6 9H3.4l3.3-3.3c.2-.2.3-.4.3-.7 0-.6-.4-1-1-1-.3 0-.5.1-.7.3l-5 5c-.2.2-.3.4-.3.7s.1.5.3.7l5 5c.2.2.4.3.7.3.6 0 1-.4 1-1 0-.3-.1-.5-.3-.7L3.4 11h13.2l-3.3 3.3c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3l5-5c.2-.2.3-.4.3-.7s-.1-.5-.3-.7z\"],\n \"arrows-vertical\": [\"M15 13c-.3 0-.5.1-.7.3L11 16.6V3.4l3.3 3.3c.2.2.4.3.7.3.6 0 1-.4 1-1 0-.3-.1-.5-.3-.7l-5-5c-.2-.2-.4-.3-.7-.3s-.5.1-.7.3l-5 5c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3L9 3.4v13.2l-3.3-3.3c-.2-.2-.4-.3-.7-.3-.6 0-1 .4-1 1 0 .3.1.5.3.7l5 5c.2.2.4.3.7.3s.5-.1.7-.3l5-5c.2-.2.3-.4.3-.7 0-.5-.4-1-1-1z\"],\n \"asterisk\": [\"M18.52 14.17l.01-.02L11.89 10l6.64-4.15-.01-.02A.97.97 0 0019 5c0-.55-.45-1-1-1-.2 0-.37.07-.52.17l-.01-.02L11 8.2V1c0-.55-.45-1-1-1S9 .45 9 1v7.2L2.53 4.15l-.01.02A.922.922 0 002 4c-.55 0-1 .45-1 1 0 .36.2.66.48.83l-.01.02L8.11 10l-6.64 4.15.01.02A.97.97 0 001 15c0 .55.45 1 1 1 .2 0 .37-.07.52-.17l.01.02L9 11.8V19c0 .55.45 1 1 1s1-.45 1-1v-7.2l6.47 4.04.01-.02c.15.11.32.18.52.18.55 0 1-.45 1-1 0-.36-.2-.66-.48-.83z\"],\n \"automatic-updates\": [\"M10 18c-4.42 0-8-3.58-8-8 0-2.52 1.18-4.76 3-6.22V5c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1h2.06C1.61 3.82 0 6.71 0 10c0 5.52 4.48 10 10 10 .55 0 1-.45 1-1s-.45-1-1-1zm0-16c1.64 0 3.15.49 4.42 1.34l1.43-1.43A9.869 9.869 0 0010 0c-.55 0-1 .45-1 1s.45 1 1 1zm10 8c0-1.13-.2-2.21-.54-3.22L17.84 8.4A7.962 7.962 0 0115 16.22V15c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1h-2.06c2.45-1.82 4.06-4.71 4.06-8zm0-7a1.003 1.003 0 00-1.71-.71L12 8.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l7-7c.18-.18.29-.43.29-.71z\"],\n \"badge\": [\"M16.94 5.73c-.19-1.41.62-2.52 1.38-3.59L17.03.65C14.89 1.76 11.88 1.48 10 0 8.12 1.48 5.11 1.76 2.97.65L1.68 2.14c.76 1.07 1.57 2.18 1.38 3.59C2.68 8.59 0 10.94 1.4 14.08c.56 1.43 1.81 2.37 3.4 2.75 1.95.46 4.4.91 5.2 3.17.8-2.26 3.25-2.71 5.2-3.17 1.6-.38 2.84-1.32 3.4-2.75 1.4-3.14-1.28-5.49-1.66-8.35z\"],\n \"ban-circle\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm5 11H5c-.55 0-1-.45-1-1s.45-1 1-1h10c.55 0 1 .45 1 1s-.45 1-1 1z\"],\n \"bank-account\": [\"M19.2 8.02l-.78-.18C18.03 6.4 17.2 5.08 16.08 4l.5-2.28c.11-.42-.22-.78-.61-.72-1.06.12-2 .54-2.67 1.26-1.06-.42-2.34-.66-3.56-.66-3.12 0-5.79 1.5-7.4 3.72-.23-.05-.45-.11-.67-.11C.72 5.21 0 5.98 0 7c0 .72.39 1.32.95 1.62-.06.42-.12.9-.12 1.38 0 2.16.89 4.08 2.28 5.58l-.33 2.04c-.11.72.45 1.38 1.12 1.38h.72c.56 0 1-.42 1.11-1.02l.06-.48c1.17.54 2.5.9 3.95.9 1.39 0 2.78-.3 3.95-.9l.06.48c.11.6.56 1.02 1.11 1.02h.72c.67 0 1.22-.66 1.11-1.38l-.33-1.98c.78-.78 1.34-1.74 1.73-2.76l1-.24c.5-.12.89-.6.89-1.2V9.22c.11-.6-.28-1.08-.78-1.2zM15 10c-.6 0-1-.7-1-1.5S14.4 7 15 7s1 .7 1 1.5-.4 1.5-1 1.5zM7.55 5.83a.99.99 0 01-1.38-.28.99.99 0 01.28-1.38c2.34-1.56 4.77-1.56 7.11 0 .46.31.58.93.28 1.39-.31.46-.93.58-1.39.28-1.67-1.12-3.23-1.12-4.9-.01z\"],\n \"barcode\": [\"M6 16.98h2v-14H6v14zm3 0h1v-14H9v14zm-6 0h2v-14H3v14zm-3 0h2v-14H0v14zm16 0h2v-14h-2v14zm-4 0h1v-14h-1v14zm7-14v14h1v-14h-1zm-5 14h1v-14h-1v14z\"],\n \"blank\": [],\n \"blocked-person\": [\"M11.55 15.92c-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.06-.11.14-.35.17-.62C10.33 9.42 8.92 7.38 8.92 5c0-.3.05-.58.09-.87-.33-.08-.67-.13-.99-.13-.79 0-1.68.25-2.31.73-.61.47-1.07 1.13-1.29 1.86-.05.16-.09.33-.11.5-.12.6-.17 1.51-.17 2.14v.08c-.24.09-.45.32-.49.83-.04.39.12.73.2.87.08.35.28.72.63.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.38 1.59C3 16.56.77 17.26.32 18.31-.15 19.38.04 20 .04 20h15.95s.18-.62-.27-1.67c-.46-1.06-2.69-1.75-4.17-2.41zM14.97 0c-2.78 0-5.03 2.24-5.03 5s2.25 5 5.03 5S20 7.76 20 5s-2.25-5-5.03-5zm-3.03 5c0-1.66 1.35-3 3.02-3 .47 0 .9.11 1.29.3l-4.01 3.99c-.18-.4-.3-.83-.3-1.29zm3.03 3c-.47 0-.9-.11-1.29-.3l4.01-3.99c.19.39.3.82.3 1.29 0 1.66-1.36 3-3.02 3z\"],\n \"bold\": [\"M14.3 9c.4-.8.7-1.6.7-2.5C15 4 13 2 10.5 2H5c-.6 0-1 .4-1 1v13c0 .6.4 1 1 1h6.5c2.5 0 4.5-2 4.5-4.5 0-1.4-.7-2.7-1.7-3.5zM7 5h3.5c.8 0 1.5.7 1.5 1.5S11.3 8 10.5 8H7V5zm4.5 9H7v-3h4.5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5z\"],\n \"book\": [\"M3 1v18c0 .55.45 1 1 1h2V0H4c-.55 0-1 .45-1 1zm14-1h-2v8l-2-2-2 2V0H7v20h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"bookmark\": [\"M6 0c-.55 0-1 .45-1 1v18c0 .55.32.68.71.29L9.3 15.7a.996.996 0 011.41 0l3.59 3.59c.38.39.7.26.7-.29v-8-4.5V1c0-.55-.45-1-1-1H6z\"],\n \"box\": [\"M19.89 6.56l-2.99-6h-.01C16.72.23 16.39 0 16 0H4c-.39 0-.72.23-.89.56H3.1l-3 6h.01C.05 6.69 0 6.84 0 7v12c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V7c0-.16-.05-.31-.11-.44zM11 2h4.38l2 4H11V2zM4.62 2H9v4H2.62l2-4zM18 18H2V8h16v10zM8 12h4c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"briefcase\": [\"M19 5h-4V2c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v3H1c-.55 0-1 .45-1 1v5h4v-1h2v1h8v-1h2v1h4V6c0-.55-.45-1-1-1zm-6 0H7V3h6v2zm3 8h-2v-1H6v1H4v-1H0v6c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-6h-4v1z\"],\n \"bring-data\": [\"M18 18a1 1 0 010 2H2a1 1 0 010-2h16zM9.995 3.005c.55 0 1 .45 1 .999v9.584l1.29-1.288a1.002 1.002 0 011.42 1.419l-3 2.996a1.015 1.015 0 01-1.42 0l-3-2.997a1.002 1.002 0 011.42-1.419l1.29 1.29V4.013c0-.55.45-1.009 1-1.009zM16 0a1 1 0 110 2 1 1 0 010-2zm-3 0a1 1 0 110 2 1 1 0 010-2zm-3 0a1 1 0 110 2 1 1 0 010-2zM7 0a1 1 0 110 2 1 1 0 010-2zM4 0a1 1 0 110 2 1 1 0 010-2z\"],\n \"build\": [\"M19.43 16.67L9.31 7.81l1.47-1.56c.41-.44-.15-.8.15-1.6 1.08-2.76 4.19-2.99 4.19-2.99s.45-.47.87-.92C11.98-1 9.26.7 8.04 1.8L3.83 6.25l-.86.92c-.48.51-.48 1.33 0 1.84l-.87.92c-.48-.51-1.26-.51-1.74 0s-.48 1.33 0 1.84l1.74 1.84c.48.51 1.26.51 1.74 0s.48-1.33 0-1.84l.87-.92c.48.51 1.26.51 1.74 0l1.41-1.49 8.81 10.07c.76.76 2 .76 2.76 0 .76-.76.76-2 0-2.76z\"],\n \"calculator\": [\"M16 0H4c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM7 18H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V8h2v2zm4 8H9v-2h2v2zm0-4H9v-2h2v2zm0-4H9V8h2v2zm4 8h-2v-6h2v6zm0-8h-2V8h2v2zm0-4H5V2h10v4z\"],\n \"calendar\": [\"M15 5c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1s-1 .5-1 1v2c0 .6.4 1 1 1zM5 5c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1s-1 .5-1 1v2c0 .6.4 1 1 1zm13-2h-1v1c0 1.1-.9 2-2 2s-2-.9-2-2V3H7v1c0 1.1-.9 2-2 2s-2-.9-2-2V3H2c-.5 0-1 .5-1 1v14c0 .5.5 1 1 1h16c.5 0 1-.5 1-1V4c0-.5-.5-1-1-1zM7 17H3v-4h4v4zm0-5H3V8h4v4zm5 5H8v-4h4v4zm0-5H8V8h4v4zm5 5h-4v-4h4v4zm0-5h-4V8h4v4z\"],\n \"camera\": [\"M10 8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm9-4h-3.59L13.7 2.29A.956.956 0 0013 2H7c-.28 0-.53.11-.71.29L4.59 4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h4.11c1.26 1.24 2.99 2 4.89 2s3.63-.76 4.89-2H19c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM4 8H2V6h2v2zm6 8c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"],\n \"caret-down\": [\"M16 7c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1 0 .24.1.46.24.63l-.01.01 5 6 .01-.01c.19.22.45.37.76.37s.57-.15.76-.37l.01.01 5-6-.01-.01c.14-.17.24-.39.24-.63z\"],\n \"caret-left\": [\"M13 4c-.24 0-.46.1-.63.24l-.01-.01-6 5 .01.01c-.22.19-.37.45-.37.76s.15.57.37.76l-.01.01 6 5 .01-.01c.17.14.39.24.63.24.55 0 1-.45 1-1V5c0-.55-.45-1-1-1z\"],\n \"caret-right\": [\"M14 10c0-.31-.15-.57-.37-.76l.01-.01-6-5-.01.01C7.46 4.1 7.24 4 7 4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1 .24 0 .46-.1.63-.24l.01.01 6-5-.01-.01c.22-.19.37-.45.37-.76z\"],\n \"caret-up\": [\"M15.76 12.37l.01-.01-5-6-.01.01C10.57 6.15 10.31 6 10 6s-.57.15-.76.37l-.01-.01-5 6 .01.01c-.14.17-.24.39-.24.63 0 .55.45 1 1 1h10c.55 0 1-.45 1-1 0-.24-.1-.46-.24-.63z\"],\n \"cell-tower\": [\"M11.5 8.32c.31-.35.51-.81.51-1.32 0-1.1-.9-2-2-2s-2 .9-2 2c0 .51.2.97.51 1.32L5.06 18.69c-.17.52.11 1.09.63 1.26s1.09-.11 1.26-.63L8.39 15h3.23l1.44 4.32c.17.52.74.81 1.26.63s.81-.74.63-1.26L11.5 8.32zM10.95 13H9.06l.95-2.84.94 2.84zM5.31 10.73a.996.996 0 101.37-1.45c-1.4-1.33-1.28-3.35-.01-4.54.4-.38.43-1.01.05-1.41-.36-.41-1-.43-1.4-.06-2.09 1.95-2.28 5.3-.01 7.46z\", \"M4.6 12.2C3 11.1 2 9 2 7c0-2.1.9-3.9 2.6-5.2.5-.3.5-1 .2-1.4-.3-.5-1-.5-1.4-.2C1.2 1.9-.1 4.2 0 7c.1 2.7 1.4 5.3 3.4 6.8.2.1.4.2.6.2.3 0 .6-.1.8-.4.4-.5.3-1.1-.2-1.4zM13.27 10.69c.38.4 1.01.42 1.41.04 2.27-2.16 2.08-5.51-.01-7.46a.996.996 0 10-1.36 1.46c1.28 1.19 1.39 3.21-.01 4.54-.39.39-.41 1.02-.03 1.42z\", \"M16.6.2c-.4-.3-1.1-.3-1.4.2-.3.4-.3 1.1.2 1.4C17.1 3.1 18 4.9 18 7c0 2-1 4.1-2.6 5.2-.5.3-.6.9-.2 1.4.2.3.5.4.8.4.2 0 .4-.1.6-.2C18.7 12.3 20 9.7 20 7c.09-2.8-1.2-5.1-3.4-6.8z\"],\n \"changes\": [\"M18 16H2c-1.1 0-2 .9-2 2s.9 2 2 2h16c1.1 0 2-.9 2-2s-.9-2-2-2zM3 5c.28 0 .53-.11.71-.29L5 3.41V13c0 .55.45 1 1 1s1-.45 1-1V3.41L8.29 4.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3C6.53.11 6.28 0 6 0s-.53.11-.71.29l-3 3A1.003 1.003 0 003 5zm7.29 5.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3a1.003 1.003 0 00-1.42-1.42L15 10.59V1c0-.55-.45-1-1-1s-1 .45-1 1v9.59L11.71 9.3A.965.965 0 0011 9a1.003 1.003 0 00-.71 1.71z\"],\n \"chart\": [\"M7 11v8c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-8l-2 2-4-2zm-7 8c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-8l-6 3v5zM17 7l-3 3v9c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V8.74c-.26.15-.58.26-1 .26-1.92 0-2-2-2-2zm2-6h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59L10.8 8.78 7.45 7.11v.01C7.31 7.05 7.16 7 7 7s-.31.05-.44.11V7.1l-6 3v.01c-.33.17-.56.5-.56.89 0 .55.45 1 1 1 .16 0 .31-.05.44-.11v.01L7 9.12l3.55 1.78v-.01c.14.06.29.11.45.11.28 0 .53-.11.71-.29L18 4.41V6c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z\"],\n \"chat\": [\"M19 0H7c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h5.59l3.71 3.71c.17.18.42.29.7.29.55 0 1-.45 1-1v-3h1c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM7 13c-1.1 0-2-.9-2-2V4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h1v3a1.003 1.003 0 001.71.71L7.41 16H13c.55 0 1-.45 1-1v-.17L12.17 13H7z\"],\n \"chevron-backward\": [\"M8.41 10l5.29-5.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L7 8.59V4c0-.55-.45-1-1-1s-1 .45-1 1v12c0 .55.45 1 1 1s1-.45 1-1v-4.59l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L8.41 10z\"],\n \"chevron-down\": [\"M16 6c-.28 0-.53.11-.71.29L10 11.59l-5.29-5.3a1.003 1.003 0 00-1.42 1.42l6 6c.18.18.43.29.71.29s.53-.11.71-.29l6-6A1.003 1.003 0 0016 6z\"],\n \"chevron-forward\": [\"M13 3c-.55 0-1 .45-1 1v4.59l-5.29-5.3a1.003 1.003 0 00-1.42 1.42l5.3 5.29-5.29 5.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l5.29-5.3V16c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"chevron-left\": [\"M8.41 10l5.29-5.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-6 6c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l6 6a1.003 1.003 0 001.42-1.42L8.41 10z\"],\n \"chevron-right\": [\"M13.71 9.29l-6-6a1.003 1.003 0 00-1.42 1.42l5.3 5.29-5.29 5.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l6-6c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"chevron-up\": [\"M16.71 12.29l-6-6C10.53 6.11 10.28 6 10 6s-.53.11-.71.29l-6 6a1.003 1.003 0 001.42 1.42L10 8.41l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z\"],\n \"circle\": [\"M10 0C4.5 0 0 4.5 0 10s4.5 10 10 10 10-4.5 10-10S15.5 0 10 0zm0 18c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z\"],\n \"circle-arrow-down\": [\"M14 10c-.28 0-.53.11-.71.29L11 12.59V5c0-.55-.45-1-1-1s-1 .45-1 1v7.59L6.71 10.3A.965.965 0 006 10a1.003 1.003 0 00-.71 1.71l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0014 10zM10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"],\n \"circle-arrow-left\": [\"M15 9H7.41L9.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L7.41 11H15c.55 0 1-.45 1-1s-.45-1-1-1zm-5-9C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"],\n \"circle-arrow-right\": [\"M15.71 9.29l-4-4a1.003 1.003 0 00-1.42 1.42L12.59 9H5c-.55 0-1 .45-1 1s.45 1 1 1h7.59l-2.29 2.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"],\n \"circle-arrow-up\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.71-13.71C10.53 4.11 10.28 4 10 4s-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L9 7.41V15c0 .55.45 1 1 1s1-.45 1-1V7.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4z\"],\n \"citation\": [\"M4 1C1.79 1 0 2.79 0 5s1.79 4 4 4c.1 0 .2-.01.3-.02C3.82 11.32 2.53 13 1 13c-.55 0-1 .45-1 1s.45 1 1 1c3.87 0 7-4.48 7-10 0-2.21-1.79-4-4-4zM16 1c-2.21 0-4 1.79-4 4s1.79 4 4 4c.1 0 .2-.01.3-.02C15.82 11.32 14.53 13 13 13c-.55 0-1 .45-1 1s.45 1 1 1c3.87 0 7-4.48 7-10 0-2.21-1.79-4-4-4z\"],\n \"clean\": [\"M7 0L5 5 0 6.998 5 9l2 5 2-5 5-1.995L9 5zM15 10l-1.5 3.496-3.5 1.499 3.5 1.498L15 20l1.5-3.507L20 15l-3.5-1.504z\"],\n \"clipboard\": [\"M13 2c0-.55-.45-1-1-1h-.78a1.98 1.98 0 00-3.44 0H7c-.55 0-1 .45-1 1v2h7V2z\", \"M16 2h-2v3H5V2H3c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z\"],\n \"cloud\": [\"M15 7c-.12 0-.24.03-.36.04C13.83 4.69 11.62 3 9 3 5.69 3 3 5.69 3 9c0 .05.01.09.01.14A3.98 3.98 0 000 13c0 2.21 1.79 4 4 4h11c2.76 0 5-2.24 5-5s-2.24-5-5-5z\"],\n \"cloud-download\": [\"M15 4c-.12 0-.24.03-.36.04C13.83 1.69 11.62 0 9 0 5.69 0 3 2.69 3 6c0 .05.01.09.01.14A3.98 3.98 0 000 10c0 2.21 1.79 4 4 4h.78c.55-.61 1.34-1 2.22-1v-2c0-1.66 1.34-3 3-3s3 1.34 3 3v2c.88 0 1.66.38 2.2.98C17.87 13.87 20 11.69 20 9c0-2.76-2.24-5-5-5zm-2 11c-.28 0-.53.11-.71.29L11 16.59V11c0-.55-.45-1-1-1s-1 .45-1 1v5.59L7.71 15.3A.965.965 0 007 15a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0013 15z\"],\n \"cloud-upload\": [\"M10.71 10.29c-.18-.18-.43-.29-.71-.29s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L9 13.41V19c0 .55.45 1 1 1s1-.45 1-1v-5.59l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3zM15 4c-.12 0-.24.03-.36.04C13.83 1.69 11.62 0 9 0 5.69 0 3 2.69 3 6c0 .05.01.09.01.14A3.98 3.98 0 000 10c0 2.21 1.79 4 4 4 0-.83.34-1.58.88-2.12l3-3a2.993 2.993 0 014.24 0l3 3-.01.01c.52.52.85 1.23.87 2.02C18.28 13.44 20 11.42 20 9c0-2.76-2.24-5-5-5z\"],\n \"code\": [\"M6 6a1.003 1.003 0 00-1.71-.71l-4 4C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L2.41 10 5.7 6.71c.19-.18.3-.43.3-.71zm6-4c-.46 0-.83.31-.95.73l-4 14c-.02.09-.05.17-.05.27 0 .55.45 1 1 1 .46 0 .83-.31.95-.73l4-14c.02-.09.05-.17.05-.27 0-.55-.45-1-1-1zm7.71 7.29l-4-4a1.003 1.003 0 00-1.42 1.42l3.3 3.29-3.29 3.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"code-block\": [\"M19 5h-2V3c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v2H9V3c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v2H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM8.71 15.29a1.003 1.003 0 01-1.42 1.42l-4-4C3.11 12.53 3 12.28 3 12s.11-.53.29-.71l4-4a1.003 1.003 0 011.42 1.42L5.41 12l3.3 3.29zm8-2.58l-4 4a1.003 1.003 0 01-1.42-1.42l3.3-3.29-3.29-3.29A.965.965 0 0111 8a1.003 1.003 0 011.71-.71l4 4c.18.18.29.43.29.71s-.11.53-.29.71z\"],\n \"cog\": [\"M19 8h-2.31c-.14-.46-.33-.89-.56-1.3l1.7-1.7a.996.996 0 000-1.41l-1.41-1.41a.996.996 0 00-1.41 0l-1.7 1.7c-.41-.22-.84-.41-1.3-.55V1c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v2.33c-.48.14-.94.34-1.37.58L5 2.28a.972.972 0 00-1.36 0L2.28 3.64c-.37.38-.37.99 0 1.36L3.9 6.62c-.24.44-.44.89-.59 1.38H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2.31c.14.46.33.89.56 1.3L2.17 15a.996.996 0 000 1.41l1.41 1.41c.39.39 1.02.39 1.41 0l1.7-1.7c.41.22.84.41 1.3.55V19c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2.33c.48-.14.94-.35 1.37-.59L15 17.72c.37.37.98.37 1.36 0l1.36-1.36c.37-.37.37-.98 0-1.36l-1.62-1.62c.24-.43.45-.89.6-1.38H19c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-9 6c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z\"],\n \"collapse-all\": [\"M9.29 8.71c.18.18.43.29.71.29s.53-.11.71-.29l6-6a1.003 1.003 0 00-1.42-1.42L10 6.59l-5.29-5.3a1.003 1.003 0 00-1.42 1.42l6 6zm1.42 2.58c-.18-.18-.43-.29-.71-.29s-.53.11-.71.29l-6 6a1.003 1.003 0 001.42 1.42l5.29-5.3 5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-6-6z\"],\n \"column-layout\": [\"M19 1H1c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM5 17H2V3h3v14zm4 0H6V3h3v14zm9 0h-8V3h8v14z\"],\n \"comment\": [\"M19 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3v4a1.003 1.003 0 001.71.71l4.7-4.71H19c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM4 10c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm6 0c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm6 0c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"],\n \"comparison\": [\"M6 8H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm13-6h-5c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 3h-5V3h5v2zM6 14H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zM6 2H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm4-2c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm9 14h-5c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm0 3h-5v-2h5v2zm0-9h-5c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm0 3h-5V9h5v2z\"],\n \"compass\": [\"M15 10c0 .14-.03.28-.09.4l-3.99 8.98-.01.02a.991.991 0 01-1.82 0l-.01-.02-3.99-8.98c-.06-.12-.09-.26-.09-.4s.03-.28.09-.4L9.08.62 9.09.6a.991.991 0 011.82 0l.01.02 3.99 8.98c.06.12.09.26.09.4zm-5-6.54L7.09 10h5.81L10 3.46z\"],\n \"compressed\": [\"M19.89 6.56l-2.99-6h-.01C16.72.23 16.39 0 16 0H4c-.39 0-.72.23-.89.56H3.1l-3 6h.01C.05 6.69 0 6.84 0 7v12c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V7c0-.16-.05-.31-.11-.44zM11 2h4.38l2 4H11V2zM4.62 2H9v4H2.62l2-4zM18 18H2V8h7v4.59L6.71 10.3A.965.965 0 006 10a1.003 1.003 0 00-.71 1.71l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4a1.003 1.003 0 00-1.42-1.42L11 12.59V8h7v10z\"],\n \"confirm\": [\"M9.71 5.29a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l7-7a1.003 1.003 0 00-1.42-1.42L12 7.59l-2.29-2.3zm7.93 2.32c.23.75.36 1.56.36 2.39 0 4.42-3.58 8-8 8s-8-3.58-8-8a7.998 7.998 0 0111.8-7.04l1.46-1.46C13.73.56 11.93 0 10 0 4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10c0-1.4-.29-2.73-.81-3.95l-1.55 1.56z\"],\n \"console\": [\"M19 19H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h18c.55 0 1 .45 1 1v16c0 .55-.45 1-1 1zM18 6H2v11h16V6zM4 8c.28 0 .53.11.71.29l2 2c.18.18.29.43.29.71s-.11.53-.29.71l-2 2a1.003 1.003 0 01-1.42-1.42L4.59 11l-1.3-1.29A1.003 1.003 0 014 8zm5 4h3c.55 0 1 .45 1 1s-.45 1-1 1H9c-.55 0-1-.45-1-1s.45-1 1-1z\"],\n \"contrast\": [\"M19 8h-1.26c-.19-.73-.48-1.42-.85-2.06l.94-.94a.996.996 0 000-1.41l-1.41-1.41a.996.996 0 00-1.41 0l-.94.94c-.65-.38-1.34-.67-2.07-.86V1c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v1.26c-.76.2-1.47.5-2.13.89L5 2.28a.972.972 0 00-1.36 0L2.28 3.64c-.37.38-.37.98 0 1.36l.87.87c-.39.66-.69 1.37-.89 2.13H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h1.26c.19.73.48 1.42.85 2.06l-.94.94a.996.996 0 000 1.41l1.41 1.41c.39.39 1.02.39 1.41 0l.94-.94c.64.38 1.33.66 2.06.85V19c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1.26c.76-.2 1.47-.5 2.13-.89l.88.87c.37.37.98.37 1.36 0l1.36-1.36c.37-.38.37-.98 0-1.36l-.87-.87c.4-.65.7-1.37.89-2.13H19c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-9 7c-2.76 0-5-2.24-5-5s2.24-5 5-5v10z\"],\n \"control\": [\"M17 10h-7v7h7v-7zm0-7h-7v6h7V3zM9 3H3v14h6V3zm10-3H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2V2h16v16z\"],\n \"credit-card\": [\"M19 3H1c-.55 0-1 .45-1 1v2h20V4c0-.55-.45-1-1-1zM0 16c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V8H0v8zm6.5-2h7c.28 0 .5.22.5.5s-.22.5-.5.5h-7c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm-4 0h2c.28 0 .5.22.5.5s-.22.5-.5.5h-2c-.28 0-.5-.22-.5-.5s.22-.5.5-.5z\"],\n \"cross\": [\"M11.41 10l4.29-4.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L10 8.59l-4.29-4.3a1.003 1.003 0 00-1.42 1.42L8.59 10 4.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4.29-4.3 4.29 4.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L11.41 10z\"],\n \"crown\": [\"M2 8l4 2 4-5 4 5 4-2-1 7H3L2 8zm8-6a1 1 0 110 2 1 1 0 010-2zM1 5a1 1 0 110 2 1 1 0 010-2zm18 0a1 1 0 110 2 1 1 0 010-2zM3 16h14v2H3v-2z\"],\n \"cube\": [\"M1.953 4.481l7.41-4.02c.394-.215.88-.215 1.275 0l7.409 4.02L10 9.22 1.953 4.48zm-.817.68L9.5 10.085v9.281a1.316 1.316 0 01-.138-.064l-7.714-4.186A1.211 1.211 0 011 14.057v-8.35c0-.193.048-.38.136-.547zm17.728 0c.088.166.136.353.136.546v8.35c0 .438-.247.842-.648 1.06l-7.714 4.186c-.045.024-.091.046-.138.064v-9.281l8.364-4.926z\"],\n \"cube-add\": [\"M17 3h2a1 1 0 010 2h-2v2a1 1 0 01-2 0V5h-2a1 1 0 010-2h2V1a1 1 0 012 0v2zm-3.969 4.435L10 9.22 1.953 4.48l7.41-4.02c.394-.215.88-.215 1.275 0l1.33.721A3.001 3.001 0 0013 7c0 .148.01.293.031.435zm.319.972A3 3 0 0019 7v7.057c0 .438-.247.842-.648 1.06l-7.714 4.186c-.045.024-.091.046-.138.064v-9.281l2.85-1.679zM1.136 5.16L9.5 10.086v9.281a1.316 1.316 0 01-.138-.064l-7.714-4.186A1.211 1.211 0 011 14.057v-8.35c0-.193.048-.38.136-.547z\"],\n \"cube-remove\": [\"M11.968 1.182A3.001 3.001 0 0013 7h.77L10 9.22 1.953 4.48l7.41-4.02c.394-.215.88-.215 1.275 0l1.33.721zM19 7v7.057c0 .438-.247.842-.648 1.06l-7.714 4.186c-.045.024-.091.046-.138.064v-9.281L15.74 7H19zM1.136 5.16L9.5 10.086v9.281a1.316 1.316 0 01-.138-.064l-7.714-4.186A1.211 1.211 0 011 14.057v-8.35c0-.193.048-.38.136-.547zM13 3h6a1 1 0 010 2h-6a1 1 0 010-2z\"],\n \"curved-range-chart\": [\"M19 16H3.02l2.14-1.74c2.25 1.7 7.33.46 11.83-2.99l-1.29-1.5c-3.56 2.74-7.31 4.03-8.93 3.19l10.55-8.57-.63-.78-10.59 8.6c-.64-1.64 1.46-4.91 5.09-7.7L9.9 3.01c-4.6 3.54-6.91 8.12-5.41 10.51L2 15.54V3c0-.55-.45-1-1-1s-1 .45-1 1v14a.998.998 0 001 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"cut\": [\"M16 2s.72-1.28 0-2l-5.29 6.25 1.28 1.54L16 2zm.08 10c-.55 0-1.07.12-1.54.32L4.31 0c-.7.72 0 2 0 2l4.45 6.56-3.19 3.77C5.09 12.12 4.56 12 4 12c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.65-.17-1.26-.45-1.8l2.54-3.67 2.49 3.67c-.27.54-.44 1.15-.44 1.8 0 2.21 1.76 4 3.92 4 2.17 0 3.92-1.79 3.92-4 .02-2.21-1.74-4-3.9-4zM4 18c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm12.08 0c-1.08 0-1.96-.9-1.96-2s.88-2 1.96-2 1.96.9 1.96 2-.88 2-1.96 2z\"],\n \"cycle\": [\"M16 10a4 4 0 110 8 4 4 0 010-8zM4 10a4 4 0 110 8 4 4 0 010-8zm7.299-5.543l.087.089 1.93 2.232 2.048.708a1 1 0 01.65 1.16l-.031.112a1 1 0 01-1.16.65l-.112-.031-2.302-.796a1 1 0 01-.337-.197l-.092-.094-1.387-1.603-1.891 1.982 2.046 2.274a1 1 0 01.25.547l.007.122v4.24a1 1 0 01-1.993.117l-.007-.117-.001-3.857-2.408-2.676a1 1 0 01-.063-1.26l.082-.099 3.29-3.45a1 1 0 011.394-.053zM16 12a2 2 0 100 4 2 2 0 000-4zM4 12a2 2 0 100 4 2 2 0 000-4zm9.5-10a1.5 1.5 0 110 3 1.5 1.5 0 010-3z\"],\n \"dashboard\": [\"M6 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM4 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm6-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-5C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm6-9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-8 5c0 1.1.9 2 2 2s2-.9 2-2c0-.33-2-8-2-8s-2 7.67-2 8zm6-9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z\"],\n \"data-lineage\": [\"M1.053 0C.47 0 0 .471 0 1.053V4.21c0 .58.471 1.052 1.053 1.052h3.275a6.332 6.332 0 003.728 4.738 6.33 6.33 0 00-3.728 4.737l-3.275-.001C.47 14.737 0 15.208 0 15.789v3.158C0 19.53.471 20 1.053 20h7.435c.581 0 1.053-.471 1.053-1.053V15.79c0-.58-.472-1.052-1.053-1.052H5.406a5.293 5.293 0 015.195-4.21v2.105c0 .58.471 1.052 1.052 1.052h7.294c.582 0 1.053-.471 1.053-1.052V7.368c0-.58-.471-1.052-1.053-1.052h-7.294c-.581 0-1.052.471-1.052 1.052v2.106a5.293 5.293 0 01-5.194-4.21h3.081c.581 0 1.053-.472 1.053-1.053V1.053C9.54.47 9.069 0 8.488 0H1.053z\"],\n \"database\": [\"M2.01 5.1v5.4c0 1.38 3.58 2.5 8 2.5s8-1.12 8-2.5V5.1c-1.49 1.13-4.51 1.9-8 1.9-3.48 0-6.5-.77-8-1.9zm8 .9c4.42 0 8-1.12 8-2.5s-3.58-2.5-8-2.5-8 1.12-8 2.5S5.6 6 10.01 6zm-8 6.1v5.4c0 1.38 3.58 2.5 8 2.5s8-1.12 8-2.5v-5.4c-1.49 1.13-4.51 1.9-8 1.9-3.48 0-6.5-.77-8-1.9z\"],\n \"delete\": [\"M15 6a1.003 1.003 0 00-1.71-.71L10 8.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42L8.59 10 5.3 13.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3.29-3.3 3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L11.41 10l3.29-3.29c.19-.18.3-.43.3-.71zm-5-6C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"],\n \"delta\": [\"M10 0L0 20h20L10 0zM9 6l6 12H3L9 6z\"],\n \"derive-column\": [\"M7.1 8.2h-.99c.28-1.11.66-1.92 1.12-2.43.28-.32.56-.48.83-.48.05 0 .1.02.13.05.03.03.05.07.05.12 0 .04-.04.13-.11.25a.64.64 0 00-.12.35c0 .15.06.28.18.39.12.11.27.16.45.16.2 0 .36-.07.49-.2s.2-.31.2-.54c0-.26-.1-.47-.3-.63-.19-.16-.51-.24-.95-.24-.68 0-1.3.19-1.85.58-.56.38-1.09 1.02-1.59 1.91-.17.3-.34.5-.49.59-.15.08-.4.13-.74.12l-.23.77h.95l-1.39 5.24c-.23.86-.39 1.39-.47 1.59-.12.29-.3.54-.54.75-.1.08-.21.12-.35.12-.04 0-.07-.01-.1-.03l-.03-.04c0-.02.03-.07.1-.13.07-.07.1-.17.1-.31 0-.15-.05-.28-.16-.38-.11-.1-.27-.15-.47-.15-.25 0-.44.07-.59.2-.15.12-.23.28-.23.46 0 .19.09.36.27.5.19.14.47.21.86.21.61 0 1.16-.15 1.63-.46.48-.31.89-.78 1.25-1.43.35-.64.72-1.68 1.09-3.11l.8-3.03h.96l.24-.77zM19 0h-9c-.55 0-1 .45-1 1v3h2V2h7v16h-7v-2H9v3c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-8.79 13.49c.15.28.32.49.52.61.19.12.44.19.73.19.28 0 .57-.1.86-.3.38-.25.77-.69 1.17-1.31l-.25-.14c-.27.37-.48.6-.61.69-.09.06-.19.09-.31.09-.14 0-.28-.09-.42-.26-.23-.29-.54-1.09-.93-2.4.35-.59.64-.97.87-1.15.17-.13.35-.2.55-.2.07 0 .2.03.39.08s.36.08.5.08c.2 0 .37-.07.5-.2.15-.14.22-.31.22-.52 0-.22-.07-.4-.2-.53s-.33-.2-.58-.2c-.22 0-.43.05-.63.15-.2.1-.45.32-.75.67-.23.25-.56.7-1.01 1.33a6.52 6.52 0 00-.91-2.15l-2.39.39-.05.25c.18-.03.33-.05.45-.05.24 0 .43.1.59.3.25.31.59 1.24 1.02 2.8-.34.44-.58.73-.7.87-.21.22-.38.36-.52.43-.1.05-.22.08-.35.08-.1 0-.26-.05-.49-.16a1.01 1.01 0 00-.42-.11c-.23 0-.42.07-.57.22-.15.14-.23.33-.23.55 0 .21.07.38.21.51.14.13.33.2.56.2.23 0 .44-.05.64-.14.2-.09.45-.29.75-.59s.72-.78 1.25-1.43c.21.61.39 1.06.54 1.35z\"],\n \"desktop\": [\"M19 0H1C.45 0 0 .45 0 1v13c0 .55.45 1 1 1h5.67l-.5 3H5c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1h-1.17l-.5-3H19c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 13H2V2h16v11z\"],\n \"diagnosis\": [\"M4 2a1 1 0 01.117 1.993L4 4v5a2 2 0 001.85 1.995L6 11a2 2 0 001.995-1.85L8 9V4a1 1 0 01-.117-1.993L8 2h1a1 1 0 01.993.883L10 3v6a4.002 4.002 0 01-3 3.874V13a3 3 0 003 3 4 4 0 003.995-3.8L14 12V8.792a2.5 2.5 0 112 0V12a6 6 0 01-6 6 5 5 0 01-4.995-4.783L5 13v-.126A4.002 4.002 0 012.005 9.2L2 9V3a1 1 0 01.883-.993L3 2h1z\"],\n \"diagram-tree\": [\"M19 10v5h-2v-4h-6v4H9v-4H3v4H1v-5a1 1 0 011-1h7V5h2v4h7a1 1 0 011 1zM1 16h2a1 1 0 011 1v2a1 1 0 01-1 1H1a1 1 0 01-1-1v-2a1 1 0 011-1zm16 0h2a1 1 0 011 1v2a1 1 0 01-1 1h-2a1 1 0 01-1-1v-2a1 1 0 011-1zm-8 0h2a1 1 0 011 1v2a1 1 0 01-1 1H9a1 1 0 01-1-1v-2a1 1 0 011-1zM9 0h2a1 1 0 011 1v2a1 1 0 01-1 1H9a1 1 0 01-1-1V1a1 1 0 011-1z\"],\n \"direction-left\": [\"M20 3.02l-20 7 20 7-5-7z\"],\n \"direction-right\": [\"M20 10.02l-20-7 5 7-5 7z\"],\n \"disable\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zM2 10c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L3.69 14.9A7.902 7.902 0 012 10zm8 8c-1.85 0-3.55-.63-4.9-1.69L16.31 5.1A7.902 7.902 0 0118 10c0 4.42-3.58 8-8 8z\"],\n \"document\": [\"M11.98 0h-8c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V6l-6-6zm4 18h-11V2h6v5h5v11z\"],\n \"document-open\": [\"M8 15c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1h2.59L1.3 16.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L8 12.41V15zm5-15H5c-.55 0-1 .45-1 1v6h2V2h6v5h5v11H6v-.76L4.04 19.2c.1.45.48.8.96.8h13c.55 0 1-.45 1-1V6l-6-6z\"],\n \"document-share\": [\"M14.09 10.09c-.31.31-.67.57-1.09.72V18H2V2h6v5h1.18c.15-.42.39-.8.7-1.11v-.01l2.45-2.45c-.42-.29-.78-.65-1.01-1.11L9 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V9.24l-.88.88-.03-.03zM19 0h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L11.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 3.41V6c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"dollar\": [\"M15.57 11.19c-.27-.51-.63-.93-1.07-1.26-.44-.33-.95-.6-1.51-.79-.56-.2-1.14-.36-1.72-.5-.6-.14-1.19-.26-1.75-.38-.57-.13-1.07-.27-1.51-.44-.44-.17-.8-.38-1.07-.63s-.41-.59-.41-1c0-.33.09-.6.28-.81.19-.21.42-.36.69-.47.27-.11.57-.18.88-.22.31-.04.58-.06.8-.06.71 0 1.35.14 1.9.41.55.27.91.81 1.06 1.62h3.36c-.09-.84-.32-1.56-.69-2.16-.37-.6-.83-1.08-1.38-1.45-.56-.37-1.18-.64-1.86-.81-.19-.05-.38-.07-.57-.1V1c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v1.1c-.22.03-.43.05-.66.1-.73.13-1.39.37-1.98.71-.6.34-1.09.8-1.47 1.35-.39.56-.58 1.25-.58 2.08 0 .76.13 1.41.4 1.93.26.52.62.95 1.06 1.28.44.33.94.6 1.5.79.55.2 1.13.36 1.74.5.58.14 1.16.26 1.72.38s1.07.26 1.51.43c.44.17.8.39 1.09.66.28.27.43.63.45 1.06.02.43-.08.78-.3 1.04-.22.26-.49.47-.83.6-.34.14-.7.23-1.09.28-.39.05-.73.07-1.03.07-.87 0-1.61-.2-2.23-.59-.62-.39-.98-1.08-1.07-2.06H3c.02.9.19 1.68.52 2.34.33.66.78 1.21 1.35 1.65.57.44 1.25.77 2.03.98.35.1.71.16 1.08.21V19c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1.13c.25-.04.5-.07.76-.13.77-.18 1.47-.46 2.1-.85.63-.39 1.14-.9 1.54-1.53.4-.63.59-1.39.59-2.29.01-.75-.13-1.37-.4-1.88z\"],\n \"dot\": [\"M10 6a4 4 0 100 8 4 4 0 100-8z\"],\n \"double-caret-horizontal\": [\"M8 4c-.24 0-.46.1-.63.24l-.01-.01-6 5 .01.01c-.22.19-.37.45-.37.76s.15.57.37.76l-.01.01 6 5 .01-.01c.17.14.39.24.63.24.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm11 6c0-.31-.15-.57-.37-.76l.01-.01-6-5-.01.01C12.46 4.1 12.24 4 12 4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1 .24 0 .46-.1.63-.24l.01.01 6-5-.01-.01c.22-.19.37-.45.37-.76z\"],\n \"double-caret-vertical\": [\"M5 9h10c.55 0 1-.45 1-1 0-.24-.1-.46-.24-.63l.01-.01-5-6-.01.01C10.57 1.15 10.31 1 10 1s-.57.15-.76.37l-.01-.01-5 6 .01.01C4.1 7.54 4 7.76 4 8c0 .55.45 1 1 1zm10 2H5c-.55 0-1 .45-1 1 0 .24.1.46.24.63l-.01.01 5 6 .01-.01c.19.22.45.37.76.37s.57-.15.76-.37l.01.01 5-6-.01-.01c.14-.17.24-.39.24-.63 0-.55-.45-1-1-1z\"],\n \"double-chevron-down\": [\"M9.29 10.71c.18.18.43.29.71.29s.53-.11.71-.29l6-6a1.003 1.003 0 00-1.42-1.42L10 8.59l-5.29-5.3a1.003 1.003 0 00-1.42 1.42l6 6zM16 9c-.28 0-.53.11-.71.29L10 14.59l-5.29-5.3a1.003 1.003 0 00-1.42 1.42l6 6c.18.18.43.29.71.29s.53-.11.71-.29l6-6A1.003 1.003 0 0016 9z\"],\n \"double-chevron-left\": [\"M5.41 10l5.29-5.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-6 6c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l6 6a1.003 1.003 0 001.42-1.42L5.41 10zm6 0l5.29-5.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-6 6c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l6 6a1.003 1.003 0 001.42-1.42L11.41 10z\"],\n \"double-chevron-right\": [\"M11 10c0-.28-.11-.53-.29-.71l-6-6a1.003 1.003 0 00-1.42 1.42L8.59 10 3.3 15.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l6-6c.18-.18.29-.43.29-.71zm5.71-.71l-6-6a1.003 1.003 0 00-1.42 1.42l5.3 5.29-5.29 5.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l6-6c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"double-chevron-up\": [\"M4 11c.28 0 .53-.11.71-.29L10 5.41l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-6-6A.997.997 0 0010 3c-.28 0-.53.11-.71.29l-6 6A1.003 1.003 0 004 11zm6.71-1.71A.997.997 0 0010 9c-.28 0-.53.11-.71.29l-6 6a1.003 1.003 0 001.42 1.42l5.29-5.3 5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-6-6z\"],\n \"doughnut-chart\": [\"M16 10c0 3.31-2.69 6-6 6s-6-2.69-6-6 2.69-6 6-6V0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10h-4zm-.09-1h4.04C19.48 4.28 15.72.52 11 .05V4.1A5.98 5.98 0 0115.91 9z\"],\n \"download\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm4.71 11.71l-4 4c-.18.18-.43.29-.71.29s-.53-.11-.71-.29l-4-4a1.003 1.003 0 011.42-1.42L9 12.59V5c0-.55.45-1 1-1s1 .45 1 1v7.59l2.29-2.29c.18-.19.43-.3.71-.3a1.003 1.003 0 01.71 1.71z\"],\n \"drag-handle-horizontal\": [\"M7.5 11c-.83 0-1.5.67-1.5 1.5S6.67 14 7.5 14 9 13.33 9 12.5 8.33 11 7.5 11zm-5-5C1.67 6 1 6.67 1 7.5S1.67 9 2.5 9 4 8.33 4 7.5 3.33 6 2.5 6zm0 5c-.83 0-1.5.67-1.5 1.5S1.67 14 2.5 14 4 13.33 4 12.5 3.33 11 2.5 11zm15-2c.83 0 1.5-.67 1.5-1.5S18.33 6 17.5 6 16 6.67 16 7.5 16.67 9 17.5 9zm-5 2c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm5 0c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm-10-5C6.67 6 6 6.67 6 7.5S6.67 9 7.5 9 9 8.33 9 7.5 8.33 6 7.5 6zm5 0c-.83 0-1.5.67-1.5 1.5S11.67 9 12.5 9 14 8.33 14 7.5 13.33 6 12.5 6z\"],\n \"drag-handle-vertical\": [\"M7.5 6C6.67 6 6 6.67 6 7.5S6.67 9 7.5 9 9 8.33 9 7.5 8.33 6 7.5 6zm0 5c-.83 0-1.5.67-1.5 1.5S6.67 14 7.5 14 9 13.33 9 12.5 8.33 11 7.5 11zm0 5c-.83 0-1.5.67-1.5 1.5S6.67 19 7.5 19 9 18.33 9 17.5 8.33 16 7.5 16zm5-12c.83 0 1.5-.67 1.5-1.5S13.33 1 12.5 1 11 1.67 11 2.5 11.67 4 12.5 4zm-5-3C6.67 1 6 1.67 6 2.5S6.67 4 7.5 4 9 3.33 9 2.5 8.33 1 7.5 1zm5 10c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0 5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-10c-.83 0-1.5.67-1.5 1.5S11.67 9 12.5 9 14 8.33 14 7.5 13.33 6 12.5 6z\"],\n \"draw\": [\"M17.7 12.7c0-.1 0-.2-.1-.3l-2-7c-.1-.3-.3-.6-.6-.7L1.8 0l-.6.5L7.7 7c.3-.2.6-.3 1-.3 1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2c0-.4.1-.7.3-1L.5 1.2l-.5.6L4.7 15c.1.3.4.5.7.6l7 2c.1 0 .2.1.3.1.3 0 .5-.1.7-.3l4-4c.2-.2.3-.5.3-.7zm1 1c-.3 0-.5.1-.7.3l-4 4c-.2.2-.3.4-.3.7 0 .5.4 1 1 1 .3 0 .5-.1.7-.3l4-4c.2-.2.3-.4.3-.7 0-.6-.5-1-1-1z\"],\n \"drawer-left\": [\"M9 0a1 1 0 011 1v18a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1h8zM8 2H2v16h6V2zm2 7h6.59L14.3 6.71A.965.965 0 0114 6a1.003 1.003 0 011.71-.71l4 4c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-4 4a1.003 1.003 0 01-1.42-1.42l2.3-2.29H10V9z\"],\n \"drawer-left-filled\": [\"M1 0h8a1 1 0 011 1v18a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1zm9 9h6.59L14.3 6.71A.965.965 0 0114 6a1.003 1.003 0 011.71-.71l4 4c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-4 4a1.003 1.003 0 01-1.42-1.42l2.3-2.29H10V9z\"],\n \"drawer-right\": [\"M19 0a1 1 0 011 1v18a1 1 0 01-1 1h-8a1 1 0 01-1-1V1a1 1 0 011-1h8zm-1 2h-6v16h6V2zm-8 7H3.41L5.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L3.41 11H10V9z\"],\n \"drawer-right-filled\": [\"M11 0h8a1 1 0 011 1v18a1 1 0 01-1 1h-8a1 1 0 01-1-1V1a1 1 0 011-1zm-1 9H3.41L5.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L3.41 11H10V9z\"],\n \"drive-time\": [\"M20.01 7.7c0-.63-.5-1.14-1.1-1.14h-1.32l-.95-2.57c-.24-.64-.95-1.31-1.59-1.5 0 0-1.65-.49-5.05-.49s-5.04.49-5.04.49c-.63.19-1.35.86-1.59 1.5l-.95 2.57H1.1C.5 6.56 0 7.07 0 7.7c0 .63.5 1.14 1.1 1.14h.47l-.34.91c-.24.64-.43 1.72-.43 2.4v5.39c0 .8.63 1.45 1.4 1.45.77 0 1.4-.65 1.4-1.45v-.83h12.8v.83c0 .8.63 1.45 1.4 1.45s1.4-.65 1.4-1.45v-5.39c0-.68-.19-1.77-.43-2.4l-.34-.91h.47c.61 0 1.11-.51 1.11-1.14zm-16.47.34l1.12-3.16c.08-.22.32-.39.54-.39h9.6c.22 0 .46.17.54.39l1.12 3.16c.08.21-.04.39-.26.39H3.8c-.22-.01-.34-.18-.26-.39zm.96 4.94c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.68 1.5 1.5c0 .83-.67 1.5-1.5 1.5zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"],\n \"duplicate\": [\"M15 4H1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 14H2V6h12v12zm5-18H5c-.55 0-1 .45-1 1v2h2V2h12v12h-1v2h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"edit\": [\"M4.59 12.59l2.83 2.83 7.65-7.65-2.83-2.83-7.65 7.65zM2 18l4.41-1.59-2.81-2.79L2 18zM16 2c-.55 0-1.05.22-1.41.59l-1.65 1.65 2.83 2.83 1.65-1.65A2.006 2.006 0 0016 2z\"],\n \"eject\": [\"M4 12h12c.55 0 1-.45 1-1 0-.25-.1-.47-.25-.64l.01-.01-6-7-.01.01C10.57 3.14 10.3 3 10 3s-.57.14-.75.36l-.01-.01-6 7 .01.01c-.15.17-.25.39-.25.64 0 .55.45 1 1 1zm12 1H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1z\"],\n \"endorsed\": [\"M19.83 9.38L18.81 7.6V5.62c0-.45-.23-.85-.61-1.08l-1.71-1-1.02-1.76a1.25 1.25 0 00-1.08-.61h-2.03l-1.74-1c-.38-.23-.87-.23-1.25 0l-1.74 1H5.65c-.44 0-.85.23-1.08.61L3.58 3.5l-1.8 1.04c-.38.24-.62.64-.62 1.08v2.06L.17 9.4c-.11.19-.17.4-.17.61s.06.42.17.61l.99 1.72v2.06c0 .45.23.85.61 1.08l1.78 1.02.99 1.72c.23.38.63.61 1.08.61h1.99l1.74 1c.19.11.41.17.62.17.21 0 .42-.06.61-.17l1.74-1h2.03c.44 0 .85-.23 1.08-.61l1.02-1.76 1.71-1c.38-.23.61-.64.61-1.08v-1.97l1.02-1.78c.27-.38.27-.85.04-1.25zm-5.08-.71l-5.01 5.01c-.18.18-.43.29-.71.29-.28 0-.53-.11-.71-.29l-3.01-3.01a1.003 1.003 0 011.42-1.42l2.3 2.3 4.31-4.3a1.003 1.003 0 011.71.71c0 .28-.12.53-.3.71z\"],\n \"envelope\": [\"M0 4.01v11.91l6.27-6.27L0 4.01zm18.91-1.03H1.09L10 10.97l8.91-7.99zm-5.18 6.66L20 15.92V4.01l-6.27 5.63zm-3.23 2.9c-.13.12-.31.19-.5.19s-.37-.07-.5-.19l-2.11-1.89-6.33 6.33h17.88l-6.33-6.33-2.11 1.89z\"],\n \"equals\": [\"M4 7h12a1 1 0 010 2H4a1 1 0 110-2zm0 4h12a1 1 0 010 2H4a1 1 0 010-2z\"],\n \"eraser\": [\"M18.71 8.43c.39-.4.39-1.05 0-1.45l-5.53-5.72a.967.967 0 00-1.4 0L1.29 12.1c-.39.4-.39 1.05 0 1.45l4.25 4.39 2.13 2.05h9.27c.02 0 .03.01.05.01.55 0 1-.45 1-1s-.45-1-1-1H9.46l.05-.05h.01l.81-.84 8.38-8.68zM7.52 17.94l-4.95-5.12 4.46-4.61 4.95 5.12-4.46 4.61z\"],\n \"error\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm1 16H9v-2h2v2zm0-3H9V4h2v9z\"],\n \"euro\": [\"M8.89 4.47c.56-.31 1.23-.47 2.03-.47.44 0 .85.07 1.25.22.4.14.76.35 1.07.6.17.14.33.3.47.47l2.32-2.32c-.16-.15-.3-.32-.47-.46-.62-.49-1.33-.87-2.12-1.13-.8-.25-1.64-.38-2.52-.38-1.24 0-2.35.22-3.33.66-.99.44-1.82 1.05-2.49 1.82-.68.78-1.2 1.68-1.56 2.72-.09.26-.13.54-.2.8H2c-.55 0-1 .45-1 1s.45 1 1 1h1.04c-.01.2-.04.38-.04.58 0 .15.03.28.03.42H2c-.55 0-1 .45-1 1s.45 1 1 1h1.31c.07.3.13.6.23.89.36 1.02.88 1.92 1.56 2.67.68.76 1.51 1.35 2.49 1.79.98.43 2.09.65 3.33.65.99 0 1.9-.15 2.73-.46.83-.3 1.55-.74 2.17-1.32.03-.03.05-.06.08-.09l-2.41-2.15c-.01.01-.02.02-.02.03-.61.67-1.46 1-2.54 1-.8 0-1.47-.16-2.03-.47-.56-.31-1.01-.72-1.35-1.24-.28-.38-.47-.83-.63-1.3H12c.55 0 1-.45 1-1s-.45-1-1-1H6.56c0-.14-.02-.28-.02-.42 0-.2.02-.39.03-.58H13c.55 0 1-.45 1-1s-.45-1-1-1H6.94c.15-.46.34-.9.59-1.28.35-.52.8-.94 1.36-1.25zM18 11.38v0z\"],\n \"exchange\": [\"M2.5 8a2.5 2.5 0 000 5 2.5 2.5 0 000-5zm10.35 3.15a.495.495 0 10-.7.7L13.3 13H5.5c-.28 0-.5.22-.5.5s.22.5.5.5h7.79l-1.15 1.15c-.08.09-.14.21-.14.35a.495.495 0 00.85.35l2-2c.09-.09.15-.21.15-.35s-.06-.26-.15-.35l-2-2zM17.5 8a2.5 2.5 0 000 5 2.5 2.5 0 000-5zM7.15 9.85a.495.495 0 10.7-.7L6.71 8h7.79c.28 0 .5-.22.5-.5s-.22-.5-.5-.5H6.71l1.15-1.15c.08-.09.14-.21.14-.35a.495.495 0 00-.85-.35l-2 2c-.09.09-.15.21-.15.35s.06.26.15.35l2 2z\"],\n \"exclude-row\": [\"M1 3h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zM0 13a1.003 1.003 0 001.71.71L4 11.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L5.41 10 7.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L4 8.59l-2.29-2.3A1.003 1.003 0 00.29 7.71L2.59 10 .3 12.29c-.19.18-.3.43-.3.71zm18-5h-7c-1.1 0-2 .9-2 2s.9 2 2 2h7c1.1 0 2-.9 2-2s-.9-2-2-2zm1 9H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"expand-all\": [\"M4 9c.28 0 .53-.11.71-.29L10 3.41l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-6-6C10.53 1.11 10.28 1 10 1s-.53.11-.71.29l-6 6A1.003 1.003 0 004 9zm12 2c-.28 0-.53.11-.71.29L10 16.59 4.71 11.3A.965.965 0 004 11a1.003 1.003 0 00-.71 1.71l6 6c.18.18.43.29.71.29s.53-.11.71-.29l6-6A1.003 1.003 0 0016 11z\"],\n \"export\": [\"M5 7c.28 0 .53-.11.71-.29L9 3.41V15c0 .55.45 1 1 1s1-.45 1-1V3.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-5-5C10.53.11 10.28 0 10 0s-.53.11-.71.29l-5 5A1.003 1.003 0 005 7zm14 7c-.55 0-1 .45-1 1v3H2v-3c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1z\"],\n \"eye-off\": [\"M20 9.96v-.03-.01-.02-.02a.794.794 0 00-.21-.43c-.55-.69-1.19-1.3-1.85-1.87l-3.93 2.62a3.966 3.966 0 01-3.96 3.77c-.47 0-.91-.1-1.33-.24l-2.24 1.49c.52.21 1.05.39 1.6.51 1.21.27 2.43.28 3.64.05 1.11-.21 2.17-.64 3.17-1.18 1.56-.84 2.99-2 4.23-3.3.23-.24.46-.49.67-.75a.87.87 0 00.21-.43v-.02-.02-.01-.03V10v-.04zm-.46-5.14c.27-.18.46-.47.46-.82 0-.55-.45-1-1-1-.21 0-.39.08-.54.18l-.01-.02L15 5.46c-.95-.53-1.95-.96-3.01-1.2a9.158 9.158 0 00-3.65-.04c-1.11.21-2.17.64-3.17 1.18-1.56.84-2.99 2-4.23 3.3-.23.24-.46.48-.67.75-.27.34-.27.76 0 1.1.64.79 1.39 1.5 2.16 2.15.26.21.52.41.79.61L.44 15.16l.01.02A1 1 0 000 16c0 .55.45 1 1 1 .21 0 .39-.08.54-.18l.01.02 18-12-.01-.02zm-8.67 3.4c-.25-.12-.53-.2-.83-.2-1.1 0-1.99.89-1.99 1.99 0 .03.02.06.02.09l-1.78 1.19c-.14-.4-.22-.83-.22-1.28 0-2.19 1.78-3.97 3.98-3.97 1.01 0 1.91.38 2.61 1l-1.79 1.18z\"],\n \"eye-on\": [\"M13.3 8.71c.18.18.43.29.71.29s.53-.11.71-.29l4.99-5a1.003 1.003 0 00-1.42-1.42L14 6.58l-2.29-2.29a.956.956 0 00-.7-.29 1.003 1.003 0 00-.71 1.71l3 3zM20 9.96v-.03-.01-.02-.02a.823.823 0 00-.21-.44c-.44-.55-.94-1.05-1.46-1.52l-2.2 2.2c-.55.54-1.3.88-2.12.88-.05 0-.09-.01-.14-.01a3.978 3.978 0 01-3.86 3.02 4.007 4.007 0 01-1.66-7.65A2.97 2.97 0 018.02 5c0-.28.05-.54.12-.8-1.05.22-2.07.64-3.02 1.15-1.57.85-3 2.02-4.24 3.33-.23.25-.46.5-.67.76-.28.35-.28.77 0 1.12.64.8 1.4 1.52 2.17 2.17 1.66 1.41 3.56 2.58 5.66 3.06 1.21.27 2.43.29 3.65.05 1.11-.21 2.18-.65 3.18-1.19 1.57-.85 3-2.02 4.24-3.33.23-.24.46-.49.67-.76.11-.12.18-.27.21-.44v-.02-.02-.01-.03V10c.01-.01.01-.03.01-.04zm-9.99 2.05c1.03 0 1.87-.79 1.98-1.8l-.09-.09-.01.01-2.1-2.11c-1 .11-1.77.95-1.77 1.98-.01 1.11.89 2.01 1.99 2.01z\"],\n \"eye-open\": [\"M10.01 7.984A2.008 2.008 0 008.012 9.99c0 1.103.9 2.006 1.998 2.006a2.008 2.008 0 001.998-2.006c0-1.103-.9-2.006-1.998-2.006zM20 9.96v-.03-.01-.02-.02a.827.827 0 00-.21-.442c-.64-.802-1.398-1.514-2.168-2.166-1.658-1.404-3.566-2.587-5.664-3.058a8.982 8.982 0 00-3.656-.05c-1.11.2-2.178.641-3.177 1.183-1.569.852-2.997 2.016-4.246 3.33-.23.25-.46.49-.67.761-.279.351-.279.773 0 1.124.64.802 1.4 1.514 2.169 2.166 1.658 1.404 3.566 2.577 5.664 3.058 1.209.271 2.438.281 3.656.05 1.11-.21 2.178-.651 3.177-1.193 1.569-.852 2.997-2.016 4.246-3.33.23-.24.46-.49.67-.751.11-.12.179-.271.209-.442v-.02-.02-.01-.03V10v-.04zM10.01 14A4.003 4.003 0 016.014 9.99a4.003 4.003 0 013.996-4.011 4.003 4.003 0 013.996 4.011 4.003 4.003 0 01-3.996 4.011z\"],\n \"fast-backward\": [\"M18 3c-.23 0-.42.09-.59.21l-.01-.01L11 8V4c0-.55-.45-1-1-1-.23 0-.42.09-.59.21L9.4 3.2l-8 6 .01.01C1.17 9.4 1 9.67 1 10s.17.6.41.79l-.01.01 8 6 .01-.01c.17.12.36.21.59.21.55 0 1-.45 1-1v-4l6.4 4.8.01-.01c.17.12.36.21.59.21.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"fast-forward\": [\"M19 10c0-.33-.17-.6-.41-.79l.01-.01-8-6-.01.01C10.42 3.09 10.23 3 10 3c-.55 0-1 .45-1 1v4L2.6 3.2l-.01.01C2.42 3.09 2.23 3 2 3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1 .23 0 .42-.09.59-.21l.01.01L9 12v4c0 .55.45 1 1 1 .23 0 .42-.09.59-.21l.01.01 8-6-.01-.01c.24-.19.41-.46.41-.79z\"],\n \"feed\": [\"M2.5 15a2.5 2.5 0 000 5 2.5 2.5 0 000-5zm.5-5c-.55 0-1 .45-1 1s.45 1 1 1c2.76 0 5 2.24 5 5 0 .55.45 1 1 1s1-.45 1-1c0-3.87-3.13-7-7-7zM3 0c-.55 0-1 .45-1 1s.45 1 1 1c8.28 0 15 6.72 15 15 0 .55.45 1 1 1s1-.45 1-1C20 7.61 12.39 0 3 0zm0 5c-.55 0-1 .45-1 1s.45 1 1 1c5.52 0 10 4.48 10 10 0 .55.45 1 1 1s1-.45 1-1C15 10.37 9.63 5 3 5z\"],\n \"feed-subscribed\": [\"M2.5 15a2.5 2.5 0 000 5 2.5 2.5 0 000-5zM3 2c1.76 0 3.44.31 5.01.87.03-.71.31-1.35.75-1.85C6.96.37 5.03 0 3 0c-.55 0-1 .45-1 1s.45 1 1 1zm10.32 4.67a.99.99 0 001.4 0l4.98-4.98c.19-.17.3-.42.3-.7 0-.55-.45-1-1-1a.99.99 0 00-.7.29l-4.27 4.27-2.28-2.28a.99.99 0 00-.7-.29c-.55 0-.99.45-.99 1 0 .28.11.52.29.7l2.97 2.99zM3 10c-.55 0-1 .45-1 1s.45 1 1 1c2.76 0 5 2.24 5 5 0 .55.45 1 1 1s1-.45 1-1c0-3.87-3.13-7-7-7zm13.94-2.69l-.82.82-.02-.02c-.2.2-.42.37-.67.51A14.8 14.8 0 0118 17c0 .55.45 1 1 1s1-.45 1-1c0-3.61-1.14-6.94-3.06-9.69zM3 5c-.55 0-1 .45-1 1s.45 1 1 1c5.52 0 10 4.48 10 10 0 .55.45 1 1 1s1-.45 1-1C15 10.37 9.63 5 3 5z\"],\n \"film\": [\"M19 2h-5v3H6V2H1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h5v-3h8v3h5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zM4 17H2v-2h2v2zm0-3H2v-2h2v2zm0-3H2V9h2v2zm0-3H2V6h2v2zm0-3H2V3h2v2zm10 8H6V7h8v6zm4 4h-2v-2h2v2zm0-3h-2v-2h2v2zm0-3h-2V9h2v2zm0-3h-2V6h2v2zm0-3h-2V3h2v2z\"],\n \"filter\": [\"M18 1H2a1.003 1.003 0 00-.71 1.71L7 8.41V18a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71V8.41l5.71-5.71c.18-.17.29-.42.29-.7 0-.55-.45-1-1-1z\"],\n \"filter-keep\": [\"M15 2c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L5 7.41V16a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71V7.41l4.71-4.71c.18-.17.29-.42.29-.7zm4 11c-.28 0-.53.11-.71.29L15 16.59l-1.29-1.29A.965.965 0 0013 15a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0019 13z\"],\n \"filter-list\": [\"M15 2c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L5 7.41V16a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71V7.41l4.71-4.71c.18-.17.29-.42.29-.7zm-4 8c0 .55.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1h-7c-.55 0-1 .45-1 1zm8 7h-7c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1zm0-4h-7c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"filter-open\": [\"M15 2c0 .28-.11.53-.29.7L10 7.41V13c0 .28-.11.53-.29.71l-3 3A1.003 1.003 0 015 16V7.41L.29 2.71A1.003 1.003 0 011 1h13c.55 0 1 .45 1 1zm4.707 11.293a1 1 0 010 1.414l-4 4c-.63.63-1.707.184-1.707-.707v-8c0-.89 1.077-1.337 1.707-.707l4 4z\"],\n \"filter-remove\": [\"M15 2c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L5 7.41V16a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71V7.41l4.71-4.71c.18-.17.29-.42.29-.7zm2.91 13.5l1.79-1.79c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-1.79 1.79-1.79-1.79a1.003 1.003 0 00-1.42 1.42l1.79 1.79-1.79 1.79a1.003 1.003 0 001.42 1.42l1.79-1.79 1.79 1.79a1.003 1.003 0 001.42-1.42l-1.8-1.79z\"],\n \"flag\": [\"M3 3c-.55 0-1 .45-1 1v15c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1zm0-3c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm2 4.08v8.28c3.01-2.41 8.67 2.64 13 0V4.08C13.61 7.14 8.01 1 5 4.08z\"],\n \"flame\": [\"M11.622 0c0 1.71.49 3.077 1.472 4.103C16.364 6.496 18 9.23 18 12.308c0 3.418-1.962 5.983-5.887 7.692 2.887-3 2.453-4.23-.49-8C8.5 13.5 9 14.5 9.5 16.5c-1.048 0-2 0-2.5-.5 0 .684 1.197 2.5 1.952 4-3.924-1.026-8.123-7.18-6.651-7.692.981-.342 2.126-.171 3.434.513C4.1 6.667 6.062 2.393 11.622 0z\"],\n \"flash\": [\"M4.96 6.37a1.003 1.003 0 001.42-1.42l-2-2a1.07 1.07 0 00-.71-.28 1.003 1.003 0 00-.71 1.71l2 1.99zm9.37.3c.28 0 .53-.11.71-.29l2-2a1.003 1.003 0 00-1.42-1.42l-2 2a1.003 1.003 0 00.71 1.71zM10 5c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1S9 .45 9 1v3c0 .55.45 1 1 1zm-5 5c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1zm14-1h-3c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1zm-9-3c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm5.04 1.63a1.003 1.003 0 00-1.42 1.42l2 2a1.003 1.003 0 001.42-1.42l-2-2zM10 15c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1s1-.45 1-1v-3c0-.55-.45-1-1-1zm-4.33-1.67c-.28 0-.53.11-.71.29l-2 2a1.003 1.003 0 001.42 1.42l2-2a1.003 1.003 0 00-.71-1.71z\"],\n \"floppy-disk\": [\"M14 1h-3v5h3V1zm5.71 2.29l-3-3A.997.997 0 0016 0h-1v7H5V0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V4c0-.28-.11-.53-.29-.71zM17 19H3v-8c0-.55.45-1 1-1h12c.55 0 1 .45 1 1v8z\"],\n \"flow-branch\": [\"M14.425 7.953a3.98 3.98 0 01.562 2.045 3.98 3.98 0 01-.583 2.08L18 15.671V12.98c0-.248.097-.496.29-.689.379-.379 1.047-.38 1.426 0a.94.94 0 01.283.696l-.001 5.049a.957.957 0 01-.276.69.955.955 0 01-.69.273h-5.059a.971.971 0 01-.689-.289 1.026 1.026 0 010-1.417.972.972 0 01.69-.29h2.702l-3.634-3.573a3.998 3.998 0 01-5.924-2.431H1a1 1 0 010-2h6.12a3.998 3.998 0 015.96-2.409L16.665 3l-2.694-.001a.972.972 0 01-.689-.29 1.035 1.035 0 010-1.425.94.94 0 01.696-.283l5.05.001c.248 0 .497.083.69.276a.954.954 0 01.272.69l.001 5.052a.971.971 0 01-.29.689 1.028 1.028 0 01-1.419 0 .972.972 0 01-.29-.69V4.323l-3.567 3.63z\"],\n \"flow-end\": [\"M12 9.919a3.998 3.998 0 014-3.92c2.21 0 4 1.79 4 3.997a3.998 3.998 0 01-4 3.996 3.998 3.998 0 01-4-3.916.967.967 0 01-.28.612L7.685 14.71a.958.958 0 01-.686.285c-.536 0-.994-.461-.994-.997 0-.273.107-.528.283-.704l2.379-2.302H.98c-.537 0-.976-.46-.976-.996s.44-.992.976-.992h7.676L6.287 6.687a.957.957 0 01-.283-.686c0-.536.458-.996.994-.996.274 0 .51.1.686.285l4.027 4.024c.159.158.27.365.29.605z\"],\n \"flow-linear\": [\"M5.125 10.997H.976C.439 10.997 0 10.537 0 10c0-.536.44-.993.976-.993h4.148a4.002 4.002 0 017.752 0h3.776L14.293 6.69a.962.962 0 01-.285-.687c0-.537.46-1.001.996-1.001a.96.96 0 01.698.3l4.005 4.015c.176.176.293.41.293.683a.972.972 0 01-.283.693L15.702 14.7a.997.997 0 01-.698.297c-.537 0-.996-.453-.996-.99 0-.273.107-.517.283-.692l2.371-2.318h-3.787a4.002 4.002 0 01-7.75 0z\"],\n \"flow-review\": [\"M6.13 9.004A4.005 4.005 0 0110.012 6c1.87 0 3.44 1.278 3.881 3.005h2.768l-2.354-2.317a.97.97 0 01-.283-.691c0-.536.462-.995 1-.995.273 0 .517.107.693.283l4 4.041a.97.97 0 01.284.692.956.956 0 01-.293.682l-3.991 3.997a.944.944 0 01-.694.292c-.537 0-1-.46-1-.997a.97.97 0 01.284-.692l2.345-2.29h-2.765a4.005 4.005 0 01-3.875 2.981 4.005 4.005 0 01-3.874-2.981H3.349l2.376 2.308a.97.97 0 01.283.691 1 1 0 01-.994.983.989.989 0 01-.713-.291L.293 10.699A.956.956 0 010 10.017a.97.97 0 01.283-.692l4.03-4.037a.996.996 0 01.701-.283c.537 0 .994.464.994 1a.97.97 0 01-.283.691L3.34 9.004h2.79z\"],\n \"flow-review-branch\": [\"M13.04 13.424c-.6.36-1.302.568-2.052.568a4 4 0 01-3.868-2.999H3.342l2.372 2.31c.176.176.283.42.283.694 0 .537-.452.998-.988.998a.935.935 0 01-.691-.289L.292 10.683A.96.96 0 010 9.999c0-.274.107-.518.283-.694l4.035-4.04a.973.973 0 01.691-.288c.536 0 .988.47.988 1.007a.975.975 0 01-.283.694L3.332 8.984h3.786a4 4 0 013.87-3.006c.771 0 1.492.22 2.102.599l3.565-3.57-2.538-.003a.974.974 0 01-.69-.29c-.38-.38-.38-1.052-.002-1.431A.94.94 0 0114.122 1l4.896.005a.96.96 0 01.69.277c.193.193.27.442.27.69l.005 4.9a.971.971 0 01-.289.69 1.023 1.023 0 01-1.416 0 .975.975 0 01-.29-.691l-.003-2.54-3.554 3.62c.351.596.553 1.291.553 2.034 0 .763-.213 1.477-.583 2.084l3.595 3.595.003-2.54c0-.249.097-.497.29-.69.38-.38 1.05-.381 1.429-.002a.94.94 0 01.282.697l-.005 4.9a.927.927 0 01-.277.675.974.974 0 01-.69.291L13.974 19a.97.97 0 01-.69-.29 1.03 1.03 0 01.002-1.42.974.974 0 01.69-.29l2.696-.003-3.632-3.573z\"],\n \"flows\": [\"M17.5 7.93a2.5 2.5 0 00-2.45 2h-2.3l-4.01-4-.75.75 3.26 3.25h-6.3a2.5 2.5 0 100 1h6.3l-3.26 3.25.75.75 4.01-4h2.3a2.5 2.5 0 102.45-3z\"],\n \"folder-close\": [\"M0 17c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V7H0v10zM19 4H9.41l-1.7-1.71A.997.997 0 007 2H1c-.55 0-1 .45-1 1v3h20V5c0-.55-.45-1-1-1z\"],\n \"folder-new\": [\"M12.994 7c0 1.655 1.344 3 2.998 3a3.002 3.002 0 002.999-3H20v10c0 .55-.45 1-1 1H1.01c-.55 0-1-.45-1-1V7h12.984zM10.76 6H0V3c0-.55.45-1 1-1h3.998c.28 0 .53.11.71.29L7.415 4h2.579c0 .768.29 1.469.765 2zm8.23-3c.55 0 1 .45 1 1s-.45 1-1 1h-1.998v2c0 .55-.45 1-1 1s-1-.45-1-1V5h-1.998c-.55 0-1-.45-1-1s.45-1 1-1h1.999V1c0-.55.45-1 .999-1 .55 0 1 .45 1 1v2h1.999z\"],\n \"folder-open\": [\"M20 9c0-.55-.45-1-1-1H5c-.43 0-.79.27-.93.65h-.01l-3 8h.01c-.04.11-.07.23-.07.35 0 .55.45 1 1 1h14c.43 0 .79-.27.93-.65h.01l3-8h-.01c.04-.11.07-.23.07-.35zM3.07 7.63C3.22 7.26 3.58 7 4 7h14V5c0-.55-.45-1-1-1H8.41l-1.7-1.71A.997.997 0 006 2H1c-.55 0-1 .45-1 1v12.31l3.07-7.68z\"],\n \"folder-shared\": [\"M11 4H9.41l-1.7-1.71A.997.997 0 007 2H1c-.55 0-1 .45-1 1v3h11.78C11.3 5.47 11 4.77 11 4zm8-1h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L12.3 9.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 6.41V9c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1zm-2.46 7.7l-1.42 1.42a2.996 2.996 0 11-4.24-4.24l.88-.88H0v10c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-5.18c-.31.11-.65.18-1 .18-1.02 0-1.92-.52-2.46-1.3z\"],\n \"folder-shared-open\": [\"M3.07 7.63C3.22 7.26 3.58 7 4 7h7.76l.54-.54A2.97 2.97 0 0111 4H8.41l-1.7-1.71A.997.997 0 006 2H1c-.55 0-1 .45-1 1v12.31l3.07-7.68zm13.47 3.07l-1.42 1.42A2.996 2.996 0 0110 10c0-.77.3-1.47.78-2H5c-.43 0-.79.27-.93.65h-.01l-3 8h.01c-.04.11-.07.23-.07.35 0 .55.45 1 1 1h14c.43 0 .79-.27.93-.65h.01l2.01-5.36c-1-.01-1.88-.52-2.41-1.29zM19 3h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L12.3 9.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 6.41V9c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"follower\": [\"M11.54 15.92c-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.08-.14.23-.48.2-.87-.05-.5-.25-.73-.47-.82v-.09c0-.63-.06-1.55-.17-2.15-.02-.17-.06-.33-.11-.5a3.69 3.69 0 00-1.29-1.86C9.69 4.25 8.8 4 8.01 4c-.8 0-1.69.25-2.32.73-.61.47-1.06 1.13-1.28 1.86-.05.17-.09.33-.11.5-.12.6-.18 1.51-.18 2.14v.08c-.23.09-.44.32-.49.83-.04.39.12.73.2.87.08.35.28.72.63.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.38 1.59-1.48.65-3.71 1.35-4.16 2.4C-.16 19.38.02 20 .02 20h15.95s.18-.62-.27-1.67c-.46-1.06-2.68-1.75-4.16-2.41zm8.15-12.63l-3-3a.956.956 0 00-.7-.29 1.003 1.003 0 00-.71 1.71L16.58 3H13c-.55 0-1 .45-1 1s.45 1 1 1h3.58l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.3-.71z\"],\n \"following\": [\"M11.55 15.92c-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.08-.14.23-.48.2-.87-.05-.5-.25-.73-.47-.82v-.09c0-.63-.06-1.55-.17-2.15-.02-.17-.06-.33-.11-.5a3.69 3.69 0 00-1.29-1.86C9.7 4.25 8.81 4 8.02 4c-.79 0-1.68.25-2.31.73-.61.47-1.07 1.13-1.29 1.86-.05.16-.09.33-.11.5-.12.6-.18 1.51-.18 2.14v.08c-.23.09-.44.32-.48.83-.04.39.12.73.2.87.08.35.28.72.63.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.38 1.59C3 16.56.77 17.26.32 18.31-.15 19.38.04 20 .04 20h15.95s.18-.62-.27-1.67c-.46-1.06-2.69-1.75-4.17-2.41zM19 3h-3.58l1.29-1.29A1.003 1.003 0 0015.29.29l-3 3c-.17.18-.28.43-.28.71 0 .28.11.53.29.71l3 3c.18.18.43.29.7.29a1.003 1.003 0 00.71-1.71L15.42 5H19c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"font\": [\"M17.93 18.64l-7-18C10.78.27 10.42 0 10 0s-.78.27-.93.64l-7 18c-.04.11-.07.23-.07.36 0 .55.45 1 1 1 .42 0 .78-.27.93-.64L6.41 13h7.19l2.47 6.36c.15.37.51.64.93.64.55 0 1-.45 1-1 0-.13-.03-.25-.07-.36zM7.18 11L10 3.76 12.82 11H7.18z\"],\n \"fork\": [\"M16.71 11.29a1.003 1.003 0 00-1.42 1.42l1.3 1.29h-2.17l-8-8h10.17L15.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3a1.003 1.003 0 00-1.42 1.42L16.59 4H1c-.55 0-1 .45-1 1s.45 1 1 1h2.59l9.71 9.71c.17.18.42.29.7.29h2.59l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3z\"],\n \"form\": [\"M2 13v4h4v-4H2zm-1-2h6c.55 0 1 .45 1 1v6c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1v-6c0-.55.45-1 1-1zm11-7h7c.55 0 1 .45 1 1s-.45 1-1 1h-7c-.55 0-1-.45-1-1s.45-1 1-1zM8 1a1.003 1.003 0 01.71 1.71l-5 6C3.53 8.89 3.28 9 3 9s-.53-.11-.71-.29l-2-2a1.003 1.003 0 011.42-1.42L3 6.59l4.29-5.3C7.47 1.11 7.72 1 8 1zm4 13h7c.55 0 1 .45 1 1s-.45 1-1 1h-7c-.55 0-1-.45-1-1s.45-1 1-1z\"],\n \"full-circle\": [\"M9.96 0a10 10 0 100 20 10 10 0 100-20z\"],\n \"full-stacked-chart\": [\"M15 16h2c.55 0 1-.45 1-1v-5h-4v5c0 .55.45 1 1 1zM12 2c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v4h4V2zm6 4h-4v3h4V6zm0-4c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v3h4V2zm-6 5H8v5h4V7zm-9 9h2c.55 0 1-.45 1-1v-3H2v3c0 .55.45 1 1 1zm6 0h2c.55 0 1-.45 1-1v-2H8v2c0 .55.45 1 1 1zm10 1H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM6 2c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v3h4V2zm0 4H2v5h4V6z\"],\n \"fullscreen\": [\"M3.41 2H6c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v5c0 .55.45 1 1 1s1-.45 1-1V3.41L7.29 8.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L3.41 2zM8 11c-.28 0-.53.11-.71.29L2 16.59V14c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1H3.41l5.29-5.29c.19-.18.3-.43.3-.71 0-.55-.45-1-1-1zM19 0h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L11.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 3.41V6c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm0 13c-.55 0-1 .45-1 1v2.59l-5.29-5.29A.965.965 0 0012 11a1.003 1.003 0 00-.71 1.71l5.3 5.29H14c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1z\"],\n \"function\": [\"M10.14 5.82H8.73c.4-1.66.94-2.87 1.6-3.64.4-.48.8-.72 1.18-.72.08 0 .14.02.19.07.05.05.07.1.07.18 0 .07-.05.19-.16.37s-.16.36-.16.52c0 .23.08.43.25.59a.9.9 0 00.64.25c.28 0 .51-.1.7-.3.19-.2.28-.47.28-.81 0-.39-.14-.7-.42-.94-.28-.24-.74-.36-1.36-.36-.97 0-1.86.29-2.65.87-.79.56-1.54 1.52-2.26 2.85-.24.46-.48.75-.7.88-.22.13-.57.19-1.06.19l-.32 1.15H5.9l-1.99 7.85c-.33 1.29-.56 2.09-.67 2.39-.17.44-.43.81-.77 1.12a.74.74 0 01-.5.19c-.05 0-.1-.02-.14-.05l-.04-.07c0-.03.05-.1.15-.2.1-.1.15-.26.15-.47 0-.23-.08-.42-.23-.57-.16-.15-.38-.23-.67-.23-.35 0-.63.1-.85.29-.21.2-.32.43-.32.7 0 .29.13.54.39.75.25.22.65.33 1.2.33.88 0 1.66-.23 2.33-.69.68-.46 1.27-1.17 1.78-2.14.51-.96 1.03-2.52 1.56-4.66l1.14-4.54H9.8l.34-1.15zm6.8 1.95c.25-.2.51-.29.78-.29.1 0 .29.04.56.11.27.08.51.11.72.11.29 0 .52-.1.72-.3.18-.19.28-.45.28-.77 0-.33-.1-.6-.29-.8-.19-.2-.47-.29-.82-.29-.32 0-.62.08-.9.23-.28.15-.64.49-1.08 1-.33.38-.81 1.05-1.44 2a9.712 9.712 0 00-1.31-3.22l-3.4.59-.07.37c.25-.05.47-.08.64-.08.34 0 .62.15.84.44.35.46.84 1.85 1.46 4.19-.49.66-.82 1.09-1 1.3-.3.33-.55.54-.74.64-.15.08-.32.12-.51.12-.14 0-.38-.08-.7-.24-.22-.1-.42-.16-.59-.16-.33 0-.6.11-.82.32-.21.22-.32.49-.32.83 0 .31.1.57.3.77.2.2.47.29.8.29.32 0 .63-.07.92-.21.29-.14.64-.43 1.08-.88.43-.45 1.03-1.16 1.79-2.14.29.93.55 1.61.76 2.03.21.42.46.73.74.91.28.19.62.28 1.04.28.4 0 .81-.15 1.23-.44.55-.38 1.1-1.04 1.68-1.97l-.35-.21c-.39.55-.68.89-.87 1.03-.12.09-.27.13-.44.13-.2 0-.4-.13-.59-.38-.33-.43-.77-1.63-1.33-3.6.47-.86.89-1.44 1.23-1.71z\"],\n \"gantt-chart\": [\"M4 7h5c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm3 2v1c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1zm12 3h-6c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm0 4H2V3c0-.55-.45-1-1-1s-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"geolocation\": [\"M0 8.33l9.17 2.5 2.5 9.17L20 0z\"],\n \"geosearch\": [\"M8 18.88c-3.79 0-6.88-3.09-6.88-6.88 0-.61.08-1.22.23-1.79.03.01.06-.01.1-.01h.09v.55c0 .23.21.42.44.42.04 0 .09-.01.12-.02l.9.88c.09.09.23.09.32 0s.09-.23 0-.32l-.86-.9c0-.02.05-.04.05-.07v-.13c0-.18.1-.25.29-.41h.53c.1 0 .19-.01.27-.05.01-.01.02 0 .03-.01.02-.01.03-.02.05-.04.01-.01.02-.01.02-.02l.02-.02 1.13-1.13c-.16-.32-.3-.65-.42-.99h-.64v-.53c0-.01.06.06.06-.1h.38c-.04-.16-.08-.32-.1-.48h-.71c.2-.16.42-.31.64-.45C4.02 6.09 4 5.8 4 5.5c0-.14.01-.28.02-.43C1.62 6.46 0 9.04 0 12c0 4.41 3.59 8 8 8 3.87 0 7.09-2.77 7.82-6.44l-.97-1.1c-.26 3.57-3.23 6.42-6.85 6.42zm-2.12-3.67v-.35h.15c.29 0 .49-.23.49-.53v-.68c0-.01.01-.01 0-.02L4.71 11.8h-.77c-.29 0-.47.24-.47.53v2c0 .29.18.53.47.53h.33v2.02c0 .28.28.51.56.51s.56-.23.56-.51v-1.22h-.01c.29 0 .5-.16.5-.45zm13.83-2.92l-3.68-3.68c.14-.21.27-.42.38-.65.02-.04.04-.07.05-.11.11-.22.2-.45.28-.69v-.01c.07-.24.13-.48.17-.73l.03-.17c.04-.24.06-.49.06-.75C17 2.46 14.54 0 11.5 0S6 2.46 6 5.5 8.46 11 11.5 11c.26 0 .51-.02.76-.06l.17-.03c.25-.04.49-.1.73-.17h.01c.24-.08.47-.17.69-.28.04-.02.07-.04.11-.05.23-.11.44-.24.65-.38l3.68 3.68c.17.18.42.29.7.29a1.003 1.003 0 00.71-1.71zM11.5 9.5c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm1.93 5.33v-.65c0-.11-.13-.21-.24-.21-.11 0-.24.09-.24.21v.65c0 .11.13.21.24.21.11 0 .24-.1.24-.21zm-2.41.67h.83c.29 0 .46-.21.46-.5v-1.86l.23-.22c-.34.05-.69.08-1.04.08-.36 0-.7-.03-1.05-.08.03.05.06.1.08.16V15c.01.29.2.5.49.5z\"],\n \"git-branch\": [\"M15 2c-1.66 0-3 1.34-3 3 0 1.3.84 2.4 2 2.82V9c0 1.1-.9 2-2 2H8c-.73 0-1.41.21-2 .55V5.82C7.16 5.4 8 4.3 8 3c0-1.66-1.34-3-3-3S2 1.34 2 3c0 1.3.84 2.4 2 2.82v8.37C2.84 14.6 2 15.7 2 17c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.25-.77-2.3-1.85-2.75C6.45 13.52 7.16 13 8 13h4c2.21 0 4-1.79 4-4V7.82C17.16 7.4 18 6.3 18 5c0-1.66-1.34-3-3-3zM5 2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 16c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM15 6c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"git-commit\": [\"M19 9h-4.1a5 5 0 00-9.8 0H1c-.55 0-1 .45-1 1s.45 1 1 1h4.1a5 5 0 009.8 0H19c.55 0 1-.45 1-1s-.45-1-1-1zm-9 4c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"],\n \"git-merge\": [\"M15 8c-1.3 0-2.4.84-2.82 2H11c-2.49 0-4.54-1.83-4.92-4.21A2.995 2.995 0 005 0C3.34 0 2 1.34 2 3c0 1.3.84 2.4 2 2.81v8.37C2.84 14.6 2 15.7 2 17c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.3-.84-2.4-2-2.82V9.86C7.27 11.17 9.03 12 11 12h1.18A2.996 2.996 0 0018 11c0-1.66-1.34-3-3-3zM5 18c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM5 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm10 8c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"git-new-branch\": [\"M17 3h-1V2c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V5h1c.55 0 1-.45 1-1s-.45-1-1-1zm-3 4.86V9c0 1.1-.9 2-2 2H8c-.73 0-1.41.21-2 .55V5.82C7.16 5.4 8 4.3 8 3c0-1.66-1.34-3-3-3S2 1.34 2 3c0 1.3.84 2.4 2 2.82v8.37C2.84 14.6 2 15.7 2 17c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.25-.77-2.3-1.85-2.75C6.45 13.52 7.16 13 8 13h4c2.21 0 4-1.79 4-4V7.86c-.32.08-.65.14-1 .14s-.68-.06-1-.14zM5 2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 16c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"git-pull\": [\"M17 14.18V7c0-2.21-1.79-4-4-4h-2.59l1.29-1.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C7.11 3.47 7 3.72 7 4c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L10.41 5H13c1.1 0 2 .9 2 2v7.18A2.996 2.996 0 0016 20c1.66 0 3-1.34 3-3 0-1.3-.84-2.4-2-2.82zM16 18c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM4 1C2.34 1 1 2.34 1 4c0 1.3.84 2.4 2 2.82v7.37C1.84 14.6 1 15.7 1 17c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.3-.84-2.4-2-2.82V6.82C6.16 6.4 7 5.3 7 4c0-1.66-1.34-3-3-3zm0 17c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM4 5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"git-push\": [\"M15 11c0-.28-.11-.53-.29-.71l-3-3C11.53 7.11 11.28 7 11 7s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42l1.29-1.3V19c0 .55.45 1 1 1s1-.45 1-1v-8.59l1.29 1.29c.18.19.43.3.71.3.55 0 1-.45 1-1zm4-11H1C.45 0 0 .45 0 1v16c0 .55.45 1 1 1h7v-2H2v-2h6v-1H4V2h14v11h-4v1h4v2h-4v2h5c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM5 8h2V6H5v2zm2-5H5v2h2V3z\"],\n \"git-repo\": [\"M7 3H5v2h2V3zm0 6H5v2h2V9zm0-3H5v2h2V6zm12-6H1C.45 0 0 .45 0 1v16c0 .55.45 1 1 1h4v2l2-1 2 1v-2h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 16H9v-1H5v1H2v-2h16v2zm0-3H4V2h14v11z\"],\n \"glass\": [\"M17 6V0H3v6c0 3.53 2.61 6.43 6 6.92V18H6c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1h-3v-5.08c3.39-.49 6-3.39 6-6.92z\"],\n \"globe\": [\"M7.53 4.37c.1-.1.1-.26 0-.35l-.68-.68c-.1-.1-.25-.1-.35 0-.1.1-.1.26 0 .35l.68.68c.1.1.25.1.35 0zm3.17.06h.3c.09 0 .16-.01.16-.1 0-.09-.07-.1-.16-.1h-.3c-.09 0-.16.01-.16.1s.07.1.16.1zm.98 1.15c.09 0 .19-.08.19-.17v-.42c0-.09-.1-.17-.19-.17s-.19.08-.19.17v.42c0 .09.1.17.19.17zm-6.5 4.19c-.35 0-.56.28-.56.63v2.37c0 .35.21.62.56.62h.39v2.4c0 .34.33.61.67.61s.67-.27.67-.61v-1.44h-.02c.35 0 .6-.19.6-.54v-.41h.18c.35 0 .58-.28.58-.62v-.81c0-.01.01-.01 0-.02L6.1 9.77h-.92zM10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8 0-.74.11-1.46.3-2.14h.03v.65c0 .28.25.5.53.5.05 0 .1-.01.15-.02l1.05 1.05c.1.11.28.11.38 0 .1-.1.11-.27 0-.38L3.42 8.59c0-.03.05-.05.05-.08v-.16c0-.22.12-.3.34-.49h.63c.12 0 .23-.01.32-.07.01-.01.02 0 .03-.01.02-.02.04-.03.06-.04.01-.01.02-.01.03-.02l.02-.02 2.15-2.15c.24-.24.24-.63 0-.86-.23-.24-.62-.19-.86.04l-.41.46H5v-.64c0-.01.07.07.07-.12h.87c.17 0 .3-.12.3-.29 0-.17-.13-.29-.3-.29H4.88C6.27 2.7 8.05 2 10 2s3.73.7 5.12 1.86h-1.58l-.01-.04c-.06 0-.12 0-.17.04l-.71.7c-.09.09-.09.23 0 .31.09.09.23.09.32 0l.56-.6.01-.03h.34c0 .19-.1.13-.1.16v.1c0 .29-.2.5-.49.5h-.51c-.25 0-.52.28-.52.54v.23h-.12c-.16 0-.27.08-.27.24v.33h-.32c-.23 0-.41.15-.41.38 0 .22.18.35.41.35.1 0 .19.04.26-.16l.06.01.66-.59h.23l.53.5c.04.04.11.03.16-.01.04-.04.04-.16 0-.2L13 6.15h.32l.12.16c.25.25.65.23.89-.02l.12-.14H15c.02 0 .11.07.11.07v.33s-.06-.01-.07-.01h-.49c-.16 0-.28.13-.28.29 0 .16.13.29.28.29h.49c.01 0 .07-.01.07-.01v.2c-.19.28-.33.57-.62.57h-1.28s0-.01-.01-.01l-.58-.58a.622.622 0 00-.89 0l-.58.58s0 .01-.01.01h-.34c-.35 0-.67.28-.67.63v1.25c0 .35.32.61.67.61h1.22c.46.19.78.48.97.94v2.28c0 .35.23.6.58.6h.98c.35 0 .54-.25.54-.6v-2.2l1.21-1.17.04-.02.02-.01h.04c.1-.11.2-.26.2-.42V8.49c0-.25-.22-.44-.42-.63h.58c.02.38.29.57.63.57h.43c.13.51.18 1.03.18 1.57 0 4.42-3.58 8-8 8zm6.16-5.65c-.14 0-.29.11-.29.25v.77c0 .14.15.25.29.25.14 0 .29-.11.29-.25v-.77c0-.14-.15-.25-.29-.25zM10.5 3.48c0-.34-.28-.57-.62-.57h-.74c-.34 0-.57.25-.57.59 0 .05-.13.06.06.1v.64c0 .2.09.36.29.36.2 0 .29-.16.29-.36v-.19h.68c.33 0 .61-.23.61-.57z\"],\n \"globe-network\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm7.39 7h-3.63c-.31-1.99-.92-3.66-1.72-4.73 2.45.65 4.41 2.42 5.35 4.73zM13 10c0 .69-.04 1.36-.11 2H7.11a18.419 18.419 0 010-4h5.77c.08.64.12 1.31.12 2zm-3-8c1.07 0 2.25 2.05 2.75 5h-5.5c.5-2.95 1.68-5 2.75-5zm-2.04.27C7.16 3.34 6.55 5.01 6.24 7H2.61c.94-2.31 2.9-4.08 5.35-4.73zM2 10c0-.69.11-1.36.28-2h3.83a18.419 18.419 0 000 4H2.28c-.17-.64-.28-1.31-.28-2zm.61 3h3.63c.31 1.99.92 3.66 1.72 4.73A7.996 7.996 0 012.61 13zM10 18c-1.07 0-2.25-2.05-2.75-5h5.5c-.5 2.95-1.68 5-2.75 5zm2.04-.27c.79-1.07 1.4-2.74 1.72-4.73h3.63a7.996 7.996 0 01-5.35 4.73zM13.89 12a18.419 18.419 0 000-4h3.83c.17.64.28 1.31.28 2s-.11 1.36-.28 2h-3.83z\"],\n \"graph\": [\"M17.5 4A2.5 2.5 0 0015 6.5c0 .06.01.12.02.18l-1.9.84C12.38 6.6 11.27 6 10 6c-.83 0-1.59.25-2.23.68L4.91 4.14c.05-.21.09-.42.09-.64a2.5 2.5 0 00-5 0A2.5 2.5 0 002.5 6c.42 0 .81-.11 1.16-.3l2.79 2.48C6.17 8.73 6 9.34 6 10c0 1.41.73 2.64 1.83 3.35l-.56 1.67A2.498 2.498 0 005 17.5a2.5 2.5 0 005 0c0-.74-.32-1.39-.83-1.85l.56-1.68c.09.01.18.03.27.03 2.21 0 4-1.79 4-4 0-.22-.03-.44-.07-.65l2.02-.9c.43.34.96.55 1.55.55a2.5 2.5 0 000-5z\"],\n \"graph-remove\": [\"M17.41 4l2.29-2.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L16 2.59 13.71.3A.965.965 0 0013 0a1.003 1.003 0 00-.71 1.71L14.59 4 12.3 6.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L16 5.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L17.41 4zM19 10c-.83 0-1.55-.36-2.09-.91l-.03.03-.88-.88-.88.88a2.996 2.996 0 11-4.24-4.24l.88-.88-.88-.88.03-.03C10.36 2.55 10 1.83 10 1c0-.35.07-.68.18-.99-.06 0-.12-.01-.18-.01C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10c0-.06-.01-.12-.01-.18-.31.11-.64.18-.99.18z\"],\n \"greater-than\": [\"M12.838 10l-9.154 3.051a1 1 0 00.632 1.898l12-4c.912-.304.912-1.594 0-1.898l-12-4a1 1 0 00-.632 1.898L12.838 10z\"],\n \"greater-than-or-equal-to\": [\"M3.684 11.051a1 1 0 00.632 1.898l12-4c.912-.304.912-1.594 0-1.898l-12-4a1 1 0 00-.632 1.898L12.838 8l-9.154 3.051zM4 15h12a1 1 0 110 2H4a1 1 0 010-2z\"],\n \"grid\": [\"M19 11c.55 0 1-.45 1-1s-.45-1-1-1h-2V5h2c.55 0 1-.45 1-1s-.45-1-1-1h-2V1c0-.55-.45-1-1-1s-1 .45-1 1v2h-4V1c0-.55-.45-1-1-1S9 .45 9 1v2H5V1c0-.55-.45-1-1-1S3 .45 3 1v2H1c-.55 0-1 .45-1 1s.45 1 1 1h2v4H1c-.55 0-1 .45-1 1s.45 1 1 1h2v4H1c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h4v2c0 .55.45 1 1 1s1-.45 1-1v-2h4v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1h-2v-4h2zM9 15H5v-4h4v4zm0-6H5V5h4v4zm6 6h-4v-4h4v4zm0-6h-4V5h4v4z\"],\n \"grid-view\": [\"M0 19c0 .55.45 1 1 1h8v-9H0v8zM0 1v8h9V0H1C.45 0 0 .45 0 1zm19-1h-8v9h9V1c0-.55-.45-1-1-1zm-8 20h8c.55 0 1-.45 1-1v-8h-9v9z\"],\n \"group-objects\": [\"M6 7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm8-3H6c-3.31 0-6 2.69-6 6s2.69 6 6 6h8c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 11H6c-2.76 0-5-2.24-5-5s2.24-5 5-5h8c2.76 0 5 2.24 5 5s-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"],\n \"grouped-bar-chart\": [\"M12 16h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1zm7 1H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm-3-1h1c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1zm-9 0h1c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1zm-4 0h1c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1z\"],\n \"hand\": [\"M17 5c-.42 0-.79.27-.93.64L14.38 10h-.77l1.34-6.67c.03-.1.05-.21.05-.33a.998.998 0 00-1.98-.19h-.01L11.57 10H11V1c0-.55-.45-1-1-1S9 .45 9 1v9h-.2L6.97 2.76a.997.997 0 00-1.73-.41l-.03.03c-.01.02-.02.03-.03.04-.01.02-.01.03-.02.04v.01c-.01.01-.02.02-.02.03v.01c-.02.01-.02.02-.03.03 0 0 0 .01-.01.01 0 .01 0 .02-.01.03 0 0 0 .01-.01.01 0 .01-.01.02-.01.03 0 0 0 .01-.01.01 0 .01-.01.02-.01.03 0 .01 0 .01-.01.02 0 .01-.01.02-.01.03 0 .01 0 .01-.01.02 0 .01-.01.02-.01.03v.02c0 .01 0 .02-.01.03V3c0 .05 0 .09.01.14l1.45 10.25L6 12.7v.01L3.84 9.45h-.01A.98.98 0 003 9c-.55 0-1 .45-1 1 0 .2.06.39.17.55L6 18.44C7.06 19.4 8.46 20 10 20c3.31 0 6-2.69 6-6v-1.84l.01-.03v-.06l1.94-5.75A1.003 1.003 0 0017 5z\"],\n \"hand-down\": [\"M17.68 9.84C15.91 9 14.27 6.49 13.45 4.9 12.41 2.43 12.21 0 7.87 0 5.49 0 3.95.76 3.05 2.65 2.31 4.2 2 5.48 2 9.79v.99c0 .82.69 1.48 1.54 1.48.38 0 .73-.14 1-.36.19.6.78 1.05 1.47 1.05.47 0 .89-.2 1.17-.52.26.47.77.79 1.36.79.65 0 1.2-.39 1.43-.93l.03.77v5.44c0 .48.23.91.59 1.18.21.19.5.32.85.32h.06c.83 0 1.5-.67 1.5-1.5v-8.24l.01-.67c.85.98 1.92 1.76 3.24 1.89 1.79.19 2.09-1.33 1.43-1.64z\"],\n \"hand-left\": [\"M15.1 6.54c-1.58-.81-4.09-2.46-4.94-4.23-.31-.65-1.82-.35-1.64 1.43.13 1.33.91 2.4 1.89 3.24L9.74 7H1.5C.67 7 0 7.67 0 8.5v.06c0 .36.13.64.32.85.27.36.7.59 1.18.59h5.44l.78.01c-.54.23-.93.78-.93 1.43 0 .59.32 1.1.79 1.36-.32.28-.52.7-.52 1.17 0 .69.44 1.28 1.05 1.47-.22.27-.36.62-.36 1 0 .85.66 1.54 1.48 1.54h.99c4.31 0 5.59-.31 7.14-1.05 1.89-.9 2.65-2.44 2.65-4.82-.01-4.32-2.44-4.52-4.91-5.57z\"],\n \"hand-right\": [\"M20 8.5c0-.83-.67-1.5-1.5-1.5h-8.24l-.67-.01c.98-.85 1.76-1.92 1.89-3.24.18-1.79-1.33-2.08-1.65-1.43-.84 1.76-3.35 3.41-4.93 4.23C2.43 7.59 0 7.79 0 12.13c0 2.38.76 3.92 2.65 4.82C4.2 17.69 5.48 18 9.79 18h.99c.82 0 1.48-.69 1.48-1.54 0-.38-.14-.73-.36-1 .6-.19 1.05-.78 1.05-1.47 0-.47-.2-.89-.52-1.17.47-.26.79-.77.79-1.36 0-.65-.39-1.2-.93-1.43l.77-.03h5.44c.48 0 .91-.23 1.18-.59.19-.21.32-.49.32-.85v-.03-.03z\"],\n \"hand-up\": [\"M16.46 7.74c-.38 0-.73.14-1 .36-.19-.6-.78-1.05-1.47-1.05-.47 0-.89.2-1.17.52-.26-.47-.77-.79-1.36-.79-.65 0-1.2.39-1.43.93L10 6.94V1.5c0-.48-.23-.91-.59-1.18C9.2.13 8.92 0 8.56 0H8.5C7.67 0 7 .67 7 1.5v8.24l-.01.67c-.84-.98-1.92-1.76-3.24-1.89-1.79-.18-2.08 1.33-1.43 1.65 1.77.84 3.41 3.35 4.23 4.94 1.05 2.47 1.25 4.9 5.58 4.9 2.38 0 3.92-.76 4.82-2.65.74-1.56 1.05-2.84 1.05-7.15v-.99c0-.81-.69-1.48-1.54-1.48z\"],\n \"hat\": [\"M18.5 13c1.118 0 1.466.534 1.498 1.366L20 14.5v.5c0 1.945-5.69 3-10 3S0 16.945 0 15v-.5c0-.908.323-1.5 1.5-1.5.895 0 3.5 1.2 8.5 1.2l.411-.003C15.143 14.134 17.631 13 18.5 13zm-5-10c1.725 0 2.954 2.729 3.688 8.186-1.455.263-3.805.72-6.392.801l-.434.01L10 12c-2.896 0-5.585-.524-7.189-.814C3.546 5.73 4.775 3 6.5 3 8.6 3 8.329 5.5 10 5.5S11.5 3 13.5 3z\"],\n \"header\": [\"M16 1c-.55 0-1 .45-1 1v7H5V2c0-.55-.45-1-1-1s-1 .45-1 1v16c0 .55.45 1 1 1s1-.45 1-1v-7h10v7c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z\"],\n \"header-one\": [\"M10 0c.55 0 1 .45 1 1v14c0 .55-.45 1-1 1s-1-.45-1-1V9H2v6c0 .55-.45 1-1 1s-1-.45-1-1V1c0-.55.45-1 1-1s1 .45 1 1v6h7V1c0-.55.45-1 1-1zm7.4 10.77c.17-.2.29-.46.34-.77H19v10h-1.5v-7.11H15v-1.24c.32 0 .63-.03.93-.08.31-.06.58-.16.83-.29.26-.12.47-.3.64-.51z\"],\n \"header-two\": [\"M16.6 17.41c-.22.17-.4.36-.56.55-.16.19-.27.4-.33.61h4.28V20H14c.01-.81.18-1.52.53-2.13.35-.6.81-1.13 1.41-1.58.28-.23.58-.46.89-.68.31-.22.59-.46.85-.71.26-.26.48-.53.63-.83.16-.3.25-.64.26-1.02 0-.18-.02-.37-.06-.57-.04-.2-.11-.39-.22-.56s-.26-.31-.45-.43-.44-.18-.75-.18c-.28 0-.52.06-.71.19s-.34.3-.45.52c-.11.22-.2.48-.25.78-.05.3-.08.62-.09.97h-1.43c0-.54.07-1.04.2-1.5.13-.47.32-.87.58-1.2.26-.34.58-.6.95-.78.37-.19.81-.29 1.3-.29.54 0 .99.09 1.35.29.36.19.65.44.87.74.22.29.38.62.47.97.09.35.14.68.14 1 0 .4-.05.75-.16 1.07-.11.32-.26.61-.44.88-.19.27-.4.52-.63.74-.24.22-.48.43-.73.63s-.5.38-.75.56c-.26.17-.5.35-.71.53zM10 0c.55 0 1 .45 1 1v14c0 .55-.45 1-1 1s-1-.45-1-1V9H2v6c0 .55-.45 1-1 1s-1-.45-1-1V1c0-.55.45-1 1-1s1 .45 1 1v6h7V1c0-.55.45-1 1-1z\"],\n \"headset\": [\"M18.97 9H19A9 9 0 001 9h.03C.41 9.73 0 10.8 0 12c0 1.74.84 3.2 2 3.76V16c0 1.66 1.34 3 3 3h3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1H5c-.55 0-1-.45-1-1 .55 0 1-.45 1-1V9c0-.55-.45-1-1-1h-.92C3.57 4.61 6.47 2 10 2s6.43 2.61 6.92 6H16c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h1c1.66 0 3-1.79 3-4 0-1.2-.41-2.27-1.03-3z\"],\n \"heart\": [\"M20 6.25C20 3.35 17.65 1 14.75 1c-1.02 0-1.95.31-2.75.82v-.04c-.09.06-.17.12-.26.19-.04.03-.09.06-.14.1-.68.51-1.24 1.18-1.6 1.96-.4-.86-1.04-1.57-1.8-2.1-.04-.02-.07-.05-.1-.08a7 7 0 00-.6-.33c-.13-.04-.23-.1-.35-.15-.05-.02-.1-.05-.15-.07v.02C6.45 1.13 5.87 1 5.25 1A5.25 5.25 0 000 6.25c0 .09.01.17.01.25H0c0 .06.01.12.02.18s.01.12.02.18C.13 7.89.44 9 1.07 10.17 2.23 12.33 4.1 14.11 7 16.53v.01c.9.75 1.89 1.55 3 2.46.71-.58 1.38-1.12 2-1.63 3.48-2.86 5.64-4.78 6.93-7.18.63-1.17.94-2.27 1.03-3.3.01-.07.01-.14.02-.21 0-.06.01-.11.02-.17h-.01c0-.09.01-.17.01-.26z\"],\n \"heart-broken\": [\"M8.11 7.45C8.05 7.31 8 7.16 8 7c0-.07.03-.13.04-.19h-.02l.86-4.32A5.159 5.159 0 005.25 1 5.25 5.25 0 000 6.25c0 .09.01.17.01.25H0c0 .06.01.12.02.18s.01.12.02.18C.13 7.89.44 9 1.07 10.17c1.38 2.58 3.76 4.6 7.71 7.83l-.76-3.8h.02c-.01-.07-.04-.13-.04-.2 0-.21.08-.39.18-.54l-.02-.01 1.68-2.52-1.73-3.48zM20 6.25C20 3.35 17.65 1 14.75 1c-1.54 0-2.92.67-3.88 1.73l-.83 4.13 1.85 3.69h-.01c.07.14.12.29.12.45 0 .21-.08.39-.18.54l.02.01-1.77 2.66.81 4.07c4.16-3.39 6.63-5.45 8.05-8.1.63-1.17.94-2.27 1.03-3.3.01-.07.01-.14.02-.21 0-.06.01-.11.02-.17h-.01c0-.08.01-.16.01-.25z\"],\n \"heat-grid\": [\"M14 12h6V8h-6v4zM0 12h6V8H0v4zm1-3h4v2H1V9zm-1 7c0 .55.45 1 1 1h5v-4H0v3zM19 3h-5v4h6V4c0-.55-.45-1-1-1zm0 3h-4V4h4v2zM0 4v3h6V3H1c-.55 0-1 .45-1 1zm7 3h6V3H7v4zm7 10h5c.55 0 1-.45 1-1v-3h-6v4zm-7 0h6v-4H7v4zm1-3h4v2H8v-2zm-1-2h6V8H7v4z\"],\n \"heatmap\": [\"M6 0a6 6 0 100 12A6 6 0 106 0z\", \"M10.5 8a4.5 4.5 0 100 9 4.5 4.5 0 100-9z\", \"M16.5 7a3.5 3.5 0 100 7 3.5 3.5 0 100-7zM18 16a2 2 0 100 4 2 2 0 100-4zM2.5 14a2.5 2.5 0 100 5 2.5 2.5 0 100-5zM16.5 0a2.5 2.5 0 100 5 2.5 2.5 0 100-5z\"],\n \"help\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zM7.41 4.62c.65-.54 1.51-.82 2.56-.82.54 0 1.03.08 1.48.25.44.17.83.39 1.14.68.32.29.56.63.74 1.02.17.39.26.82.26 1.27s-.08.87-.24 1.23c-.16.37-.4.73-.71 1.11l-1.21 1.58c-.14.17-.28.33-.32.48-.05.15-.11.35-.11.6v.97H9v-2s.06-.58.24-.81l1.21-1.64c.25-.3.41-.56.51-.77s.14-.44.14-.67c0-.35-.11-.63-.32-.85s-.5-.33-.88-.33c-.37 0-.67.11-.89.33-.22.23-.37.54-.46.94-.03.12-.11.17-.23.16l-1.95-.29c-.12-.01-.16-.08-.14-.22.13-.93.52-1.67 1.18-2.22zM9 14h2.02L11 16H9v-2z\"],\n \"helper-management\": [\"M17 10h-3v3h3v-3zm0 4h-3v3h3v-3zm0-8h-3v3h3V6zm2-6H1C.4 0 0 .4 0 1v18c0 .5.4 1 1 1h18c.5 0 1-.5 1-1V1c0-.6-.5-1-1-1zm-1 18H2V2h16v16zm-9-4H6v3h3v-3zm4 0h-3v3h3v-3z\"],\n \"highlight\": [\"M11.22 14.09l3.03-3.03.71.71L20 6.73l-5.71-5.71-5.04 5.04.71.71-3.02 3.04 4.28 4.28zm6.8 3.91h-16c-.55 0-1 .45-1 1s.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1zm-15-1h4.04c.28 0 .53-.11.71-.3l2.02-2.02-3.44-3.45-4.04 4.04c-.18.18-.3.44-.3.71.01.57.46 1.02 1.01 1.02z\"],\n \"history\": [\"M10 0C6.71 0 3.82 1.6 2 4.05V2c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.76C5.23 3.17 7.47 2 10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8c0-.55-.45-1-1-1s-1 .45-1 1c0 5.52 4.48 10 10 10s10-4.48 10-10S15.52 0 10 0zm0 3c-.55 0-1 .45-1 1v6c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L11 9.59V4c0-.55-.45-1-1-1z\"],\n \"home\": [\"M2 12v7c0 .55.45 1 1 1h5v-7h4v7h5c.55 0 1-.45 1-1v-7l-8-8-8 8zm17.71-2.71L17 6.59V3c0-.55-.45-1-1-1s-1 .45-1 1v1.59L10.71.3C10.53.11 10.28 0 10 0s-.53.11-.71.29l-9 9a1.003 1.003 0 001.42 1.42L10 2.41l8.29 8.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z\"],\n \"horizontal-bar-chart\": [\"M1 1c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1zm3 5h11c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1zm8 8H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm7-6H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h15c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1z\"],\n \"horizontal-bar-chart-asc\": [\"M1 9h11c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm0-5h9c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm18 12H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zM1 14h14c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1z\"],\n \"horizontal-bar-chart-desc\": [\"M10 16H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm2-5H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h11c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm3-5H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zm4-5H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1z\"],\n \"horizontal-distribution\": [\"M12 2H8c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zM1 0C.45 0 0 .45 0 1v18c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm18 0c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"id-number\": [\"M2 5v10h16V5H2zm0-2h16c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2H2c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z\", \"M8.88 12.38c-.17-.39-1.01-.66-1.56-.9-.56-.24-.48-.39-.5-.6v-.09c.19-.17.35-.4.45-.67 0 0 0-.02.01-.02l.06-.18c.13-.03.2-.17.23-.29.03-.05.09-.18.08-.33-.04-.18-.11-.27-.2-.3v-.03c0-.24-.02-.58-.06-.81-.01-.06-.02-.12-.04-.19-.08-.27-.25-.52-.48-.7C6.63 7.09 6.3 7 6 7s-.63.09-.87.27c-.23.17-.4.42-.48.7-.02.06-.03.13-.04.19-.04.22-.06.57-.06.81V9c-.09.03-.17.12-.19.31-.01.14.05.27.08.32.03.14.1.27.23.3.02.06.03.12.06.18v.01c.11.27.27.51.47.68v.08c-.02.2.04.35-.51.6-.56.24-1.39.51-1.56.9-.19.39-.12.62-.12.62h5.98c-.01 0 .06-.23-.11-.62zM12 7h4c.55 0 1 .45 1 1s-.45 1-1 1h-4c-.55 0-1-.45-1-1s.45-1 1-1zM12 11h4c.55 0 1 .45 1 1s-.45 1-1 1h-4c-.55 0-1-.45-1-1s.45-1 1-1z\"],\n \"image-rotate-left\": [\"M10.5 13c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM14 7H1c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 10l-5-3-1 2-2-4-3 4.5V9h11v8zm3-15h-1.59l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H16c1.1 0 2 .9 2 2v3c0 .55.45 1 1 1s1-.45 1-1V6c0-2.21-1.79-4-4-4z\"],\n \"image-rotate-right\": [\"M5.29 4.29a1.003 1.003 0 001.42 1.42l2-2C8.89 3.53 9 3.28 9 3c0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H4C1.79 2 0 3.79 0 6v3c0 .55.45 1 1 1s1-.45 1-1V6c0-1.1.9-2 2-2h1.59l-.3.29zM15.5 13c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM19 7H6c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 10l-5-3-1 2-2-4-3 4.5V9h11v8z\"],\n \"import\": [\"M9.29 15.71c.18.18.43.29.71.29s.53-.11.71-.29l5-5a1.003 1.003 0 00-1.42-1.42L11 12.59V1c0-.55-.45-1-1-1S9 .45 9 1v11.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l5 5zM19 14c-.55 0-1 .45-1 1v3H2v-3c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1z\"],\n \"inbox\": [\"M16.92 3.56l-.01-.02c-.16-.35-.5-.6-.91-.6H4c-.41 0-.76.25-.91.6l-.01.02L0 10.49v6.46c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-6.46l-3.08-6.93zM15 10.95c-.55 0-1 .45-1 1v1H6v-1c0-.55-.45-1-1-1H1.98l2.67-6h10.7l2.67 6H15z\"],\n \"inbox-filtered\": [\"M10.262 3l1.958 1.958v.05H4.65l-2.67 5.997H5c.55 0 1 .45 1 .999v1h8v-1c0-.55.45-1 1-1h3.02l-.635-1.426.625-.63c.354-.353.598-.8.707-1.289L20 10.545v6.456c0 .55-.45.999-1 .999H1c-.55 0-1-.45-1-1v-6.455L3.08 3.62l.01-.02c.15-.35.5-.6.91-.6h6.262zm9.088-3a.642.642 0 01.46 1.1l-3.03 3.03v2.95c0 .18-.07.34-.19.46l-1.28 1.29c-.11.1-.27.17-.45.17-.35 0-.64-.29-.64-.64V4.13L11.19 1.1a.642.642 0 01.45-1.1h7.71z\"],\n \"inbox-geo\": [\"M7.427 3a7.467 7.467 0 00-.411 2.009H4.65l-2.67 5.996H5c.55 0 1 .45 1 .999v1h8V13c.165.01.332 0 .5 0a7.48 7.48 0 005.5-2.4V17c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1v-6.455L3.08 3.62l.01-.02c.15-.35.5-.6.91-.6h3.427zm5.715-.596a.133.133 0 01-.193 0l-.374-.374a.133.133 0 010-.193.133.133 0 01.193 0l.373.374a.133.133 0 010 .193zm1.743.033c-.05 0-.088-.006-.088-.055 0-.05.038-.056.088-.056h.165c.05 0 .088.006.088.055 0 .05-.038.056-.088.056h-.165zm.539.632c-.05 0-.104-.044-.104-.094v-.23c0-.05.054-.094.104-.094.05 0 .104.044.104.094v.23c0 .05-.055.094-.104.094zm-3.575 2.304h.506l1.182 1.2c.006.005 0 .005 0 .01v.446c0 .187-.126.341-.319.341h-.098v.226c0 .192-.138.296-.33.296h.01v.792c0 .188-.181.336-.368.336s-.369-.149-.369-.335v-1.32h-.214c-.193 0-.308-.149-.308-.341V5.72c0-.192.115-.346.308-.346zM14.5 0C17.536 0 20 2.464 20 5.5S17.536 11 14.5 11A5.502 5.502 0 019 5.5C9 2.464 11.464 0 14.5 0zm0 9.9c2.431 0 4.4-1.969 4.4-4.4 0-.297-.027-.583-.099-.864h-.236c-.188 0-.336-.104-.347-.313h-.319c.11.104.231.209.231.346v.705c0 .088-.055.17-.11.23h-.022l-.011.006-.022.011-.666.643v1.21c0 .193-.104.33-.296.33h-.54c-.192 0-.319-.137-.319-.33V6.221a.915.915 0 00-.533-.518h-.671c-.192 0-.368-.143-.368-.335V4.68c0-.192.176-.346.368-.346l.193-.005.319-.32a.342.342 0 01.489 0l.319.32c.005 0 .005.005.005.005h.704c.16 0 .237-.16.341-.313v-.11l-.038.005h-.27a.159.159 0 01-.153-.16c0-.087.066-.159.154-.159h.269l.039.006V3.42s-.05-.038-.061-.038h-.302l-.067.076a.342.342 0 01-.489.011l-.066-.088h-.176l.248.259c.021.022.021.088 0 .11-.028.022-.067.028-.088.006l-.292-.276h-.127l-.363.325-.033-.006c-.038.11-.087.089-.143.089-.126 0-.225-.072-.225-.193 0-.127.099-.209.225-.209h.176v-.182c0-.088.061-.131.149-.131h.066v-.127c0-.143.149-.297.286-.297h.28c.16 0 .27-.115.27-.275V2.42c0-.016.055.017.055-.088h-.187l-.005.017-.308.33a.123.123 0 01-.177 0c-.049-.044-.049-.121 0-.171l.391-.385c.027-.022.06-.022.094-.022l.005.022h.869A4.376 4.376 0 0014.5 1.1a4.402 4.402 0 00-2.816 1.018h.583c.094 0 .165.066.165.159s-.072.16-.165.16h-.478c0 .104-.039.06-.039.066v.351h.429l.226-.252c.132-.127.346-.155.473-.022a.332.332 0 010 .473l-1.183 1.182-.011.011c-.005.005-.011.005-.016.011a.115.115 0 00-.034.022c-.005.006-.01 0-.016.006a.309.309 0 01-.176.038h-.347c-.12.104-.187.148-.187.27v.088c0 .016-.027.027-.027.043l.561.589c.06.06.055.154 0 .209a.143.143 0 01-.209 0l-.578-.578a.425.425 0 01-.082.011c-.154 0-.292-.12-.292-.274v-.358h-.016c-.104.374-.165.77-.165 1.177 0 2.431 1.969 4.4 4.4 4.4zm3.388-3.107c.077 0 .16.06.16.137v.424c0 .077-.083.137-.16.137s-.16-.06-.16-.137V6.93c0-.077.083-.137.16-.137zm-3.113-4.879c0 .187-.154.314-.335.314h-.374v.104c0 .11-.05.198-.16.198s-.16-.088-.16-.198V1.98c-.104-.022-.033-.028-.033-.055 0-.187.127-.325.314-.325h.407c.187 0 .341.127.341.314z\"],\n \"inbox-search\": [\"M7.136 3a6.327 6.327 0 00-.098 2.009H4.65l-2.67 5.996H5c.55 0 1 .45 1 .999v1h8v-1c0-.55.45-1 1-1h1.076l1.14 1.14a2.767 2.767 0 001.974.806c.282 0 .554-.042.81-.12V17c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1v-6.455L3.08 3.62l.01-.02c.15-.35.5-.6.91-.6h3.136zm3.244 1.33c0 1.62 1.31 2.93 2.93 2.93s2.93-1.31 2.93-2.93-1.31-2.93-2.93-2.93-2.93 1.31-2.93 2.93zm6.47 2.43l2.89 2.85c.13.15.22.35.23.56 0 .43-.35.78-.78.78-.23 0-.42-.08-.56-.22l-2.87-2.87c-.17.1-.33.2-.51.29-.03.01-.06.03-.09.04-.18.07-.35.15-.55.21-.19.06-.37.11-.57.14-.05.01-.1.02-.14.02-.2.03-.39.05-.6.05A4.3 4.3 0 019 4.31C9 1.93 10.93.01 13.3 0c2.37 0 4.3 1.93 4.3 4.3 0 .21-.02.4-.05.6-.01.05-.01.09-.02.14-.04.2-.08.38-.14.58-.05.19-.13.36-.21.54-.01.03-.03.06-.04.09-.08.18-.18.34-.29.51z\"],\n \"inbox-update\": [\"M10.083 3a6.04 6.04 0 00.001 2.009H4.65l-2.67 5.996H5c.55 0 1 .45 1 .999v1h8v-1c0-.55.45-1 1-1h3.02l-.53-1.19a5.97 5.97 0 001.824-.811L20 10.545v6.456c0 .55-.45.999-1 .999H1c-.55 0-1-.45-1-1v-6.455L3.08 3.62l.01-.02c.15-.35.5-.6.91-.6h6.083zM16 8a4 4 0 110-8 4 4 0 010 8z\"],\n \"info-sign\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zM9 4h2v2H9V4zm4 12H7v-1h2V8H8V7h3v8h2v1z\"],\n \"inheritance\": [\"M6 10c0 2.21 1.79 4 4 4h6.59l-2.29-2.29A.965.965 0 0114 11a1.003 1.003 0 011.71-.71l4 4c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-4 4a1.003 1.003 0 01-1.42-1.42l2.3-2.29H10c-3.31 0-6-2.69-6-6H1a1 1 0 01-1-1V1a1 1 0 011-1h8a1 1 0 011 1v8a1 1 0 01-1 1H6zM2 2v6h6V2H2z\"],\n \"inherited-group\": [\"M1 9c.55 0 1 .45 1 1v4c0 1.1.9 2 2 2h2.59l-.3-.29a1.003 1.003 0 011.42-1.42l2 2c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-2 2A1.003 1.003 0 016 19c0-.28.11-.53.3-.71l.29-.29H4c-2.21 0-4-1.79-4-4v-4c0-.55.45-1 1-1zm6.996-9c.79 0 1.68.25 2.309.73a3.63 3.63 0 011.4 2.36c.11.6.17 1.52.17 2.15v.09c.22.09.42.32.47.82.03.39-.12.73-.2.87-.07.34-.27.71-.61.78-.04.16-.09.33-.15.48-.01.01-.02.05-.02.05-.27.71-.68 1.33-1.19 1.78 0 .08 0 .16.01.23.05.55-.15.95 1.33 1.6 1.469.66 3.698 1.35 4.178 2.39.45 1.05.27 1.67.27 1.67h-5.227a1.982 1.982 0 00-.319-.417l-2-2A2.003 2.003 0 005 15H4c-.548 0-1-.452-1-1v-1.462c.511-.213 1.023-.413 1.468-.608 1.479-.65 1.329-1.05 1.379-1.59l.01-.21c-.52-.45-.95-1.08-1.22-1.8l-.01-.01-.01-.03c-.07-.15-.12-.32-.16-.49-.34-.06-.54-.43-.62-.78-.08-.14-.24-.48-.2-.87.05-.51.26-.74.49-.83v-.08c0-.64.05-1.55.17-2.15a3.648 3.648 0 011.4-2.36C6.317.25 7.207 0 7.996 0zm5.997 3c.59 0 1.26.19 1.73.55.46.35.8.85.97 1.4.04.13.07.25.08.38.08.45.13 1.14.13 1.61v.07c.16.07.31.24.35.62.02.29-.09.55-.15.65-.05.26-.2.53-.46.59-.03.12-.07.25-.11.36-.01.01-.01.04-.01.04-.2.53-.51 1-.89 1.34 0 .06 0 .12.01.17.04.41-.11.71 1 1.19 1.099.5 2.768 1.01 3.128 1.79.34.79.2 1.25.2 1.25h-3.039V15c-.06-.33-.17-.69-.33-1.06-.45-.97-1.37-1.52-3.238-2.3-.17-.07-.76-.31-.77-.32-.1-.04-.2-.08-.28-.12.05-.14.04-.29.06-.45l.01-.16c-.25-.21-.47-.48-.65-.79.22-.34.41-.71.56-1.12l.028-.078-.002.013-.006.035.06-.15c.36-.26.6-.67.72-1.13.18-.37.29-.82.25-1.3-.05-.5-.21-.92-.47-1.22-.02-.53-.06-1.11-.12-1.59.38-.17.83-.26 1.24-.26z\"],\n \"inner-join\": [\"M8.7 4.7C7.4 6 6.5 7.9 6.5 10s.8 4 2.2 5.3c-.8.5-1.7.7-2.7.7-3.3 0-6-2.7-6-6s2.7-6 6-6c1 0 1.9.2 2.7.7zm-3.34 9.25c-.55-1.2-.86-2.54-.86-3.95s.31-2.75.86-3.95a4.001 4.001 0 000 7.9zM14 4c3.3 0 6 2.7 6 6s-2.7 6-6 6c-1 0-1.9-.2-2.7-.7 1.3-1.3 2.2-3.2 2.2-5.3s-.8-3.9-2.2-5.3C12.1 4.2 13 4 14 4zm.6 2.05c.55 1.2.86 2.54.86 3.95s-.31 2.75-.86 3.95c1.9-.31 3.36-1.96 3.36-3.95S16.5 6.36 14.6 6.05zM10 5.5C8.8 6.7 8 8.2 8 10s.8 3.3 2 4.4c1.2-1.1 2-2.7 2-4.5s-.8-3.3-2-4.4z\"],\n \"insert\": [\"M19 0H1C.4 0 0 .4 0 1v18c0 .5.4 1 1 1h18c.5 0 1-.5 1-1V1c0-.6-.5-1-1-1zm-1 18H2V2h16v16zM5 11h4v4c0 .6.4 1 1 1s1-.4 1-1v-4h4c.6 0 1-.4 1-1s-.4-1-1-1h-4V5c0-.6-.4-1-1-1s-1 .4-1 1v4H5c-.6 0-1 .4-1 1s.4 1 1 1z\"],\n \"intersection\": [\"M13 4c-1.31 0-2.51.43-3.5 1.14A5.977 5.977 0 006 4c-3.31 0-6 2.69-6 6s2.69 6 6 6c1.31 0 2.51-.43 3.5-1.14.99.71 2.19 1.14 3.5 1.14 3.31 0 6-2.69 6-6s-2.69-6-6-6zm-4.93 9.41c-.61.37-1.31.59-2.07.59-2.21 0-4-1.79-4-4s1.79-4 4-4c.76 0 1.46.22 2.07.59C7.4 7.56 7 8.73 7 10s.4 2.44 1.07 3.41zM13 14c-.76 0-1.46-.22-2.07-.59C11.6 12.44 12 11.27 12 10s-.4-2.44-1.07-3.41C11.54 6.22 12.24 6 13 6c2.21 0 4 1.79 4 4s-1.79 4-4 4z\"],\n \"ip-address\": [\"M6 3.66C6 5.69 10 11 10 11s4-5.31 4-7.34C13.99 1.64 12.21 0 10 0S6 1.64 6 3.66zM8 4c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zM14 13.5V13h-4v1h3v2h-2v1h3v-3.5zM3 12h14c.55 0 1 .45 1 1v6c0 .55-.45 1-1 1H3c-.55 0-1-.45-1-1v-6c0-.55.45-1 1-1zm4 1v6h1v-6H7zm3 1v5h1v-5h-1z\"],\n \"issue\": [\"M10 20C4.477 20 0 15.523 0 10S4.477 0 10 0s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 100-16 8 8 0 000 16zm1-2H9v-2h2v2zm0-3H9V4h2v9z\"],\n \"issue-closed\": [\"M15.364 5.9a.997.997 0 01-.707-.293l-2.121-2.122a1 1 0 111.414-1.414l1.414 1.414L18.192.657a1 1 0 011.414 1.414l-3.535 3.536a.997.997 0 01-.707.292zM11.78.157a3.002 3.002 0 00-1.437 1.85 8 8 0 107.1 5.055l.042-.042 1.472-1.472A9.959 9.959 0 0120 10c0 5.523-4.477 10-10 10S0 15.523 0 10 4.477 0 10 0c.608 0 1.202.054 1.78.158zM11 16H9v-2h2v2zm0-3H9V4h2v9z\"],\n \"issue-new\": [\"M13.167.512a2.98 2.98 0 00-.131.524c-.74.115-1.39.5-1.848 1.052a8 8 0 106.724 6.724 2.997 2.997 0 001.052-1.848 2.98 2.98 0 00.524-.13A9.99 9.99 0 0120 10c0 5.523-4.477 10-10 10S0 15.523 0 10 4.477 0 10 0a9.99 9.99 0 013.167.512zM11 16H9v-2h2v2zm0-3H9V4h2v9zm6-10h1.5a1 1 0 010 2H17v1.5a1 1 0 01-2 0V5h-1.5a1 1 0 010-2H15V1.5a1 1 0 012 0V3z\"],\n \"italic\": [\"M11.7 4H14c.6 0 1-.4 1-1s-.4-1-1-1H7c-.6 0-1 .4-1 1s.4 1 1 1h2.2L7.3 15H5c-.6 0-1 .4-1 1s.4 1 1 1h7c.6 0 1-.4 1-1s-.4-1-1-1H9.8l1.9-11z\"],\n \"join-table\": [\"M19 6h-4V2c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h4v4c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zM6 12H2V9h4v3zm0-4H2V5h4v3zm7 9H7v-3h6v3zm0-4H7V9h6v4zm0-5H7V5h6v3zm5 9h-4v-3h4v3zm0-4h-4v-3h4v3z\"],\n \"key\": [\"M14 0c-3.31 0-6 2.69-6 6 0 1.11.32 2.14.85 3.03L.44 17.44a1.498 1.498 0 102.12 2.12l.79-.79.94.94c.18.18.43.29.71.29s.53-.11.71-.29l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-.94-.94 3.2-3.2A5.9 5.9 0 0014 12c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 9c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"],\n \"key-backspace\": [\"M19 3H7c-.28 0-.53.11-.71.29l-6 6C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l6 6c.18.18.43.29.71.29h12c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-2.29 9.29a1.003 1.003 0 01-1.42 1.42L13 11.41l-2.29 2.29c-.18.19-.43.3-.71.3a1.003 1.003 0 01-.71-1.71l2.3-2.29-2.3-2.29a1.003 1.003 0 011.42-1.42L13 8.59l2.29-2.29c.18-.19.43-.3.71-.3a1.003 1.003 0 01.71 1.71L14.41 10l2.3 2.29z\"],\n \"key-command\": [\"M15.5 12H14V8h1.5C17.43 8 19 6.43 19 4.5S17.43 1 15.5 1 12 2.57 12 4.5V6H8V4.5C8 2.57 6.43 1 4.5 1S1 2.57 1 4.5 2.57 8 4.5 8H6v4H4.5C2.57 12 1 13.57 1 15.5S2.57 19 4.5 19 8 17.43 8 15.5V14h4v1.5c0 1.93 1.57 3.5 3.5 3.5s3.5-1.57 3.5-3.5-1.57-3.5-3.5-3.5zm0-9c.83 0 1.5.67 1.5 1.5S16.33 6 15.5 6 14 5.33 14 4.5 14.67 3 15.5 3zm-11 14c-.83 0-1.5-.67-1.5-1.5S3.67 14 4.5 14s1.5.67 1.5 1.5S5.33 17 4.5 17zm0-11C3.67 6 3 5.33 3 4.5S3.67 3 4.5 3 6 3.67 6 4.5 5.33 6 4.5 6zm7.5 6H8V8h4v4zm3.5 5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"],\n \"key-control\": [\"M16.71 7.29l-6-6C10.53 1.11 10.28 1 10 1s-.53.11-.71.29l-6 6a1.003 1.003 0 001.42 1.42L10 3.41l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z\"],\n \"key-delete\": [\"M19.71 9.29l-6-6A.997.997 0 0013 3H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.28 0 .53-.11.71-.29l6-6c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zm-9 3a1.003 1.003 0 01-1.42 1.42L7 11.41 4.71 13.7c-.18.19-.43.3-.71.3a1.003 1.003 0 01-.71-1.71L5.59 10l-2.3-2.29a1.003 1.003 0 011.42-1.42L7 8.59 9.29 6.3c.18-.19.43-.3.71-.3a1.003 1.003 0 01.71 1.71L8.41 10l2.3 2.29z\"],\n \"key-enter\": [\"M18 2c-.55 0-1 .45-1 1v5c0 2.21-1.79 4-4 4H4.41L6.7 9.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L4.41 14H13c3.31 0 6-2.69 6-6V3c0-.55-.45-1-1-1z\"],\n \"key-escape\": [\"M2 8c.55 0 1-.45 1-1V4.41l6.29 6.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L4.41 3H7c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1zm9-6.94V3.1c3.39.49 6 3.38 6 6.9 0 3.87-3.13 7-7 7-3.52 0-6.41-2.61-6.9-6H1.06c.5 4.5 4.31 8 8.94 8a9 9 0 009-9c0-4.63-3.5-8.44-8-8.94z\"],\n \"key-option\": [\"M13 4h6c.55 0 1-.45 1-1s-.45-1-1-1h-6c-.55 0-1 .45-1 1s.45 1 1 1zm6 12h-4.42L6.87 2.5l-.02.01A.977.977 0 006 2H1c-.55 0-1 .45-1 1s.45 1 1 1h4.42l7.71 13.5.01-.01c.18.3.49.51.86.51h5c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"key-shift\": [\"M17.74 10.35l-6.99-8.01-.01.01C10.56 2.14 10.3 2 10 2s-.56.14-.74.35l-.01-.01-7 8 .01.01A.95.95 0 002 11c0 .55.45 1 1 1h3v5c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-5h3c.55 0 1-.45 1-1 0-.25-.1-.48-.26-.65z\"],\n \"key-tab\": [\"M19 13H4.41l2.29-2.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L2 12.59V10c0-.55-.45-1-1-1s-1 .45-1 1v8c0 .55.45 1 1 1s1-.45 1-1v-2.59l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L4.41 15H19c.55 0 1-.45 1-1s-.45-1-1-1zm0-12c-.55 0-1 .45-1 1v2.59L14.71 1.3A.965.965 0 0014 1a1.003 1.003 0 00-.71 1.71L15.59 5H1c-.55 0-1 .45-1 1s.45 1 1 1h14.59L13.3 9.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 7.41V10c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z\"],\n \"known-vehicle\": [\"M19 4a.997.997 0 00-.707.293L14 8.586l-2.293-2.293a1 1 0 00-1.414 1.414l3 3a.997.997 0 001.414 0l5-5A1 1 0 0019 4zm-2.048 7.291c.011.072.048.134.048.209a1.5 1.5 0 01-1.5 1.5c-.225 0-.433-.057-.624-.145-.279.085-.57.145-.876.145a2.99 2.99 0 01-2.121-.879l-3-3 .007-.007A3.027 3.027 0 018.184 8H4V7l1-3h10l.19.568 1.307-1.308c-.336-.356-.758-.658-1.165-.772 0 0-1.74-.488-5.332-.488s-5.332.488-5.332.488c-.67.188-1.424.864-1.674 1.502L2.99 4H3L2 7H1a1 1 0 000 2h.333l-.28.84L1 10v7.5a1.5 1.5 0 103 0V17h12v.5a1.5 1.5 0 003 0V10l-.19-.568-1.858 1.86zM4.5 13a1.5 1.5 0 110-3 1.5 1.5 0 010 3z\"],\n \"lab-test\": [\"M13 2a1 1 0 010 2v4l4 8v1a1 1 0 01-1 1H4a1 1 0 01-1-1v-1l4-8V4a1 1 0 110-2h6zm-2 2H9v4l-2 4h6l-2-4V4z\"],\n \"label\": [\"M3 12h14v-1H3v1zm11-9H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V9l-6-6zm4 12H2V5h11v3H3v1h10v1h5v5zm-4-6V5l4 4h-4z\"],\n \"layer\": [\"M19.5 9.1l-9-5c-.2-.1-.3-.1-.5-.1s-.3 0-.5.1l-9 5c-.3.2-.5.5-.5.9s.2.7.5.9l9 5c.2.1.3.1.5.1s.3 0 .5-.1l9-5c.3-.2.5-.5.5-.9s-.2-.7-.5-.9z\"],\n \"layers\": [\"M.5 6.9l9 5c.2.1.3.1.5.1s.3 0 .5-.1l9-5c.3-.2.5-.5.5-.9s-.2-.7-.5-.9l-9-5c-.2-.1-.3-.1-.5-.1s-.3 0-.5.1l-9 5c-.3.2-.5.5-.5.9s.2.7.5.9z\", \"M19 9c-.2 0-.3 0-.5.1L10 13.9 1.5 9.1C1.3 9 1.2 9 1 9c-.6 0-1 .4-1 1 0 .4.2.7.5.9l9 5c.2.1.3.1.5.1s.3 0 .5-.1l9-5c.3-.2.5-.5.5-.9 0-.6-.4-1-1-1z\", \"M19 13c-.2 0-.3 0-.5.1L10 17.9l-8.5-4.7c-.2-.2-.3-.2-.5-.2-.6 0-1 .4-1 1 0 .4.2.7.5.9l9 5c.2.1.3.1.5.1s.3 0 .5-.1l9-5c.3-.2.5-.5.5-.9 0-.6-.4-1-1-1z\"],\n \"layout\": [\"M18 6c-1.1 0-2 .9-2 2 0 .37.11.71.28 1.01l-2.27 2.27c-.3-.17-.64-.28-1.01-.28-.93 0-1.71.64-1.93 1.5H8.93c-.22-.86-1-1.5-1.93-1.5-.37 0-.71.11-1.01.28L3.72 9.01C3.89 8.71 4 8.37 4 8c0-.34-.09-.66-.24-.94l3.66-3.38c.31.2.68.32 1.08.32 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .34.09.66.24.94L3.08 6.32C2.77 6.12 2.4 6 2 6 .9 6 0 6.9 0 8s.9 2 2 2c.37 0 .71-.11 1.01-.28l2.27 2.27c-.17.3-.28.64-.28 1.01s.11.71.28 1.01l-2.27 2.27C2.71 16.11 2.37 16 2 16c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2c0-.37-.11-.71-.28-1.01l2.27-2.27c.3.17.64.28 1.01.28.93 0 1.71-.64 1.93-1.5h2.14c.22.86 1 1.5 1.93 1.5 1.1 0 2-.9 2-2 0-.37-.11-.71-.28-1.01l2.27-2.27c.3.17.64.28 1.01.28 1.1 0 2-.9 2-2s-.9-2-2-2z\"],\n \"layout-auto\": [\"M18 13c-.53 0-1.01.21-1.37.55L11.9 10.6c.06-.19.1-.39.1-.6s-.04-.41-.1-.6l4.72-2.95c.37.34.85.55 1.38.55 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .21.04.41.1.6l-4.73 2.96c-.24-.23-.54-.4-.87-.48V3.93c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S8 .9 8 2c0 .93.64 1.71 1.5 1.93v4.14c-.33.09-.63.26-.87.48L3.9 5.6c.06-.19.1-.39.1-.6 0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.53 0 1.01-.21 1.37-.55L8.1 9.4c-.06.19-.1.39-.1.6s.04.41.1.6l-4.72 2.95C3.01 13.21 2.53 13 2 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2c0-.21-.04-.41-.1-.6l4.73-2.96c.24.23.54.4.87.48v4.14C8.64 16.29 8 17.07 8 18c0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93v-4.14c.33-.09.63-.26.87-.48l4.73 2.96c-.06.18-.1.38-.1.59 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2z\"],\n \"layout-balloon\": [\"M18 16c-.14 0-.28.02-.42.05l-1.73-3.45c.69-.45 1.14-1.22 1.14-2.1s-.46-1.65-1.14-2.1l1.73-3.45c.14.03.28.05.42.05 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .6.27 1.13.69 1.5l-1.77 3.54c-.14-.02-.28-.04-.42-.04a2.5 2.5 0 00-2.45 2h-4.1A2.5 2.5 0 005.5 8c-.14 0-.28.02-.42.04L3.31 4.5C3.73 4.13 4 3.6 4 3c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.14 0 .28-.02.42-.05L4.14 8.4C3.46 8.85 3 9.62 3 10.5s.46 1.65 1.14 2.1l-1.73 3.45A1.84 1.84 0 002 16c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2c0-.6-.27-1.13-.69-1.5l1.77-3.54c.14.02.28.04.42.04a2.5 2.5 0 002.45-2h4.1a2.5 2.5 0 002.45 2c.14 0 .28-.02.42-.04l1.77 3.54c-.42.37-.69.9-.69 1.5 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2z\"],\n \"layout-circle\": [\"M18.3 8c-.2-.9-.6-1.7-1.1-2.5.2-.3.3-.7.3-1 0-1.1-.9-2-2-2-.4 0-.7.1-1 .3-.8-.5-1.6-.8-2.5-1.1-.1-1-1-1.7-2-1.7S8.2.8 8 1.7c-.9.3-1.7.6-2.5 1.1-.3-.2-.7-.3-1-.3-1.1 0-2 .9-2 2 0 .4.1.7.3 1-.5.8-.8 1.6-1.1 2.5C.8 8.2 0 9 0 10s.8 1.8 1.7 2c.2.9.6 1.7 1.1 2.5-.2.3-.3.7-.3 1 0 1.1.9 2 2 2 .4 0 .7-.1 1-.3.8.5 1.6.8 2.5 1.1.1 1 1 1.7 2 1.7s1.8-.8 2-1.7c.9-.2 1.7-.6 2.5-1.1.3.2.7.3 1 .3 1.1 0 2-.9 2-2 0-.4-.1-.7-.3-1 .5-.8.8-1.6 1.1-2.5 1-.1 1.7-1 1.7-2s-.8-1.8-1.7-2zm-1.8 5.8c-.3-.2-.6-.3-1-.3-1.1 0-2 .9-2 2 0 .4.1.7.3 1-.6.3-1.2.6-1.9.8-.3-.7-1-1.3-1.9-1.3-.8 0-1.6.5-1.9 1.3-.7-.2-1.3-.4-1.9-.8.2-.3.3-.6.3-1 0-1.1-.9-2-2-2-.4 0-.7.1-1 .3-.3-.6-.6-1.2-.8-1.9.8-.3 1.3-1.1 1.3-1.9s-.5-1.6-1.2-1.8c.2-.7.4-1.3.8-1.9.3.2.6.3 1 .3 1.1 0 2-.9 2-2 0-.4-.1-.7-.3-1 .6-.3 1.2-.6 1.9-.8.2.7 1 1.2 1.8 1.2s1.6-.5 1.9-1.3c.7.2 1.3.4 1.9.8-.2.3-.3.6-.3 1 0 1.1.9 2 2 2 .4 0 .7-.1 1-.3.3.6.6 1.2.8 1.9-.8.3-1.3 1.1-1.3 1.9s.5 1.6 1.2 1.8c-.1.7-.4 1.4-.7 2z\"],\n \"layout-grid\": [\"M2 0a2 2 0 100 4 2 2 0 100-4zM10 0a2 2 0 100 4 2 2 0 100-4zM18 0a2 2 0 100 4 2 2 0 100-4zM18 8a2 2 0 100 4 2 2 0 100-4zM18 16a2 2 0 100 4 2 2 0 100-4zM10 16a2 2 0 100 4 2 2 0 100-4zM2 16a2 2 0 100 4 2 2 0 100-4zM2 8a2 2 0 100 4 2 2 0 100-4zM10 8a2 2 0 100 4 2 2 0 100-4z\"],\n \"layout-group-by\": [\"M2 2a2 2 0 100 4 2 2 0 100-4zM18 0a2 2 0 100 4 2 2 0 100-4zM18 8a2 2 0 100 4 2 2 0 100-4zM18 16a2 2 0 100 4 2 2 0 100-4zM2 14a2 2 0 100 4 2 2 0 100-4zM2 8a2 2 0 100 4 2 2 0 100-4zM13 12a2 2 0 100 4 2 2 0 100-4zM13 4a2 2 0 100 4 2 2 0 100-4z\"],\n \"layout-hierarchy\": [\"M18.5 16.07v-4.14c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2-.93 0-1.71.64-1.93 1.5h-4.14c-.18-.7-.73-1.25-1.43-1.43V3.93c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S8 .9 8 2c0 .93.64 1.71 1.5 1.93v4.14c-.7.18-1.25.73-1.43 1.43H3.93C3.71 8.64 2.93 8 2 8c-1.1 0-2 .9-2 2 0 .93.64 1.71 1.5 1.93v4.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93v-4.14c.7-.18 1.25-.73 1.43-1.43h4.14c.18.7.73 1.25 1.43 1.43v4.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93v-4.14c.7-.18 1.25-.73 1.43-1.43h4.14c.18.7.73 1.25 1.43 1.43v4.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93z\"],\n \"layout-linear\": [\"M16.5 7a2.5 2.5 0 00-2.45 2h-2.1a2.5 2.5 0 00-4.9 0h-2.1a2.5 2.5 0 100 1h2.1a2.5 2.5 0 004.9 0h2.1a2.5 2.5 0 102.45-3z\"],\n \"layout-skew-grid\": [\"M2 0a2 2 0 100 4 2 2 0 100-4zM18 0a2 2 0 100 4 2 2 0 100-4zM18 8a2 2 0 100 4 2 2 0 100-4zM18 16a2 2 0 100 4 2 2 0 100-4zM2 16a2 2 0 100 4 2 2 0 100-4zM2 8a2 2 0 100 4 2 2 0 100-4zM10 12a2 2 0 100 4 2 2 0 100-4zM10 4a2 2 0 100 4 2 2 0 100-4z\"],\n \"layout-sorted-clusters\": [\"M2 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm16 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-8 4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"learning\": [\"M10.551 1.127a1.256 1.256 0 00-1.102 0L.456 5.89c-.608.309-.608.913 0 1.222l8.993 4.762c.334.17.767.17 1.102 0l8.992-4.762c.61-.309.61-.913 0-1.222l-8.992-4.762z\", \"M18 6.5l.016 4.514c.002.548.447.99.994.99a.99.99 0 00.99-.99V6.5h-2zM3.366 10.033l6.401 3.358a.5.5 0 00.465 0l6.406-3.358a.25.25 0 01.366.221v5.109a.25.25 0 01-.139.224l-6.64 3.302a.5.5 0 01-.446 0l-6.64-3.302A.25.25 0 013 15.363v-5.108a.25.25 0 01.366-.222z\"],\n \"left-join\": [\"M8.7 4.7C7.4 6 6.5 7.9 6.5 10s.8 4 2.2 5.3c-.8.5-1.7.7-2.7.7-3.3 0-6-2.7-6-6s2.7-6 6-6c1 0 1.9.2 2.7.7zM14 4c3.3 0 6 2.7 6 6s-2.7 6-6 6c-1 0-1.9-.2-2.7-.7 1.3-1.3 2.2-3.2 2.2-5.3s-.8-3.9-2.2-5.3C12.1 4.2 13 4 14 4zm.6 2.05c.55 1.2.86 2.54.86 3.95s-.31 2.75-.86 3.95c1.9-.31 3.36-1.96 3.36-3.95S16.5 6.36 14.6 6.05zM10 5.5C8.8 6.7 8 8.2 8 10s.8 3.3 2 4.4c1.2-1.1 2-2.7 2-4.5s-.8-3.3-2-4.4z\"],\n \"less-than\": [\"M7.162 10l9.154 3.052a1 1 0 01-.632 1.897l-12-4c-.912-.304-.912-1.594 0-1.897l12-4a1 1 0 01.632 1.897L7.162 10z\"],\n \"less-than-or-equal-to\": [\"M16.316 11.051L7.162 8l9.154-3.051a1 1 0 10-.632-1.898l-12 4c-.912.304-.912 1.594 0 1.898l12 4a1 1 0 10.632-1.898zM16 15H4a1 1 0 100 2h12a1 1 0 100-2z\"],\n \"lifesaver\": [\"M8.143 14.644L7.028 17.43c.919.368 1.922.57 2.972.57s2.053-.202 2.972-.57l-1.115-2.786A4.986 4.986 0 0110 15a4.986 4.986 0 01-1.857-.356zm-2.787-2.787A4.986 4.986 0 015 10c0-.656.126-1.283.356-1.857L2.57 7.028A7.978 7.978 0 002 10c0 1.05.202 2.053.57 2.972l2.786-1.115zm2.787-6.5A4.986 4.986 0 0110 5c.656 0 1.283.126 1.857.356l1.115-2.786A7.978 7.978 0 0010 2c-1.05 0-2.053.202-2.972.57l1.115 2.786zm6.5 2.786c.23.574.357 1.2.357 1.857 0 .656-.126 1.283-.356 1.857l2.786 1.115c.368-.919.57-1.922.57-2.972s-.202-2.053-.57-2.972l-2.786 1.115zM10 13a3 3 0 100-6 3 3 0 000 6zm0 7C4.477 20 0 15.523 0 10S4.477 0 10 0s10 4.477 10 10-4.477 10-10 10z\"],\n \"lightbulb\": [\"M6.33 13.39c0 .34.27.61.6.61h6.13c.33 0 .6-.27.6-.61C14.03 9.78 16 9.4 16 6.09 16 2.72 13.31 0 10 0S4 2.72 4 6.09c0 3.31 1.97 3.69 2.33 7.3zM13 15H7c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1zm-1 3H8c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"link\": [\"M10.85 11.98l-4.44 4.44-1 1c-.36.36-.86.58-1.41.58-1.1 0-2-.9-2-2 0-.55.22-1.05.59-1.41l5.44-5.44C7.69 9.06 7.36 9 7 9c-1.11 0-2.09.46-2.82 1.18l-.01-.01-3 3 .01.01C.46 13.91 0 14.89 0 16c0 2.21 1.79 4 4 4 1.11 0 2.09-.46 2.82-1.18l.01.01 3-3-.01-.01C10.54 15.09 11 14.11 11 13c0-.36-.06-.69-.15-1.02zM20 4c0-2.21-1.79-4-4-4-1.11 0-2.09.46-2.82 1.18l-.01-.01-3 3 .01.01C9.46 4.91 9 5.89 9 7c0 .36.06.69.15 1.02l4.44-4.44 1-1c.36-.36.86-.58 1.41-.58 1.1 0 2 .9 2 2 0 .55-.22 1.05-.59 1.41l-5.44 5.44c.34.09.67.15 1.03.15 1.11 0 2.09-.46 2.82-1.18l.01.01 3-3-.01-.01C19.54 6.09 20 5.11 20 4zM5 14a1.003 1.003 0 001.71.71l8-8a1.003 1.003 0 00-1.42-1.42l-2 2-2 2-2 2-2 2c-.18.18-.29.43-.29.71z\"],\n \"list\": [\"M1.03 1C.46 1 0 1.46 0 2.03v.95C0 3.54.46 4 1.03 4h17.95C19.54 4 20 3.54 20 2.97v-.94C20 1.46 19.54 1 18.97 1H1.03zM0 17.97C0 18.54.46 19 1.03 19h17.95c.56 0 1.03-.46 1.03-1.03v-.95c0-.56-.46-1.03-1.03-1.03H1.03C.46 16 0 16.46 0 17.03v.94zM0 12.97C0 13.54.46 14 1.03 14h17.95c.56 0 1.03-.46 1.03-1.03v-.95c0-.56-.46-1.03-1.03-1.03H1.03C.46 11 0 11.46 0 12.03v.94zM0 7.97C0 8.54.46 9 1.03 9h17.95C19.54 9 20 8.54 20 7.97v-.94C20 6.46 19.54 6 18.97 6H1.03C.46 6 0 6.46 0 7.03v.94z\"],\n \"list-columns\": [\"M0 2.973v-.936C0 1.468.46 1.01 1.029 1H7.97C8.541 1 9 1.468 9 2.027v.946C9 3.542 8.53 4 7.971 4H1.03C.459 4 0 3.542 0 2.973zm0 5v-.936C0 6.468.46 6.01 1.029 6H7.97C8.541 6 9 6.468 9 7.027v.946C9 8.542 8.53 9 7.971 9H1.03C.459 9 0 8.542 0 7.973zm0 5v-.936C0 11.468.46 11.01 1.029 11H7.97C8.541 11 9 11.468 9 12.027v.946C9 13.542 8.53 14 7.971 14H1.03C.459 14 0 13.542 0 12.973zm0 5v-.936C0 16.468.46 16.01 1.029 16H7.97C8.541 16 9 16.468 9 17.027v.946C9 18.542 8.53 19 7.971 19H1.03C.459 19 0 18.542 0 17.973zm11-15v-.936c0-.569.46-1.027 1.029-1.037h6.942C19.541 1 20 1.468 20 2.027v.946C20 3.542 19.53 4 18.971 4H12.03C11.459 4 11 3.542 11 2.973zm0 5v-.936c0-.569.46-1.027 1.029-1.037h6.942C19.541 6 20 6.468 20 7.027v.946C20 8.542 19.53 9 18.971 9H12.03C11.459 9 11 8.542 11 7.973zm0 5v-.936c0-.569.46-1.027 1.029-1.037h6.942c.57 0 1.029.468 1.029 1.027v.946c0 .569-.47 1.027-1.029 1.027H12.03c-.57 0-1.029-.458-1.029-1.027zm0 5v-.936c0-.569.46-1.027 1.029-1.037h6.942c.57 0 1.029.468 1.029 1.027v.946c0 .569-.47 1.027-1.029 1.027H12.03c-.57 0-1.029-.458-1.029-1.027z\"],\n \"list-detail-view\": [\"M8 6H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zm0 5H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm0 5H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zM8 1H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm11 0h-7c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1z\"],\n \"locate\": [\"M10 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm9 1h-1.07c-.45-3.61-3.32-6.45-6.93-6.91V1c0-.55-.45-1-1-1S9 .45 9 1v1.09C5.39 2.55 2.52 5.39 2.07 9H1c-.55 0-1 .45-1 1s.45 1 1 1h1.07c.45 3.61 3.32 6.45 6.93 6.91V19c0 .55.45 1 1 1s1-.45 1-1v-1.09c3.61-.46 6.48-3.29 6.93-6.91H19c.55 0 1-.45 1-1s-.45-1-1-1zm-4 2h.9a5.98 5.98 0 01-4.9 4.91V15c0-.55-.45-1-1-1s-1 .45-1 1v.91A5.98 5.98 0 014.1 11H5c.55 0 1-.45 1-1s-.45-1-1-1h-.9A5.98 5.98 0 019 4.09V5c0 .55.45 1 1 1s1-.45 1-1v-.91A5.98 5.98 0 0115.9 9H15c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"lock\": [\"M15.93 9H14V4.99c0-2.21-1.79-4-4-4s-4 1.79-4 4V9H3.93c-.55 0-.93.44-.93.99v8c0 .55.38 1.01.93 1.01h12c.55 0 1.07-.46 1.07-1.01v-8c0-.55-.52-.99-1.07-.99zM8 9V4.99c0-1.1.9-2 2-2s2 .9 2 2V9H8z\"],\n \"log-in\": [\"M19 0h-8c-.55 0-1 .45-1 1s.45 1 1 1h7v16h-7c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-4 10c0-.28-.11-.53-.29-.71l-5-5a1.003 1.003 0 00-1.42 1.42L11.59 9H1c-.55 0-1 .45-1 1s.45 1 1 1h10.59L8.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l5-5c.18-.18.29-.43.29-.71z\"],\n \"log-out\": [\"M19.71 9.29l-5-5a1.003 1.003 0 00-1.42 1.42L16.59 9H6c-.55 0-1 .45-1 1s.45 1 1 1h10.59l-3.29 3.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l5-5c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM9 18H2V2h7c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"manual\": [\"M20 1.1a.976.976 0 00-.83-.88C15.15-.43 12.07.34 10 2.5 7.93.34 4.85-.43.84.22.37.3.03.67 0 1.1v15.01c0 .07 0 .14.01.21.09.52.61.88 1.15.79 3.85-.62 6.4.16 8 2.46.02.02.03.04.05.07.02.02.04.04.06.07l.01.01a1.07 1.07 0 00.28.19c.01 0 .01.01.02.01.03.01.07.03.1.04.01 0 .02.01.04.01.03.01.07.02.1.02.01 0 .02 0 .04.01H10c.04 0 .09 0 .13-.01.01 0 .03 0 .04-.01.03-.01.06-.01.1-.02.01 0 .03-.01.04-.01.03-.01.07-.02.1-.04.01 0 .02-.01.03-.01.07-.03.13-.07.19-.11.01 0 .01-.01.02-.01.02-.02.04-.03.06-.05.01-.01.02-.02.03-.02l.05-.05c.01-.01.02-.02.02-.03.01-.02.02-.03.04-.05 1.61-2.3 4.15-3.09 8-2.46.54.09 1.06-.26 1.15-.79-.01-.05 0-.09 0-.13V1.1zM9 16.63c-1.78-1.31-4.12-1.83-7-1.55V2c3.26-.37 5.51.39 7 2.35v12.28zm9-1.56c-2.88-.28-5.22.24-7 1.55V4.34c1.49-1.96 3.74-2.71 7-2.35v13.08z\"],\n \"manually-entered-data\": [\"M1 12h4.34l2-2H1c-.55 0-1 .45-1 1s.45 1 1 1zm16.77-3.94l1.65-1.65c.36-.36.58-.86.58-1.41 0-1.1-.9-2-2-2-.55 0-1.05.22-1.41.59l-1.65 1.65 2.83 2.82zM1 4h12.34l2-2H1c-.55 0-1 .45-1 1s.45 1 1 1zM0 15c0 .55.45 1 1 1h.34l2-2H1c-.55 0-1 .45-1 1zm1-7h8.34l2-2H1c-.55 0-1 .45-1 1s.45 1 1 1zm18 2h-.34l-2 2H19c.55 0 1-.45 1-1s-.45-1-1-1zm0 4h-4.34l-2 2H19c.55 0 1-.45 1-1s-.45-1-1-1zM4 19l4.41-1.59-2.81-2.79L4 19zM14.23 5.94l-7.65 7.65 2.83 2.83 7.65-7.65-2.83-2.83z\"],\n \"map\": [\"M19.54 4.18l.01-.02-6-4-.01.02C13.39.08 13.21 0 13 0s-.39.08-.54.18l-.01-.02L7 3.8 1.55.17l-.01.01A.969.969 0 001 0C.45 0 0 .45 0 1v14c0 .35.19.64.46.82l-.01.02 6 4 .01-.02c.15.1.33.18.54.18s.39-.08.54-.18l.01.02L13 16.2l5.45 3.63.01-.02c.15.11.33.19.54.19.55 0 1-.45 1-1V5c0-.35-.19-.64-.46-.82zM6 17.13l-4-2.67V2.87l4 2.67v11.59zm6-2.67l-4 2.67V5.54l4-2.67v11.59zm6 2.67l-4-2.67V2.87l4 2.67v11.59z\"],\n \"map-create\": [\"M18 9.22v7.91l-4-2.67V9.22c-.61-.55-1-1.33-1-2.22-.35 0-.69-.07-1-.18v7.65l-4 2.67V5.54l2.02-1.35c0-.06-.02-.13-.02-.19 0-1.66 1.34-3 3-3 0-.34.07-.66.17-.97C13.12.02 13.06 0 13 0c-.21 0-.39.08-.54.18l-.01-.02L7 3.8 1.55.17l-.01.01A.969.969 0 001 0C.45 0 0 .45 0 1v14c0 .35.19.64.46.82l-.01.02 6 4 .01-.02c.15.1.33.18.54.18s.39-.08.54-.18l.01.02L13 16.2l5.45 3.63.01-.02c.15.11.33.19.54.19.55 0 1-.45 1-1V6.82c-.31.11-.65.18-1 .18 0 .89-.39 1.67-1 2.22zM6 17.13l-4-2.67V2.87l4 2.67v11.59zM12 4c0 .55.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V5h2c.55 0 1-.45 1-1s-.45-1-1-1h-2V1c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1z\"],\n \"map-marker\": [\"M9.98 0c-3.87 0-7 2.98-7 6.67 0 3.68 7 13.33 7 13.33s7-9.65 7-13.33c0-3.68-3.14-6.67-7-6.67zm0 10c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"],\n \"maximize\": [\"M19 0h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L11.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 3.41V6c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zM8 11c-.28 0-.53.11-.71.29L2 16.59V14c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1H3.41l5.29-5.29c.19-.18.3-.43.3-.71 0-.55-.45-1-1-1z\"],\n \"media\": [\"M15 9c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4-7H1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm-1 13l-6-5-2 2-4-5-4 8V4h16v11z\"],\n \"menu\": [\"M1 6h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm18 3H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0 5H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"menu-closed\": [\"M8 6h11c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zM4 6c-.28 0-.53.11-.71.29l-3 3C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l3 3A1.003 1.003 0 005 13V7c0-.55-.45-1-1-1zm15 8H8c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm0-5H8c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"menu-open\": [\"M12 9H1c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm0 5H1c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm0-10H1c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm7.71 5.29l-3-3A1.003 1.003 0 0015 7v6a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"merge-columns\": [\"M6.71 6.29a1.003 1.003 0 00-1.42 1.42L6.59 9H2V2h5v2.18c.42.15.8.39 1.11.7l.01-.01.88.89V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-4.76l-.88.88-.01-.01c-.31.31-.69.56-1.11.71V18H2v-7h4.59L5.3 12.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3zM19 0h-7c-.55 0-1 .45-1 1v4.76l.88-.88.01.01c.31-.31.69-.55 1.11-.7V2h5v7h-4.59l1.29-1.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L13.41 11H18v7h-5v-2.18c-.42-.15-.8-.39-1.11-.7l-.01.01-.88-.89V19c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"merge-links\": [\"M10 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm8-5c-.93 0-1.71.64-1.93 1.5H14V4c0-2.21-1.79-4-4-4S6 1.79 6 4v5.5H3.93C3.71 8.64 2.93 8 2 8c-1.1 0-2 .9-2 2s.9 2 2 2c.93 0 1.71-.64 1.93-1.5H6V16c0 2.21 1.79 4 4 4s4-1.79 4-4v-5.5h2.07c.22.86 1 1.5 1.93 1.5 1.1 0 2-.9 2-2s-.9-2-2-2zm-5 8c0 1.66-1.34 3-3 3s-3-1.34-3-3V4c0-1.66 1.34-3 3-3s3 1.34 3 3v12zM10 3c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"minimize\": [\"M8 11H3c-.55 0-1 .45-1 1s.45 1 1 1h2.59L.3 18.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L7 14.41V17c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1zM20 1a1.003 1.003 0 00-1.71-.71L13 5.59V3c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1h-2.59l5.29-5.29c.19-.18.3-.43.3-.71z\"],\n \"minus\": [\"M16 9H4c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"mobile-phone\": [\"M15 0H5c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-5 19c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm4-3H6V3h8v13z\"],\n \"mobile-video\": [\"M19 5c-.28 0-.53.11-.71.29L15 8.59V5c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h13c.55 0 1-.45 1-1v-3.59l3.29 3.29c.18.19.43.3.71.3.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z\"],\n \"modal\": [\"M19 1a1 1 0 011 1v16a1 1 0 01-1 1H1a1 1 0 01-1-1V2a1 1 0 011-1h18zm-1 4H2v12h16V5zm-3-3h-2v2h2V2zm3 0h-2v2h2V2z\"],\n \"modal-filled\": [\"M20 5v13a1 1 0 01-1 1H1a1 1 0 01-1-1V5h20zm-3-4h2a1 1 0 011 1v1h-3V1zm-2 2H0V2a1 1 0 011-1h14v2z\"],\n \"moon\": [\"M19 14.15A9.94 9.94 0 019.94 20C4.45 20 0 15.55 0 10.06 0 6.03 2.4 2.56 5.85 1a9.811 9.811 0 00-.88 4.09c0 5.49 4.45 9.94 9.94 9.94 1.46 0 2.84-.31 4.09-.88z\"],\n \"more\": [\"M3.5 8a2.5 2.5 0 100 5 2.5 2.5 0 100-5zM17.5 8a2.5 2.5 0 100 5 2.5 2.5 0 100-5zM10.5 8a2.5 2.5 0 100 5 2.5 2.5 0 100-5z\"],\n \"mountain\": [\"M20 16H4l7-11h1l2 2h1l5 9zm-4-5l-1.5-3h-1l-1-1-1-1L8 11.5l3-1.5 1 1 1-1 3 1zM8.055 8L2.79 16H0l7-8h1.055z\"],\n \"move\": [\"M19.71 9.29l-3-3a1.003 1.003 0 00-1.42 1.42L16.59 9H11V3.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3C10.53.11 10.28 0 10 0s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L9 3.41V9H3.41L4.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L3.41 11H9v5.59L7.71 15.3A.965.965 0 007 15a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3a1.003 1.003 0 00-1.42-1.42L11 16.59V11h5.59l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z\"],\n \"mugshot\": [\"M19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18h-.07c-.05-.2-.12-.42-.22-.67-.46-1.05-2.68-1.75-4.16-2.4-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.08-.14.23-.48.2-.87-.05-.5-.25-.73-.47-.82v-.09c0-.63-.06-1.55-.17-2.15-.02-.17-.06-.33-.11-.5a3.67 3.67 0 00-1.29-1.86C11.7 3.25 10.81 3 10.02 3s-1.68.25-2.31.73c-.61.47-1.07 1.13-1.29 1.86-.05.16-.09.33-.11.5-.12.6-.17 1.51-.17 2.14v.08c-.24.09-.44.32-.49.83-.04.39.12.73.2.87.08.35.28.72.63.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.38 1.59-1.48.65-3.7 1.35-4.16 2.4-.12.27-.18.49-.23.69H2V2h16v16z\"],\n \"multi-select\": [\"M19 3H7c-.55 0-1 .45-1 1v1h12v6h1c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-6 6H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zm-1 6H2v-4h10v4zm4-9H4c-.55 0-1 .45-1 1v1h12v6h1c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1z\"],\n \"music\": [\"M19 0c-.08 0-.16.03-.24.05V.03l-12 3v.02C6.33 3.16 6 3.53 6 4v11.35c-.59-.22-1.27-.35-2-.35-2.21 0-4 1.12-4 2.5S1.79 20 4 20c1.94 0 3.55-.86 3.92-2H8V7.78l10-2.5v7.07c-.59-.22-1.27-.35-2-.35-2.21 0-4 1.12-4 2.5s1.79 2.5 4 2.5c1.94 0 3.55-.86 3.92-2H20V1c0-.55-.45-1-1-1z\"],\n \"new-drawing\": [\"M18.7 13.7c.5 0 1 .4 1 1 0 .257-.073.44-.22.614l-.08.086-4 4c-.2.2-.4.3-.7.3-.6 0-1-.5-1-1 0-.257.073-.44.22-.614L14 18l4-4c.2-.2.4-.3.7-.3zM1.8 0l8.378 2.982A3.003 3.003 0 0013 7a3.003 3.003 0 003.877 2.87l.723 2.53.049.06a.41.41 0 01.051.24c0 .167-.07.403-.208.593l-.092.107-4 4c-.2.2-.4.3-.7.3-.075 0-.15-.056-.225-.084L12.4 17.6l-7-2-.112-.042c-.223-.094-.431-.244-.542-.45L4.7 15 0 1.8l.5-.6L7 7.7c-.2.3-.3.6-.3 1 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2a1.68 1.68 0 00-.871.22L7.7 7 1.2.5l.6-.5zM16 0c.55 0 1 .45 1 1v2h2c.55 0 1 .45 1 1s-.45 1-1 1h-2v2c0 .432-.278.803-.664.941l-.01.004A.989.989 0 0116 8c-.55 0-1-.45-1-1V5h-2c-.55 0-1-.45-1-1l.007-.116C12.065 3.388 12.489 3 13 3h2V1c0-.55.45-1 1-1z\"],\n \"new-grid-item\": [\"M8 0H1C.45 0 0 .45 0 1v7c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm0 11H1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-7c0-.55-.45-1-1-1zm6 7h-1v-1c0-.55-.45-1-1-1s-1 .45-1 1v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1s-.45-1-1-1zm5-7h-2c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1zm0-11h-7c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-5 11h-2c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1s1-.45 1-1v-1h1c.55 0 1-.45 1-1s-.45-1-1-1zm5 5c-.55 0-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h2c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1z\"],\n \"new-layer\": [\"M11.513 2.663A2 2 0 0013 6h1v1a2 2 0 104 0v-.733l1.5.833c.3.2.5.5.5.9s-.2.7-.5.9l-9 5c-.2.1-.3.1-.5.1s-.3 0-.5-.1l-9-5C.2 8.7 0 8.4 0 8s.2-.7.5-.9l9-5c.2-.1.3-.1.5-.1s.3 0 .5.1l1.013.563zM17 3h2a1 1 0 010 2h-2v2a1 1 0 01-2 0V5h-2a1 1 0 010-2h2V1a1 1 0 012 0v2z\"],\n \"new-layers\": [\"M17 3h2a1 1 0 010 2h-2v2a1 1 0 01-2 0V5h-2a1 1 0 010-2h2V1a1 1 0 012 0v2zm-1.252 5.984L10.5 11.9c-.2.1-.3.1-.5.1s-.3 0-.5-.1l-9-5C.2 6.7 0 6.4 0 6s.2-.7.5-.9l9-5c.2-.1.3-.1.5-.1s.3 0 .5.1L13.92 2H13a2 2 0 100 4h1v1a2 2 0 001.748 1.984zm2.07-1.15C17.935 7.58 18 7.298 18 7V6h1c.353 0 .684-.091.972-.251.018.078.028.162.028.251 0 .4-.2.7-.5.9l-1.682.934zM19 9c.6 0 1 .4 1 1 0 .4-.2.7-.5.9l-9 5c-.2.1-.3.1-.5.1s-.3 0-.5-.1l-9-5c-.3-.2-.5-.5-.5-.9 0-.6.4-1 1-1 .2 0 .3 0 .5.1l8.5 4.8 8.5-4.8c.2-.1.3-.1.5-.1zm0 4c.6 0 1 .4 1 1 0 .4-.2.7-.5.9l-9 5c-.2.1-.3.1-.5.1s-.3 0-.5-.1l-9-5c-.3-.2-.5-.5-.5-.9 0-.6.4-1 1-1 .2 0 .3 0 .5.2l8.5 4.7 8.5-4.8c.2-.1.3-.1.5-.1z\"],\n \"new-link\": [\"M14.5 12a2.5 2.5 0 00-2.45 2h-7.1a2.5 2.5 0 100 1h7.1a2.5 2.5 0 102.45-3zM19 5h-2V3c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V7h2c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"new-object\": [\"M12 4c0 .6.4 1 1 1h2v2c0 .6.4 1 1 1 .5 0 1-.4 1-1V5h2c.5 0 1-.4 1-1s-.5-1-1-1h-2V1c0-.6-.5-1-1-1-.6 0-1 .4-1 1v2h-2c-.6 0-1 .5-1 1zm7 3c0 1.7-1.3 3-3 3s-3-1.3-3-3c-1.7 0-3-1.3-3-3s1.3-3 3-3c0-.2 0-.4.1-.5-1-.3-2-.5-3.1-.5C4.5 0 0 4.5 0 10s4.5 10 10 10 10-4.5 10-10c0-1.1-.2-2.1-.5-3H19z\"],\n \"new-person\": [\"M11.41 15.92c-1.46-.65-1.26-1.05-1.31-1.59-.01-.07-.01-.15-.01-.23.5-.45.91-1.07 1.18-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.33-.07.53-.44.6-.78.08-.14.23-.48.2-.87-.05-.5-.24-.73-.47-.82v-.09c0-.63-.06-1.55-.17-2.15-.02-.17-.06-.33-.11-.5-.22-.73-.67-1.4-1.27-1.86C9.58 4.25 8.7 4 7.92 4c-.78 0-1.66.25-2.28.73-.61.47-1.06 1.13-1.27 1.86-.05.16-.08.33-.11.5-.12.6-.18 1.51-.18 2.14v.08c-.23.09-.43.32-.48.83-.04.39.12.73.2.87.08.35.28.72.62.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.69 1.35 1.21 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.36 1.59-1.46.65-3.66 1.35-4.11 2.4C-.14 19.38.04 20 .04 20h15.75s.18-.62-.27-1.67c-.45-1.06-2.65-1.75-4.11-2.41zM18.87 3h-2V1c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V5h2c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"new-prescription\": [\"M11.95 10.23c.16-.18.22-.22.46-.22h1.48c.25 0 .47.08.59.33.1.2.09.41-.05.66l-2.71 3.58L14.88 19c.13.21.16.46.03.69-.12.21-.34.31-.57.31H12.7c-.31 0-.56-.17-.7-.44l-1.9-2.67-1.93 2.68c-.15.27-.42.43-.73.43H5.98c-.25 0-.47-.08-.59-.33-.1-.2-.09-.41.05-.66l3.09-4.35L4.26 9H3v4.32c0 .41-.3.69-.7.69H.7c-.41 0-.7-.28-.7-.69V.69C0 .28.3 0 .7 0h4.42c.71 0 1.36.1 1.94.3.59.2 1.11.49 1.54.87.44.38.78.84 1.02 1.39.25.54.37 1.13.37 1.77 0 1.01-.28 1.88-.84 2.6-.43.54-1.35 1.29-2 1.59l3.09 3.94 1.71-2.23zM4.71 6.04c.71 0 1.45-.16 1.81-.46.33-.28.5-.69.5-1.25s-.17-.97-.5-1.25c-.35-.3-1.1-.46-1.81-.46h-1.7v3.42h1.7zM19 3c.55 0 1 .45 1 1s-.45 1-1 1h-2v2c0 .55-.45 1-1 1s-1-.45-1-1V5h-2c-.55 0-1-.45-1-1s.45-1 1-1h2V1c0-.55.45-1 1-1s1 .45 1 1v2h2z\"],\n \"new-text-box\": [\"M19 3h-2V1c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V5h2c.55 0 1-.45 1-1s-.45-1-1-1zM5 7.5v1c0 .28.22.5.5.5s.5-.22.5-.5V8h2v7h-.5c-.28 0-.5.22-.5.5s.22.5.5.5h2c.28 0 .5-.22.5-.5s-.22-.5-.5-.5H9V8h2v.5c0 .28.22.5.5.5s.5-.22.5-.5v-1c0-.28-.22-.5-.5-.5h-6c-.28 0-.5.22-.5.5zM16 9c-.55 0-1 .45-1 1v8H2V5h8c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1v15c0 .55.45 1 1 1h15c.55 0 1-.45 1-1v-9c0-.55-.45-1-1-1z\"],\n \"ninja\": [\"M20 6s-2.98 2.43-6.12 2.19C13.52 5.31 12.05 0 6 0c0 0 2.41 2.99 2.16 6.12C5.27 6.49 0 7.97 0 14c0 0 2.98-2.43 6.11-2.19C6.47 14.69 7.94 20 14 20c0 0-2.42-2.99-2.16-6.13C14.73 13.51 20 12.02 20 6zm-10 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"],\n \"not-equal-to\": [\"M9.487 7l.532-3.196a1 1 0 011.962.392L11.513 7H16a1 1 0 010 2h-4.82l-.333 2H16a1 1 0 010 2h-5.487l-.532 3.196a1 1 0 01-1.962-.392L8.487 13H4a1 1 0 010-2h4.82l.333-2H4a1 1 0 110-2h5.487z\"],\n \"notifications\": [\"M10 20c1.1 0 2-.9 2-2H8c0 1.1.9 2 2 2zm7-5c-.55 0-1-.45-1-1V8c0-2.61-1.67-4.81-4-5.63V2c0-1.1-.9-2-2-2S8 .9 8 2v.37C5.67 3.19 4 5.39 4 8v6c0 .55-.45 1-1 1s-1 .45-1 1 .45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"notifications-updated\": [\"M10 20c1.1 0 2-.9 2-2H8c0 1.1.9 2 2 2zm2-17.834A2.994 2.994 0 008 4.99c0 .808.319 1.557.876 2.114l2.97 2.99a2.99 2.99 0 004.154.072V14c0 .55.45 1 1 1s1 .45 1 1-.45 1-1 1H3c-.55 0-1-.45-1-1s.45-1 1-1 1-.45 1-1V8c0-2.61 1.67-4.81 4-5.63V2c0-1.1.9-2 2-2s2 .9 2 2v.166zm1.26 6.514l-2.97-2.99a.973.973 0 01-.29-.7c0-.55.44-1 .99-1 .27 0 .52.11.7.29l2.28 2.28 4.27-4.27a.99.99 0 01.7-.29c.55 0 1 .45 1 1 0 .28-.11.53-.3.7l-4.98 4.98a.99.99 0 01-1.4 0z\"],\n \"numbered-list\": [\"M1.74 9.01h1.27V1h-.95c-.04.24-.12.45-.26.62-.13.17-.29.3-.47.41-.19.11-.4.18-.63.23-.23.04-.46.07-.71.07v1.03h1.75v5.65zm.43 7.93c.18-.14.37-.28.58-.43.21-.14.42-.29.63-.45.21-.16.41-.33.61-.5.2-.18.37-.38.52-.59.15-.21.28-.45.37-.7.09-.25.14-.54.14-.85 0-.25-.04-.52-.12-.8-.08-.28-.21-.54-.39-.78-.19-.24-.43-.44-.73-.59-.3-.17-.68-.25-1.12-.25-.41 0-.77.08-1.08.23-.32.16-.58.37-.8.64-.22.27-.38.59-.49.96-.11.37-.16.77-.16 1.21h1.19c.01-.28.03-.53.08-.77s.12-.45.21-.62c.09-.18.22-.31.38-.42.16-.1.35-.15.59-.15.26 0 .47.05.63.14.16.09.29.21.38.35.09.14.15.29.18.45.03.16.05.31.05.45-.01.31-.08.58-.22.81-.14.24-.32.45-.53.66-.22.2-.45.39-.71.57-.26.18-.51.36-.74.54-.5.36-.89.78-1.17 1.27-.3.47-.45 1.04-.46 1.69H5v-1.14H1.43c.05-.17.14-.33.27-.49.13-.15.29-.3.47-.44zM18 4.02H8c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-1c0-.56-.45-1-1-1zm0 9H8c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-1c0-.56-.45-1-1-1z\"],\n \"numerical\": [\"M2.39 5.75c-.17.21-.38.39-.63.52s-.52.23-.83.29c-.3.05-.61.08-.93.08v1.24h2.49V15h1.49V4.98H2.73c-.05.31-.17.57-.34.77zm17.2 4.71c-.27-.44-.65-.71-1.14-.82v-.02c.42-.16.72-.43.92-.79.2-.36.29-.79.29-1.27 0-.42-.08-.8-.23-1.12-.15-.33-.36-.59-.62-.8-.26-.21-.55-.37-.87-.48-.32-.11-.65-.16-.98-.16-.43 0-.82.08-1.16.25-.34.16-.63.39-.87.69-.24.29-.43.64-.57 1.04-.14.4-.22.83-.23 1.3h1.39c-.01-.25.02-.49.07-.72.06-.23.14-.44.26-.63s.27-.34.45-.45c.18-.11.39-.17.63-.17.39 0 .71.12.96.37s.37.58.37.99c0 .29-.05.54-.16.74-.11.2-.25.36-.43.47-.18.11-.38.19-.61.24-.23.05-.46.06-.68.05v1.17c.28-.01.55 0 .81.03s.5.1.71.21c.21.11.38.28.51.5.13.22.2.52.2.89 0 .55-.16.97-.47 1.27-.31.3-.7.45-1.17.45-.55 0-.95-.19-1.23-.58-.27-.39-.4-.88-.38-1.46h-1.39c.01.5.08.96.21 1.38.13.41.32.77.57 1.06.25.29.56.52.93.68.37.16.8.24 1.3.24.41 0 .79-.07 1.16-.21.37-.14.69-.33.96-.58.28-.25.5-.56.66-.92a3 3 0 00.24-1.23c0-.64-.14-1.17-.41-1.61zM8.58 12.41c.21-.18.45-.36.7-.53.25-.18.5-.36.75-.56.25-.2.49-.41.73-.63.23-.22.44-.47.63-.74.18-.27.33-.56.44-.88.11-.32.16-.67.16-1.07 0-.32-.05-.65-.14-1-.09-.35-.25-.68-.47-.97-.22-.3-.51-.55-.87-.74-.36-.2-.81-.29-1.35-.29-.49 0-.93.1-1.3.29-.37.18-.69.44-.95.78-.26.33-.45.73-.58 1.2-.13.46-.2.96-.2 1.5h1.43c.01-.35.04-.67.09-.97.05-.3.14-.56.25-.78.11-.22.26-.39.45-.52s.43-.19.71-.19c.31 0 .56.06.75.18.19.12.34.26.45.43.11.17.18.36.22.56.04.2.06.39.06.57-.01.38-.1.72-.26 1.02-.15.3-.37.57-.63.83-.26.25-.54.49-.85.71-.31.22-.61.45-.89.68-.6.45-1.06.98-1.41 1.58-.35.61-.52 1.32-.53 2.13h6.01v-1.43H7.69c.06-.21.17-.42.33-.61s.34-.38.56-.55z\"],\n \"office\": [\"M19 6h-5V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h4v-6h4v6h10c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zM6 12H2V8h4v4zm0-6H2V2h4v4zm6 6H8V8h4v4zm0-6H8V2h4v4zm6 11h-4v-3h4v3zm0-5h-4V8h4v4z\"],\n \"offline\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zM7 18l2-7H5l8-9-2 7h4l-8 9z\"],\n \"oil-field\": [\"M19 17.99h-1.36l-4.35-9.57 2.91-.86 1.66 4.1c.11.27.43.4.72.31.12-.04.22-.11.28-.2.06-.11 1.47-2.08 1.05-5.6C19.79 5.12 19.3 0 16.01 0 14.89.01 13.99.83 14 1.84c0 .19.04.38.1.56l1.34 3.31L.72 10.03v.02c-.41.12-.72.49-.72.94 0 .55.45 1 1 1 .1 0 .19-.03.28-.06v.02l2-.59 1.47 6.63H3c-.55 0-1 .45-1 1s.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1zM5.2 10.8l3.95-1.16-2.83 6.22L5.2 10.8zm2.35 7.19l3.95-8.68 3.95 8.68h-7.9z\"],\n \"one-column\": [\"M14.94 0h-4c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-8 6c-.28 0-.53.11-.71.29l-3 3c-.18.18-.29.43-.29.71s.11.53.29.71l3 3A1.003 1.003 0 007.94 13V7c0-.55-.45-1-1-1z\"],\n \"outdated\": [\"M10 0c5.52 0 10 4.48 10 10s-4.48 10-10 10S0 15.52 0 10c0-.55.45-1 1-1s1 .45 1 1c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8C7.47 2 5.22 3.17 3.76 5H5c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1s1 .45 1 1v2.05C3.82 1.6 6.71 0 10 0zm1 16H9v-2h2v2zm0-3H9V4h2v9z\"],\n \"page-layout\": [\"M19 1H1c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM7 17H2V8h5v9zm11 0H8V8h10v9zm0-10H2V3h16v4z\"],\n \"panel-stats\": [\"M1 1h18a1 1 0 011 1v15a1 1 0 01-1 1H1a1 1 0 01-1-1V2a1 1 0 011-1zm1 2v13h16V3H2zm9 0h1v13h-1V3zm2 7h3.952v1H13v-1zm0 2h3.952v1H13v-1zm0 2h3.952v1H13v-1zm0-6h3.952v1H13V8zm0-2h3.952v1H13V6zm0-2h3.952v1H13V4z\"],\n \"panel-table\": [\"M19 1H1c-.6 0-1 .4-1 1v15c0 .6.4 1 1 1h18c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1zm-9 11H7V9h3v3zm0-4H7V5h3v3zm-8 8V3h4v13H2zm5 0v-3h3v3H7zm11 0h-7v-3h7v3zm0-4h-7V9h7v3zm0-4h-7V5h7v3z\"],\n \"paperclip\": [\"M18.35 2.67A5.664 5.664 0 0014.33 1c-1.44 0-2.89.56-3.99 1.67l-9.16 9.27C.4 12.73 0 13.78 0 14.83s.39 2.1 1.18 2.9c.78.79 1.82 1.18 2.85 1.18 1.04 0 2.07-.39 2.87-1.2l9.14-9.27c.96-.96.96-2.5.02-3.45-.94-.95-2.49-.96-3.44 0l-7.59 7.69c-.31.32-.3.83.01 1.14.31.31.81.31 1.13.02l7.59-7.69c.31-.31.84-.31 1.13-.02.31.31.31.85 0 1.16l-9.14 9.27c-.93.95-2.54.93-3.45.02-.94-.95-.92-2.55.02-3.49l9.16-9.25c1.55-1.56 4.18-1.59 5.72-.03 1.56 1.57 1.55 4.26 0 5.82l-8.89 9.02c-.3.31-.3.81.01 1.11.3.3.79.31 1.1.01v.01l8.91-9.02A5.645 5.645 0 0020 6.73c0-1.48-.55-2.94-1.65-4.06z\"],\n \"paragraph\": [\"M16.5 1H7C4.2 1 2 3.2 2 6s2.2 5 5 5v6.5c0 .8.7 1.5 1.5 1.5s1.5-.7 1.5-1.5V4h2v13.5c0 .8.7 1.5 1.5 1.5s1.5-.7 1.5-1.5V4h1.5c.8 0 1.5-.7 1.5-1.5S17.3 1 16.5 1z\"],\n \"path\": [\"M18 0H2C.9 0 0 .9 0 2s.9 2 2 2h7v4H4c-1.1 0-2 .9-2 2s.9 2 2 2h5v4H6c-1.1 0-2 .9-2 2s.9 2 2 2h8c1.1 0 2-.9 2-2s-.9-2-2-2h-3v-4h5c1.1 0 2-.9 2-2s-.9-2-2-2h-5V4h7c1.1 0 2-.9 2-2s-.9-2-2-2z\"],\n \"path-search\": [\"M4 7c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm15 11.69l-5-2.5v-3.63c-.32.11-.66.22-1 .29v3.32l-6 2.57v-7.25c-.36-.27-.69-.57-1-.9v8.1l-5-2.5V10c.55 0 1-.45 1-1s-.45-1-1-1V1.31l3.43 1.71c.11-.31.24-.62.39-.92L.72.05A.545.545 0 00.5 0C.22 0 0 .22 0 .5v16c0 .2.12.36.28.44l6 3c.07.04.14.06.22.06.07 0 .14-.01.2-.04l6.79-2.91 5.79 2.9c.07.03.14.05.22.05.28 0 .5-.22.5-.5v-4.21c-.31.13-.64.21-1 .21v3.19zM10 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3-1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm6.72-.94l-1.43-.72c.2.43.36.89.48 1.36l.23.11V5.5c-.55 0-1 .45-1 1s.45 1 1 1v1.96l1 1V3.5c0-.2-.12-.36-.28-.44zm-3.69 5.56c.14-.21.27-.42.38-.65.02-.04.04-.07.05-.11.11-.22.2-.45.28-.69v-.01c.07-.24.13-.48.17-.73l.03-.17c.04-.25.06-.5.06-.76C17 2.46 14.54 0 11.5 0S6 2.46 6 5.5 8.46 11 11.5 11c.26 0 .51-.02.76-.06l.17-.03c.25-.04.49-.1.73-.17h.01c.24-.08.47-.17.69-.28.04-.02.07-.03.11-.05.23-.11.44-.24.65-.38l.18.18 3.5 3.5c.17.18.42.29.7.29a1.003 1.003 0 00.71-1.71l-3.68-3.67zm-4.53.88c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z\"],\n \"pause\": [\"M7 3H4c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm9 0h-3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"people\": [\"M16.94 17a4.92 4.92 0 00-.33-1.06c-.45-.97-1.37-1.52-3.24-2.3-.17-.07-.76-.31-.77-.32-.1-.04-.2-.08-.28-.12.05-.14.04-.29.06-.45 0-.05.01-.11.01-.16-.25-.21-.47-.48-.65-.79.22-.34.41-.71.56-1.12l.04-.11c-.01.02-.01.02-.02.08l.06-.15c.36-.26.6-.67.72-1.13.18-.37.29-.82.25-1.3-.05-.5-.21-.92-.47-1.22-.02-.53-.06-1.11-.12-1.59.38-.17.83-.26 1.24-.26.59 0 1.26.19 1.73.55.46.35.8.85.97 1.4.04.13.07.25.08.38.08.45.13 1.14.13 1.61v.07c.16.07.31.24.35.62.02.29-.09.55-.15.65-.05.26-.2.53-.46.59-.03.12-.07.25-.11.36-.01.01-.01.04-.01.04-.2.53-.51 1-.89 1.34 0 .06 0 .12.01.17.04.41-.11.71 1 1.19 1.1.5 2.77 1.01 3.13 1.79.34.79.2 1.25.2 1.25h-3.04zm-5.42-3.06c1.47.66 3.7 1.35 4.18 2.39.45 1.05.27 1.67.27 1.67H.04s-.19-.62.27-1.67c.46-1.05 2.68-1.75 4.16-2.4 1.48-.65 1.33-1.05 1.38-1.59 0-.07.01-.14.01-.21-.52-.45-.95-1.08-1.22-1.8l-.01-.01c0-.01-.01-.02-.01-.03-.07-.15-.12-.32-.16-.49-.34-.06-.54-.43-.62-.78-.08-.14-.24-.48-.2-.87.05-.51.26-.74.49-.83v-.08c0-.64.05-1.55.17-2.15a3.648 3.648 0 011.4-2.36C6.32 2.25 7.21 2 8 2s1.68.25 2.31.73a3.63 3.63 0 011.4 2.36c.11.6.17 1.52.17 2.15v.09c.22.09.42.32.47.82.03.39-.12.73-.2.87-.07.34-.27.71-.61.78-.04.16-.09.33-.15.48-.01.01-.02.05-.02.05-.27.71-.68 1.33-1.19 1.78 0 .08 0 .16.01.23.05.55-.15.95 1.33 1.6z\"],\n \"percentage\": [\"M15 10c-1.66 0-3 1.34-3 3v2c0 1.66 1.34 3 3 3s3-1.34 3-3v-2c0-1.66-1.34-3-3-3zm1 5c0 .55-.45 1-1 1s-1-.45-1-1v-2c0-.55.45-1 1-1s1 .45 1 1v2zM8 7V5c0-1.66-1.34-3-3-3S2 3.34 2 5v2c0 1.66 1.34 3 3 3s3-1.34 3-3zM4 7V5c0-.55.45-1 1-1s1 .45 1 1v2c0 .55-.45 1-1 1s-1-.45-1-1zm11-4a1.003 1.003 0 00-1.88-.48L5.14 16.49a1.003 1.003 0 101.74.99l7.99-13.97c.08-.15.13-.32.13-.51z\"],\n \"person\": [\"M19.61 17.91c-.57-1.32-3.35-2.19-5.19-3.01-1.85-.82-1.59-1.31-1.66-1.99-.01-.09-.01-.19-.02-.29.63-.56 1.15-1.33 1.49-2.22 0 0 .02-.05.02-.06.07-.19.13-.39.19-.6.42-.09.67-.55.76-.98.1-.17.29-.6.25-1.08-.06-.62-.31-.91-.59-1.03v-.11c0-.79-.07-1.93-.22-2.68A4.55 4.55 0 0012.9.92C12.11.32 11 0 10.01 0s-2.1.32-2.89.92a4.55 4.55 0 00-1.74 2.94c-.14.75-.22 1.89-.22 2.68v.1c-.29.11-.55.4-.61 1.04-.04.48.15.91.25 1.08.1.44.35.91.79.98.05.21.12.41.19.6 0 .01.01.03.01.04l.01.02c.34.91.87 1.69 1.52 2.25 0 .09-.01.18-.02.26-.07.68.13 1.17-1.72 1.99S.96 16.59.39 17.91C-.18 19.23.05 20 .05 20h19.9s.23-.77-.34-2.09z\"],\n \"phone\": [\"M19.91 15.51c-.08-.08-4.21-2.5-4.35-2.57a.876.876 0 00-.4-.1c-.19 0-.42.13-.71.4-.28.27-1.17 1.49-1.43 1.76s-.48.4-.65.4c-.08 0-.19-.02-.32-.07s-1.45-.73-4.2-3.15-3.11-4-3.13-4.44c0-.17.13-.39.4-.65.28-.25.57-.51.89-.74.32-.24.61-.5.88-.78s.4-.52.4-.71c0-.13-.03-.27-.1-.4C7.12 4.32 4.62.19 4.53.1c-.19-.18-.92-.1-1.29.1C.25 1.82 0 4 .05 4.86c.05.89.61 5.58 5.2 9.93 5.7 5.41 9.66 5.2 9.92 5.2.87 0 3.52-.48 4.65-3.19.16-.38.31-1.07.09-1.29z\"],\n \"pie-chart\": [\"M9 .98c-4.5.5-8 4.31-8 8.94 0 4.97 4.03 9.04 9 9.04 4.63 0 8.44-3.96 8.94-7.96H9V.98z\", \"M10-.08V10h10C20 4 15.52-.08 10-.08z\"],\n \"pin\": [\"M11.77 1.16c-.81.81-.74 2.28.02 3.76L6.1 8.71c-2.17-1.46-4.12-2-4.94-1.18l4.95 4.95-4.95 6.36 6.36-4.95 4.95 4.95c.82-.82.27-2.77-1.19-4.94l3.8-5.69c1.47.76 2.94.84 3.76.02l-7.07-7.07z\"],\n \"pivot\": [\"M5.83 9.75L.29 15.29a1.003 1.003 0 001.42 1.42l5.54-5.54c-.57-.37-1.05-.85-1.42-1.42zM19 11c-.55 0-1 .45-1 1v1.59l-3.83-3.83c-.37.56-.85 1.04-1.41 1.41L16.59 15H15c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm-5-4c0-2.21-1.79-4-4-4S6 4.79 6 7s1.79 4 4 4 4-1.79 4-4zm-4 2c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"],\n \"pivot-table\": [\"M3 5H1c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm0-5H1C.45 0 0 .45 0 1v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm13.71 5.29C16.53 5.11 16.28 5 16 5s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L15 8.41V11c0 2.21-1.79 4-4 4H8.41l1.29-1.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L8.41 17H11c3.31 0 6-2.69 6-6V8.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3zM19 0H6c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"play\": [\"M16 10c0-.36-.2-.67-.49-.84l.01-.01-10-6-.01.01A.991.991 0 005 3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1 .19 0 .36-.07.51-.16l.01.01 10-6-.01-.01c.29-.17.49-.48.49-.84z\"],\n \"plus\": [\"M16 9h-5V4c0-.55-.45-1-1-1s-1 .45-1 1v5H4c-.55 0-1 .45-1 1s.45 1 1 1h5v5c0 .55.45 1 1 1s1-.45 1-1v-5h5c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"polygon-filter\": [\"M18 7c-.27 0-.52.05-.75.15l-6.28-4.88c.01-.09.03-.18.03-.27 0-1.1-.9-2-2-2S7 .9 7 2c0 .06.01.12.02.19l-4.19 3C2.57 5.07 2.29 5 2 5 .9 5 0 5.9 0 7c0 .74.4 1.38 1 1.72v7.55c-.6.35-1 .99-1 1.73 0 1.1.9 2 2 2 .74 0 1.38-.4 1.72-1h7.55c.35.6.98 1 1.72 1 1.1 0 2-.9 2-2 0-.37-.11-.72-.29-1.02L18.03 11A2 2 0 0018 7zm-5.03 9c-.72.01-1.35.41-1.69 1H3.72c-.17-.3-.42-.55-.72-.72V8.72c.6-.34 1-.98 1-1.72 0-.06-.01-.12-.02-.19l4.19-3c.26.12.54.19.83.19.27 0 .52-.05.75-.15l6.28 4.88c-.01.09-.03.18-.03.27 0 .37.11.72.29 1.02L12.97 16z\"],\n \"power\": [\"M10 10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1S9 .45 9 1v8c0 .55.45 1 1 1zm3-7.45v2.16c2.36 1.12 4 3.5 4 6.29 0 3.87-3.13 7-7 7s-7-3.13-7-7c0-2.79 1.64-5.17 4-6.29V2.55C3.51 3.79 1 7.09 1 11a9 9 0 0018 0c0-3.91-2.51-7.21-6-8.45z\"],\n \"predictive-analysis\": [\"M20 8.01c0-1.26-.61-2.43-1.61-3.12C17.86 2.5 15.8.79 13.4.79c-.58 0-1.14.1-1.69.29A3.533 3.533 0 009.17 0C8.05 0 7 .55 6.32 1.45c-.15-.02-.3-.03-.45-.03-1.63 0-3.03 1.12-3.46 2.71C.97 4.65 0 6.05 0 7.66c0 .48.09.95.26 1.4-.17.44-.26.91-.26 1.39 0 1.38.72 2.64 1.89 3.29.67.7 1.59 1.09 2.54 1.09.61 0 1.19-.15 1.71-.45.68.82 1.68 1.3 2.73 1.3.66 0 1.28-.18 1.83-.52.61.49 1.34.81 2.11.91 1.3 1.43 2.3 3.28 2.31 3.3 0 0 .35.61.33.61.96-.01 1.77-.2 1.64-1.3.01.02-.92-2.89-.92-2.89.52-.26.94-.69 1.21-1.23 1.12-.66 1.84-1.91 1.84-3.26 0-.3-.03-.6-.1-.89.57-.64.88-1.51.88-2.4zm-1.54 1.28l-.18-.2-.77-.84c-.33-.37-.67-1.17-.73-1.73 0 0-.13-1.25-.13-1.26-.06-.74-1.17-.73-1.13.14 0 .02.13 1.26.13 1.26.04.36.15.77.3 1.17-.08-.01-.15-.02-.22-.02 0 0-2.57-.12-2.57-.13-.73-.03-.89 1.22-.05 1.25l2.57.13c.53.03 1.29.37 1.61.72l.61.67.02.06c.1.27.14.55.14.83 0 .93-.51 1.77-1.34 2.18l-.2.1-.09.23c-.19.48-.6.82-1.1.93l-.67.14.87 2.75c-.48-.76-1.19-1.79-2.02-2.67l-.15-.16-.21-.02c-.51-.04-.99-.21-1.42-.48l1.7-1.48c.44-.39 1.04-.55 1.24-.49 0 0 .78.22.78.23.78.2 1.03-.92.29-1.21l-.78-.23c-.69-.2-1.67.22-2.24.72l-1.91 1.66-.39.32c-.44.36-.93.55-1.5.55-.8 0-1.54-.41-1.97-1.07v-1.88c0-.5.21-.98.34-1.07 0 0 .65-.43.64-.43.87-.69.21-1.57-.64-1.14 0-.01-.65.43-.65.43-.31.2-.54.56-.7.97-.13-.13-.28-.25-.43-.35 0 0-1.91-1.26-1.91-1.28-.81-.56-1.5.63-.61 1.11 0-.02 1.89 1.28 1.89 1.28.46.31.77.97.77 1.36v.84c-.43.24-.78.36-1.24.36-.67 0-1.31-.29-1.77-.79l-.07-.08-.09-.05a2.425 2.425 0 01-1.31-2.16c0-.38.09-.74.25-1.08l.15-.31-.14-.33c-.17-.34-.25-.7-.25-1.08 0-1.13.76-2.1 1.85-2.37l.39-.09.07-.43a2.41 2.41 0 012.39-2.05c.19 0 .39.02.58.07l.4.1.22-.38A2.41 2.41 0 019.17 1.3c.55 0 1.08.19 1.5.53l-.44.45-.01-.01-.31.31c-.41.35-.92.53-1.11.5 0 0-.84-.13-.84-.14-.83-.15-1.09 1.08-.18 1.29.01 0 .84.14.84.14.03 0 .06 0 .09.01-.14.46-.18.96-.12 1.4 0 0 .21 1.24.19 1.23.13.65 1.32.44 1.16-.22 0-.01-.19-1.23-.19-1.23-.07-.48.15-1.19.45-1.5l.48-.5c.07-.06.13-.12.19-.18l.93-.95c.5-.23 1.04-.34 1.59-.34 1.93 0 3.57 1.4 3.89 3.34l.05.31.26.15a2.445 2.445 0 01.87 3.4z\"],\n \"prescription\": [\"M13.95 10.23c.16-.18.22-.22.46-.22h1.48c.25 0 .47.08.59.33.1.2.09.41-.05.66l-2.71 3.58L16.88 19c.13.21.16.46.03.69-.12.21-.34.31-.57.31H14.7c-.31 0-.56-.17-.7-.44l-1.9-2.67-1.93 2.68c-.15.27-.42.43-.73.43H7.98c-.25 0-.47-.08-.59-.33-.1-.2-.09-.41.05-.66l3.09-4.35L6.26 9H5v4.32c0 .41-.3.69-.7.69H2.7c-.41 0-.7-.28-.7-.69V.69c0-.41.3-.69.7-.69h4.42c.71 0 1.36.1 1.94.3.59.2 1.11.49 1.54.87.44.38.78.84 1.02 1.39.24.54.36 1.14.36 1.78 0 1.01-.28 1.88-.84 2.6-.43.54-1.35 1.29-2 1.59l3.09 3.94 1.72-2.24zM6.71 6.04c.71 0 1.45-.16 1.81-.46.33-.28.5-.69.5-1.25s-.17-.97-.5-1.25c-.35-.3-1.1-.46-1.81-.46h-1.7v3.42h1.7z\"],\n \"presentation\": [\"M19 1h-8c0-.55-.45-1-1-1S9 .45 9 1H1c-.55 0-1 .45-1 1s.45 1 1 1h1v11c0 .55.45 1 1 1h4.59L4.3 18.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L9 16.41V19c0 .55.45 1 1 1s1-.45 1-1v-2.59l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L12.41 15H17c.55 0 1-.45 1-1V3h1c.55 0 1-.45 1-1s-.45-1-1-1zm-3 12H4V3h12v10z\"],\n \"print\": [\"M14 16H6v-4H4v5c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-5h-2v4zm2-13c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v1h12V3zm3 2H1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h2v-3h14v3h2c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-1 4h-2V7h2v2z\"],\n \"projects\": [\"M18 4c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v2h16V4zm-2-3c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v1h12V1zm3 6H1c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-5 7c0 .55-.45 1-1 1H7c-.55 0-1-.45-1-1v-2h1v2h6v-2h1v2z\"],\n \"properties\": [\"M2 15c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-7c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm5-4h12c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1zM2 1C.9 1 0 1.9 0 3s.9 2 2 2 2-.9 2-2-.9-2-2-2zm17 8H7c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zm0 7H7c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"property\": [\"M3 5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm5-1h11c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zM3 15c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm16 1H8c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm-1-8H9c-1.1 0-2 .9-2 2s.9 2 2 2h9c1.1 0 2-.9 2-2s-.9-2-2-2zM3 7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"],\n \"publish-function\": [\"M7.01 10.11c.35-.64.72-1.68 1.09-3.11l.8-3.03h.96l.24-.77h-.99c.28-1.11.66-1.92 1.12-2.43.28-.32.56-.48.83-.48.05 0 .1.02.13.05.03.03.05.07.05.12 0 .04-.04.13-.11.25-.08.12-.11.24-.11.35 0 .15.06.28.18.39.12.11.27.16.45.16.2 0 .36-.07.49-.2s.2-.31.2-.54c0-.26-.1-.47-.3-.63-.2-.16-.52-.24-.96-.24-.68 0-1.3.19-1.86.58-.55.38-1.08 1.02-1.58 1.91-.17.3-.34.5-.49.59-.15.08-.4.13-.74.12l-.23.77h.95L5.74 9.21c-.23.86-.39 1.39-.47 1.59-.12.29-.3.54-.54.75-.1.08-.21.12-.35.12-.04 0-.07-.01-.1-.03l-.03-.04c0-.02.03-.07.1-.13.07-.07.1-.17.1-.31 0-.15-.05-.28-.16-.38-.11-.1-.27-.15-.47-.15-.25 0-.44.07-.59.2-.15.12-.23.28-.23.46 0 .19.09.36.27.5.19.14.47.21.86.21.61 0 1.16-.15 1.63-.46.48-.31.89-.79 1.25-1.43zm3.7 1.18c-.18-.18-.43-.29-.71-.29s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L9 14.41V19c0 .55.45 1 1 1s1-.45 1-1v-4.59l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3zm4.15-6.78c.17-.13.36-.2.55-.2.07 0 .2.03.39.08s.36.08.5.08c.2 0 .37-.07.5-.2.13-.14.2-.31.2-.52 0-.22-.07-.4-.2-.53s-.33-.2-.58-.2c-.22 0-.43.05-.63.15-.2.1-.45.32-.75.67-.23.25-.56.7-1.01 1.33a6.52 6.52 0 00-.91-2.15l-2.38.39-.05.25c.18-.03.33-.05.45-.05.24 0 .43.1.59.3.25.31.59 1.24 1.02 2.79-.34.44-.58.73-.7.87-.21.22-.38.36-.52.43-.1.05-.22.08-.35.08-.1 0-.26-.05-.49-.16a1.01 1.01 0 00-.42-.11c-.23 0-.42.07-.57.22-.17.14-.24.32-.24.55 0 .21.07.38.21.51.14.13.33.2.56.2.23 0 .44-.05.64-.14.2-.09.45-.29.75-.59s.72-.78 1.25-1.43c.2.62.38 1.07.53 1.35.15.28.32.49.52.61.19.12.44.19.73.19.28 0 .57-.1.86-.3.38-.25.77-.69 1.17-1.31l-.25-.14c-.27.37-.48.6-.61.69-.09.06-.19.09-.31.09-.14 0-.28-.09-.42-.26-.23-.29-.54-1.09-.93-2.4.37-.58.66-.96.9-1.14z\"],\n \"pulse\": [\"M19 10h-2.38L14.9 6.55h-.01c-.17-.32-.5-.55-.89-.55-.43 0-.79.28-.93.66h-.01l-2.75 7.57L7.98 1.82h-.02A.978.978 0 007 1c-.44 0-.8.29-.94.69h-.01L3.28 10H1c-.55 0-1 .45-1 1s.45 1 1 1h3c.44 0 .8-.29.94-.69h.01l1.78-5.34 2.29 12.21h.02c.08.46.47.82.96.82.43 0 .79-.28.93-.66h.01l3.21-8.82.96 1.92h.01c.16.33.49.56.88.56h3c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"random\": [\"M14.47 5h2.12L15.3 6.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3a1.003 1.003 0 00-1.42 1.42L16.59 3H14c-.31 0-.57.15-.76.37l-.01-.01-2.93 3.52 1.3 1.56L14.47 5zm2.24 7.29a1.003 1.003 0 00-1.42 1.42l1.3 1.29h-2.12L4.77 3.36l-.01.01A.998.998 0 004 3H1c-.55 0-1 .45-1 1s.45 1 1 1h2.53l9.7 11.64.01-.01c.19.22.45.37.76.37h2.59l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3zM3.53 15H1c-.55 0-1 .45-1 1s.45 1 1 1h3c.31 0 .57-.15.76-.37l.01.01 2.93-3.52-1.3-1.56L3.53 15z\"],\n \"record\": [\"M10 3a7 7 0 100 14 7 7 0 100-14z\"],\n \"redo\": [\"M19.71 5.29l-4-4a1.003 1.003 0 00-1.42 1.42L16.59 5H6c-3.31 0-6 2.69-6 6s2.69 6 6 6h5v-2H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h10.59L14.3 9.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM15 14c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"],\n \"refresh\": [\"M19 1c-.55 0-1 .45-1 1v2.06C16.18 1.61 13.29 0 10 0 4.48 0 0 4.48 0 10c0 .55.45 1 1 1s1-.45 1-1c0-4.42 3.58-8 8-8 2.52 0 4.76 1.18 6.22 3H15c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 8c-.55 0-1 .45-1 1 0 4.42-3.58 8-8 8-2.52 0-4.76-1.18-6.22-3H5c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1s1-.45 1-1v-2.06C3.82 18.39 6.71 20 10 20c5.52 0 10-4.48 10-10 0-.55-.45-1-1-1z\"],\n \"regression-chart\": [\"M19 16H3.1L19.31 3.39l-.61-.79L2 15.59V3c0-.55-.45-1-1-1s-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm-9-9c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-5 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm10-2c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2zm-5 4c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2z\"],\n \"remove\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm5-9H5c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"remove-column\": [\"M19 0H5c-.55 0-1 .45-1 1v4h2V2h5v16H6v-3H4v4c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18h-5V2h5v16zM6.29 13.71a1.003 1.003 0 001.42-1.42L5.41 10 7.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L4 8.59l-2.29-2.3A1.003 1.003 0 00.29 7.71L2.59 10 .3 12.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L4 11.41l2.29 2.3z\"],\n \"remove-column-left\": [\"M4 11h6c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zM19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-7 18H2V2h10v16zm6 0h-5V2h5v16z\"],\n \"remove-column-right\": [\"M19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM7 18H2V2h5v16zm11 0H8V2h10v16zm-8-7h6c.55 0 1-.45 1-1s-.45-1-1-1h-6c-.55 0-1 .45-1 1s.45 1 1 1z\"],\n \"remove-row-bottom\": [\"M7 14h6c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1zM19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2V8h16v10zm0-11H2V2h16v5z\"],\n \"remove-row-top\": [\"M7 8h6c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1zm12-8H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2v-5h16v5zm0-6H2V2h16v10z\"],\n \"repeat\": [\"M14 6c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1v2.05C16.18 1.6 13.29 0 10 0 4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10c0-.55-.45-1-1-1s-1 .45-1 1c0 4.42-3.58 8-8 8s-8-3.58-8-8 3.58-8 8-8c2.53 0 4.77 1.17 6.24 3H15c-.55 0-1 .45-1 1z\"],\n \"reset\": [\"M6 6c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1s1 .45 1 1v2.05C3.82 1.6 6.71 0 10 0c5.52 0 10 4.48 10 10s-4.48 10-10 10S0 15.52 0 10c0-.55.45-1 1-1s1 .45 1 1c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8C7.47 2 5.23 3.17 3.76 5H5c.55 0 1 .45 1 1z\"],\n \"resolve\": [\"M8.7 4.7C7.9 4.2 7 4 6 4c-3.3 0-6 2.7-6 6s2.7 6 6 6c1 0 1.9-.2 2.7-.7C7.3 14 6.5 12.1 6.5 10s.9-4 2.2-5.3zM14 4c-1 0-1.9.2-2.7.7 1.4 1.4 2.2 3.2 2.2 5.3s-.9 4-2.2 5.3c.8.5 1.7.7 2.7.7 3.3 0 6-2.7 6-6s-2.7-6-6-6zm-4 1.5C8.8 6.7 8 8.2 8 10s.8 3.3 2 4.4c1.2-1.1 2-2.7 2-4.5s-.8-3.3-2-4.4z\"],\n \"rig\": [\"M7 4.2C7 5.75 8.34 7 10 7s3-1.46 3-2.8C13 1.45 10.94 0 10 0H6c0 2.74 3.76 1.96 1 4.2zm11.71 14.09L13 12.59V9.01c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1v3.58l-5.71 5.7a1.003 1.003 0 001.42 1.42L7 15.42V19c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3.58l4.29 4.29a1.003 1.003 0 001.42-1.42zM10.21 8c.01 0 .01.01 0 0 .01.01.01 0 0 0z\"],\n \"right-join\": [\"M8.7 4.7C7.4 6 6.5 7.9 6.5 10s.8 4 2.2 5.3c-.8.5-1.7.7-2.7.7-3.3 0-6-2.7-6-6s2.7-6 6-6c1 0 1.9.2 2.7.7zm-3.34 9.25c-.55-1.2-.86-2.54-.86-3.95s.31-2.75.86-3.95a4.001 4.001 0 000 7.9zM14 4c3.3 0 6 2.7 6 6s-2.7 6-6 6c-1 0-1.9-.2-2.7-.7 1.3-1.3 2.2-3.2 2.2-5.3s-.8-3.9-2.2-5.3C12.1 4.2 13 4 14 4zm-4 1.5C8.8 6.7 8 8.2 8 10s.8 3.3 2 4.4c1.2-1.1 2-2.7 2-4.5s-.8-3.3-2-4.4z\"],\n \"ring\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"],\n \"rotate-document\": [\"M8.71 6.29A.997.997 0 008 6H3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h9c.55 0 1-.45 1-1v-8c0-.28-.11-.53-.29-.71l-4-4zM11 18H4V8h3v3c0 .55.45 1 1 1h3v6zm3-16h-1.59l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C9.11 2.47 9 2.72 9 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H14c1.1 0 2 .9 2 2v3c0 .55.45 1 1 1s1-.45 1-1V6c0-2.21-1.79-4-4-4z\"],\n \"rotate-page\": [\"M14 2h-1.59l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C9.11 2.47 9 2.72 9 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H14c1.1 0 2 .9 2 2v3c0 .55.45 1 1 1s1-.45 1-1V6c0-2.21-1.79-4-4-4zm-2 5H3c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 11H4V9h7v9z\"],\n \"route\": [\"M14.028 6.016c.146.275.31.57.485.872.304.524.628 1.047.952 1.545l.118.178-.208-.006-.577-.005c-2.093.004-2.841.303-2.841.895 0 .069.271.248 1.245.567l1.008.313c2.671.831 3.99 1.827 3.99 4.167 0 2.76-1.928 4.059-4.832 4.376-.782.085-1.52.098-2.452.066l-1.15-.046H6.221l.535-.811a67.46 67.46 0 001.122-1.787h2.04l.686.03c1.028.046 1.77.043 2.523-.039 1.832-.2 2.673-.767 2.673-1.789 0-.69-.483-1.09-1.992-1.585l-.83-.257c-1.192-.364-2.037-.7-2.59-1.165.399-1 .612-1.844.612-2.538a6.018 6.018 0 00-.382-2.098c.745-.573 1.884-.822 3.41-.883zM5 4.2c2.648 0 4.791 2.151 4.8 4.797C9.8 11.652 5 18.6 5 18.6l-.5-.744C3.273 15.993.2 11.121.2 8.997A4.802 4.802 0 015 4.2zm0 2.4a2.4 2.4 0 10.002 4.802A2.4 2.4 0 005 6.6zM17 .333a2.671 2.671 0 012.667 2.665C19.667 4.473 17 8.333 17 8.333l-.391-.587c-.741-1.137-2.276-3.629-2.276-4.748A2.668 2.668 0 0117 .333z\"],\n \"satellite\": [\"M9 18c.6 0 1 .4 1 1s-.4 1-1 1c-5 0-9-4-9-9 0-.6.4-1 1-1s1 .4 1 1c0 3.9 3.1 7 7 7zm0-4c.6 0 1 .4 1 1s-.4 1-1 1c-2.8 0-5-2.2-5-5 0-.6.4-1 1-1s1 .4 1 1c0 1.7 1.3 3 3 3zm5.7-3.7c.4-.4 1-.4 1.4 0l3.6 3.6c.4.4.4 1 0 1.4l-1.4 1.4c-.4.4-1 .4-1.4 0l-3.6-3.6c-.4-.4-.4-1 0-1.4l1.4-1.4zM4.7.3c.4-.4 1-.4 1.4 0l3.6 3.6c.4.4.4 1 0 1.4L8.3 6.7c-.4.4-1 .4-1.4 0L3.3 3.1c-.4-.4-.4-1 0-1.4L4.7.3zm11.1 1c.4-.4 1-.4 1.4 0l1.6 1.6c.4.4.4 1 0 1.4l-6.5 6.5c-.4.4-1 .4-1.4 0L9.3 9.2c-.4-.4-.4-1 0-1.4l6.5-6.5zM9 12c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1z\"],\n \"saved\": [\"M12 0H4c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V6l-6-6zm4 18H5V2h6v5h5v11zm-8.29-6.71a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29.32 0 .59-.16.77-.38l.01.01 4-5-.01-.01c.14-.18.23-.38.23-.62 0-.55-.45-1-1-1-.32 0-.59.16-.77.38l-.01-.01-3.3 4.13-2.21-2.21z\"],\n \"scatter-plot\": [\"M9 9c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm5 2c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4-5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm1 10H2V3c0-.55-.45-1-1-1s-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM5 15c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z\"],\n \"search\": [\"M19.56 17.44l-4.94-4.94A8.004 8.004 0 0016 8c0-4.42-3.58-8-8-8S0 3.58 0 8s3.58 8 8 8c1.67 0 3.21-.51 4.5-1.38l4.94 4.94a1.498 1.498 0 102.12-2.12zM8 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\"],\n \"search-around\": [\"M9.9 6.9a3 3 0 100 6 3 3 0 100-6zM3 14c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3zm0 5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM3 0C1.3 0 0 1.3 0 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3zm0 5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM17 14c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3zm0 5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM17 0c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3zm0 5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM10 10L5 5\", \"M5.379 4.671l5.02 5.02-.707.708-5.02-5.02zM10 10l5-5\", \"M14.621 4.671l.707.708-5.02 5.02-.707-.707z\", \"M10 10l5 5M10.379 9.671l5.02 5.02-.707.708-5.02-5.02z\", \"M10 10l-5 5M9.621 9.671l.707.708-5.02 5.02-.707-.707z\"],\n \"search-template\": [\"M13 8H5c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zm0 3H5c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zm0-6H5c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zm6.56 12.44l-3.23-3.23A8.939 8.939 0 0018 9a9 9 0 10-9 9c1.94 0 3.74-.62 5.21-1.67l3.23 3.23a1.498 1.498 0 102.12-2.12zM9 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\"],\n \"search-text\": [\"M19.56 17.44l-3.23-3.23A8.939 8.939 0 0018 9a9 9 0 10-9 9c1.94 0 3.74-.62 5.21-1.67l3.23 3.23a1.498 1.498 0 102.12-2.12zM9 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm3.5-11h-7c-.28 0-.5.22-.5.5v2c0 .28.22.5.5.5s.5-.22.5-.5V7h2v6h-.5c-.28 0-.5.22-.5.5s.22.5.5.5h3c.28 0 .5-.22.5-.5s-.22-.5-.5-.5H10V7h2v.5c0 .28.22.5.5.5s.5-.22.5-.5v-2c0-.28-.22-.5-.5-.5z\"],\n \"segmented-control\": [\"M19 5H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-1 8h-8V7h8v6z\"],\n \"select\": [\"M19.71 18.29l-4.25-4.25L20 12.91 9.93 9.33c.04-.1.07-.21.07-.33V3c0-.55-.45-1-1-1H4V1c0-.55-.45-1-1-1S2 .45 2 1v1H1c-.55 0-1 .45-1 1s.45 1 1 1h1v5c0 .55.45 1 1 1h6c.12 0 .23-.03.34-.07L12.91 20l1.14-4.54 4.25 4.25c.17.18.42.29.7.29a1.003 1.003 0 00.71-1.71zM8 8H4V4h4v4z\"],\n \"selection\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\", \"M10 6a4 4 0 100 8 4 4 0 100-8z\"],\n \"send-message\": [\"M1.754.135L19.393 9.06c.57.288.775.943.458 1.462-.107.176-.266.32-.458.418l-17.64 8.924c-.57.289-1.288.102-1.604-.417A1.001 1.001 0 010 18.925v-6.851L11.021 10 0 7.938V1.075C0 .481.529 0 1.18 0c.201 0 .399.047.574.135z\"],\n \"send-to\": [\"M19 0h-5c-.6 0-1 .4-1 1s.4 1 1 1h2.6l-4.3 4.3c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3L18 3.4V6c0 .5.5 1 1 1s1-.5 1-1V1c0-.6-.5-1-1-1zm0 9c-1 0-1.9-.5-2.5-1.3l-1.4 1.4c-.5.6-1.3.9-2.1.9-1.7 0-3-1.3-3-3 0-.8.3-1.6.9-2.1l1.4-1.4C11.5 2.9 11 2 11 1c0-.3.1-.6.2-.9-.4-.1-.8-.1-1.2-.1C4.5 0 0 4.5 0 10s4.5 10 10 10 10-4.5 10-10c0-.4 0-.8-.1-1.2-.3.1-.6.2-.9.2z\"],\n \"send-to-graph\": [\"M8 11H3c-.55 0-1 .45-1 1s.45 1 1 1h2.59L.3 18.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L7 14.41V17c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1zm10 2c-.53 0-1.01.21-1.37.55L11.9 10.6c.06-.19.1-.39.1-.6 0-.21-.04-.41-.1-.6l4.72-2.95c.37.34.85.55 1.38.55 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .21.04.41.1.6l-4.73 2.96c-.24-.23-.54-.4-.87-.48V3.93c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S8 .9 8 2c0 .93.64 1.71 1.5 1.93v4.14c-.33.09-.63.26-.87.48L7.6 7.91 5.42 6.55 3.9 5.6c.06-.19.1-.39.1-.6 0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.53 0 1.01-.21 1.37-.55L9 9.96V10h.06L12 11.84l.4.25 1.51.94 2.19 1.37c-.06.19-.1.39-.1.6 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2zm-7-2.96l-.06-.04H11v.04z\"],\n \"send-to-map\": [\"M8 11H3c-.55 0-1 .45-1 1s.45 1 1 1h2.59L.3 18.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L7 14.41V17c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1zm11.54-6.82l.01-.02-6-4-.01.02C13.39.08 13.21 0 13 0s-.39.08-.54.18l-.01-.02L7 3.8 1.55.17l-.01.01A.969.969 0 001 0C.45 0 0 .45 0 1v9c0-.55.45-1 1-1h1V2.87l4 2.67V9h2V5.54l4-2.67v11.6l-1 .67v2.4l2-1.33 5.45 3.63.01-.02c.15.1.33.18.54.18.55 0 1-.45 1-1V5c0-.35-.19-.64-.46-.82zM18 17.13l-4-2.67V2.87l4 2.67v11.59z\"],\n \"series-add\": [\"M13.29 9.29c.3.62.8 1.12 1.42 1.42l-3 3c-.18.18-.43.29-.71.29s-.53-.11-.71-.3L7 10.41l-5 5V17h17c.55 0 1 .45 1 1s-.45 1-1 1H1a.998.998 0 01-1-1V4c0-.55.45-1 1-1s1 .45 1 1v8.59l4.29-4.3C6.47 8.11 6.72 8 7 8s.53.11.71.29l3.29 3.3 2.29-2.3zM12 5c0-.5.4-1 1-1h2V2c0-.6.4-1 1-1 .5 0 1 .4 1 1v2h2c.5 0 1 .4 1 1s-.5 1-1 1h-2v2c0 .6-.5 1-1 1-.6 0-1-.4-1-1V6h-2c-.6 0-1-.4-1-1z\"],\n \"series-configuration\": [\"M11.91 10.67c.52.45 1.13.8 1.8 1.03l-2.01 2.01c-.18.18-.43.29-.71.29-.28 0-.53-.11-.71-.3L7 10.41l-5 5V17h16.99c.55 0 1 .45 1 1s-.45 1-1 1H1a.998.998 0 01-1-1V4c0-.55.45-1 1-1s1 .45 1 1v8.59l4.29-4.3C6.47 8.11 6.72 8 7 8c.28 0 .53.11.71.29l3.29 3.3.91-.92zM18.5 4.6h1.04c.25 0 .45.2.46.44v.9c0 .25-.2.45-.45.45h-1.04c-.07.22-.16.42-.27.62l.73.73c.17.17.17.44 0 .61l-.61.61c-.17.17-.44.17-.61 0l-.73-.73c-.2.11-.4.2-.62.26v1.05c0 .25-.2.45-.45.45h-.9c-.25 0-.45-.2-.45-.45V8.51c-.21-.06-.4-.15-.58-.25l-.76.77c-.17.17-.46.17-.64 0l-.64-.64a.465.465 0 010-.64l.76-.77c-.1-.19-.19-.38-.25-.59h-1.04c-.25 0-.45-.2-.45-.45v-.9c0-.25.2-.45.45-.45h1.04c.07-.22.16-.42.27-.61l-.73-.73a.429.429 0 010-.61l.61-.61c.17-.17.44-.17.61 0l.73.73c.2-.11.4-.2.62-.26V1.45a.44.44 0 01.44-.45h.9c.25 0 .45.2.45.45V2.5c.21.06.4.15.58.25l.76-.77c.17-.17.46-.17.64 0l.64.64c.17.17.17.46 0 .64l-.76.77c.1.17.19.36.25.57zm-4.69.9c0 .93.75 1.69 1.69 1.69.93 0 1.69-.75 1.69-1.69s-.75-1.69-1.69-1.69-1.69.76-1.69 1.69z\"],\n \"series-derived\": [\"M18.82 6.58c-.03.05-.07.09-.11.13 0 0 0-.01-.01-.01l-2 2c-.2.2-.4.3-.7.3-.6 0-1-.4-1-1 0-.3.1-.5.3-.7L16.6 6H11c-.6 0-1-.4-1-1s.4-1 1-1h5.6l-1.3-1.3c-.2-.2-.3-.4-.3-.7 0-.6.4-1 1-1 .3 0 .5.1.7.3l3 3c.2.2.3.4.3.7s-.1.5-.3.7l-.88.88zm-5.53 2.71c.3.62.8 1.12 1.42 1.42l-3 3c-.18.18-.43.29-.71.29s-.53-.11-.71-.3L7 10.41l-5 5V17h17c.55 0 1 .45 1 1s-.45 1-1 1H1a.998.998 0 01-1-1V4c0-.55.45-1 1-1s1 .45 1 1v8.59l4.29-4.3C6.47 8.11 6.72 8 7 8s.53.11.71.29l3.29 3.3 2.29-2.3z\"],\n \"series-filtered\": [\"M12.14 10.45c.21.67.65 1.23 1.22 1.61l-1.65 1.65c-.18.18-.43.29-.71.29s-.53-.11-.71-.3L7 10.41l-5 5V17h17c.55 0 1 .45 1 1s-.45 1-1 1H1a.998.998 0 01-1-1V4c0-.55.45-1 1-1s1 .45 1 1v8.59l4.29-4.3C6.47 8.11 6.72 8 7 8s.53.11.71.29l3.29 3.3 1.14-1.14zM19.35 1a.642.642 0 01.46 1.1l-3.03 3.03v2.95c0 .18-.07.34-.19.46l-1.28 1.29c-.11.1-.27.17-.45.17-.35 0-.64-.29-.64-.64V5.13L11.19 2.1a.642.642 0 01.45-1.1h7.71z\"],\n \"series-search\": [\"M11.28 11.31l-.28.28-3.29-3.3C7.53 8.11 7.28 8 7 8s-.53.11-.71.29L2 12.59V4c0-.55-.45-1-1-1s-1 .45-1 1v14a.998.998 0 001 1h18c.55 0 1-.45 1-1s-.45-1-1-1H2v-1.59l5-5 3.29 3.29c.18.19.43.3.71.3s.53-.11.71-.29l2.09-2.09c-.17.02-.34.02-.51.02-.7 0-1.38-.12-2.01-.33zm-.93-6c0-1.62 1.31-2.93 2.93-2.93s2.93 1.31 2.93 2.93-1.31 2.93-2.93 2.93-2.93-1.31-2.93-2.93zm6.47 2.43c.11-.17.21-.33.29-.51.01-.03.03-.06.04-.09.08-.18.16-.35.21-.54.06-.2.1-.38.14-.58.01-.05.01-.09.02-.14.03-.2.05-.39.05-.6 0-2.37-1.93-4.3-4.3-4.3-2.37.01-4.3 1.93-4.3 4.31s1.93 4.3 4.3 4.3c.21 0 .4-.02.6-.05.04 0 .09-.01.14-.02.2-.03.38-.08.57-.14.2-.06.37-.14.55-.21.03-.01.06-.03.09-.04.18-.09.34-.19.51-.29l2.87 2.87c.14.14.33.22.56.22.43 0 .78-.35.78-.78a.938.938 0 00-.23-.56l-2.89-2.85z\"],\n \"settings\": [\"M4 1c0-.55-.45-1-1-1S2 .45 2 1v5h2V1zM2 19c0 .55.45 1 1 1s1-.45 1-1v-6H2v6zm9-18c0-.55-.45-1-1-1S9 .45 9 1v8h2V1zm7 0c0-.55-.45-1-1-1s-1 .45-1 1v3h2V1zM9 19c0 .55.45 1 1 1s1-.45 1-1v-3H9v3zm9-14h-2c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-2 14c0 .55.45 1 1 1s1-.45 1-1v-8h-2v8zM4 7H2c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm7 3H9c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1z\"],\n \"share\": [\"M15 18H2V5h8.76l2-2H1c-.55 0-1 .45-1 1v15c0 .55.45 1 1 1h15c.55 0 1-.45 1-1V7.24l-2 2V18zm4-18h-7c-.55 0-1 .45-1 1s.45 1 1 1h4.59l-7.3 7.29a1.003 1.003 0 001.42 1.42L18 3.41V8c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"shield\": [\"M10 20c6-3.81 9-9.048 9-15.714-2 0-5-1.429-9-4.286-4 2.857-7 4.286-9 4.286C1 10.952 4 16.19 10 20zm0-17.348c2.577 1.734 4.776 2.88 6.667 3.419-.44 4.627-2.636 8.353-6.667 11.297V2.652z\"],\n \"shop\": [\"M17.94 3.63c-.01-.02-.01-.03-.02-.04l-.03-.09h-.01c-.18-.3-.49-.5-.86-.5h-14c-.42 0-.77.25-.92.61L0 8.5h.02a2.5 2.5 0 005 0 2.5 2.5 0 005 0 2.5 2.5 0 005 0 2.5 2.5 0 005 0l-2.08-4.87zM3.02 2h14c.55 0 1-.45 1-1s-.45-1-1-1h-14c-.55 0-1 .45-1 1s.44 1 1 1zm13 14h-12v-4h-2v7c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-7h-2v4z\"],\n \"shopping-cart\": [\"M18 14H8.72l-.67-2H17c.44 0 .8-.29.94-.69h.01l2-6h-.01c.03-.1.06-.2.06-.31 0-.55-.45-1-1-1H5.39l-.44-1.32h-.01C4.8 2.29 4.44 2 4 2H1c-.55 0-1 .45-1 1s.45 1 1 1h2.28l3.33 10H5c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2h9c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2zM6.05 6h11.56l-1.33 4H7.39L6.05 6z\"],\n \"signal-search\": [\"M7.15 10.33c.888.8 1.999 1.36 3.228 1.574l2.326 6.98a.846.846 0 01-.535 1.07.844.844 0 01-1.072-.535l-1.225-3.671H7.125L5.9 19.419a.85.85 0 01-1.072.536.85.85 0 01-.536-1.071l2.857-8.555zm1.353 1.305l-.808 2.413h1.607l-.8-2.413zM5 5.5c0 .76.13 1.49.37 2.17-.496 1.056-.313 2.356.704 3.29.385.353.404.94.038 1.311a.982.982 0 01-1.356.038c-2.183-2.01-2-5.125.01-6.94a.95.95 0 01.24-.156A6.421 6.421 0 005 5.5z\", \"M3.874 13.185c-1.346-.918-2.187-2.67-2.187-4.34 0-1.752.757-3.254 2.187-4.339.42-.25.42-.834.168-1.168-.252-.418-.84-.418-1.177-.167C1.014 4.59-.08 6.509.005 8.846c.084 2.253 1.177 4.423 2.86 5.675.168.083.336.166.504.166.253 0 .505-.083.673-.333.337-.418.253-.918-.168-1.169zM12.246 12.309a.98.98 0 01-1.354-.037.917.917 0 01-.206-.324 6.54 6.54 0 001.959-.049 5.125 5.125 0 01-.399.41zM14.631 11.476l1.228 1.229a6.6 6.6 0 01-1.723 1.816c-.169.083-.337.166-.505.166-.253 0-.505-.083-.673-.333-.337-.418-.253-.918.168-1.169.62-.422 1.133-1.022 1.505-1.709z\", \"M11.5 0C14.54 0 17 2.46 17 5.5c0 .26-.02.51-.06.75l-.03.17c-.04.25-.1.49-.17.73v.01c-.08.24-.17.47-.28.69-.01.04-.03.07-.05.11-.11.23-.24.44-.38.65l3.68 3.68A1.003 1.003 0 0119 14c-.28 0-.53-.11-.7-.29l-3.68-3.68c-.21.14-.42.27-.65.38-.04.01-.07.03-.11.05-.22.11-.45.2-.69.28h-.01c-.24.07-.48.13-.73.17l-.17.03c-.25.04-.5.06-.76.06C8.46 11 6 8.54 6 5.5S8.46 0 11.5 0zm0 1.5c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z\"],\n \"sim-card\": [\"M16.71 5.29l-5-5A.997.997 0 0011 0H4c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6c0-.28-.11-.53-.29-.71zM9 7h2v3H9V7zM6 7h2v3H6V7zm2 11H6v-3h2v3zm3 0H9v-3h2v3zm3 0h-2v-3h2v3zm0-4H6v-3h8v3zm0-4h-2V7h2v3z\"],\n \"slash\": [\"M12 2c-.46 0-.85.32-.97.74L7.04 16.7c-.02.1-.04.2-.04.3 0 .55.45 1 1 1 .46 0 .85-.32.97-.74L12.96 3.3c.02-.1.04-.2.04-.3 0-.55-.45-1-1-1z\"],\n \"small-cross\": [\"M11.41 10l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L10 8.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42L8.59 10 5.3 13.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3.29-3.3 3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L11.41 10z\"],\n \"small-minus\": [\"M14 9H6c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"small-plus\": [\"M14 9h-3V6c0-.55-.45-1-1-1s-1 .45-1 1v3H6c-.55 0-1 .45-1 1s.45 1 1 1h3v3c0 .55.45 1 1 1s1-.45 1-1v-3h3c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"small-tick\": [\"M15 5c-.28 0-.53.11-.71.29L8 11.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l7-7A1.003 1.003 0 0015 5z\"],\n \"snowflake\": [\"M11 11.776v2.81l2.31 2.242a.987.987 0 010 1.415c-.399.39-1.044.39-1.442 0L11 17.414V19a.99.99 0 01-.996 1A.996.996 0 019 19v-1.636l-.912.879c-.398.39-1.043.39-1.441 0a.987.987 0 010-1.415L9 14.536v-2.79l-2.548 1.435-.837 3.063c-.146.534-.705.85-1.248.707a.998.998 0 01-.721-1.224l.309-1.132-1.4.793a1.03 1.03 0 01-1.393-.366.99.99 0 01.373-1.366l1.445-.818-1.224-.322a.998.998 0 01-.72-1.225c.145-.533.704-.85 1.248-.707l3.193.84 2.462-1.395-2.532-1.434-3.123.82a1.022 1.022 0 01-1.249-.706.998.998 0 01.721-1.225L2.91 7.18l-1.4-.793a.99.99 0 01-.373-1.366 1.03 1.03 0 011.392-.366l1.445.818-.328-1.2a.998.998 0 01.72-1.225 1.022 1.022 0 011.25.707l.855 3.132L9 8.311V5.414L6.647 3.121a.987.987 0 010-1.414 1.033 1.033 0 011.441 0L9 2.586V1c0-.552.44-1 1.004-1A.99.99 0 0111 1l-.007 1.536.875-.829a1.033 1.033 0 011.441 0 .987.987 0 010 1.414L11 5.364v2.918l2.53-1.42.855-3.131c.146-.534.705-.85 1.249-.707a.998.998 0 01.72 1.224l-.327 1.2 1.4-.792a1.03 1.03 0 011.392.366.99.99 0 01-.373 1.366l-1.355.768 1.153.303a.998.998 0 01.721 1.225c-.146.533-.705.85-1.249.707l-3.123-.821-2.576 1.459 2.506 1.42 3.193-.84a1.022 1.022 0 011.249.707.998.998 0 01-.72 1.225l-1.224.322 1.4.793a.99.99 0 01.373 1.366 1.03 1.03 0 01-1.393.366l-1.356-.768.31 1.132a.998.998 0 01-.721 1.224 1.022 1.022 0 01-1.249-.707l-.837-3.063L11 11.776z\"],\n \"social-media\": [\"M11.5 5c.8 0 1.6-.4 2-1 2 1.2 3.3 3.3 3.5 5.7 0 .5.5.9 1 .9.6 0 1-.5 1-1v-.1c-.2-3.3-2.2-6.2-5.1-7.6C13.7.8 12.7 0 11.5 0 10.1 0 9 1.1 9 2.5S10.1 5 11.5 5zm5 7c-1.4 0-2.5 1.1-2.5 2.5 0 .4.1.7.2 1.1-1.1.9-2.6 1.4-4.2 1.4-1.9 0-3.6-.8-4.9-2-.2-.2-.5-.4-.8-.4-.5 0-1 .5-1 1 0 .3.1.5.3.7C5.3 18 7.5 19 10 19c2.2 0 4.2-.8 5.8-2.1.2.1.5.1.7.1 1.4 0 2.5-1.1 2.5-2.5S17.9 12 16.5 12zM5 10.5c0-1.1-.7-2.1-1.7-2.4.5-1.9 1.9-3.5 3.6-4.4.3-.2.6-.5.6-.9 0-.5-.4-1-1-1-.2 0-.4.1-.6.2-2.4 1.2-4.2 3.6-4.7 6.4C.5 8.9 0 9.6 0 10.5 0 11.9 1.1 13 2.5 13S5 11.9 5 10.5z\"],\n \"sort\": [\"M19 16h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm0-5h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zM7 15c-.28 0-.53.11-.71.29L5 16.59V11c0-.55-.45-1-1-1s-1 .45-1 1v5.59L1.71 15.3A.965.965 0 001 15a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 007 15zM19 1h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 5h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1z\"],\n \"sort-alphabetical\": [\"M8 15c-.28 0-.53.11-.71.29L6 16.59v-5.58c0-.55-.45-1-1-1s-1 .45-1 1v5.58L2.71 15.3c-.18-.18-.43-.3-.71-.3a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 008 15zm8.89-.79v-1.22H11.3v1.3h3.51L11 18.78V20h5.99v-1.3h-3.91l3.81-4.49zM14.97 0h-1.95L9.01 11.01h1.89l.98-2.92h4.17l.98 2.92h1.96L14.97 0zm-2.59 6.63l1.58-4.74H14l1.57 4.74h-3.19z\"],\n \"sort-alphabetical-desc\": [\"M8.01 15c-.28 0-.53.11-.71.29L6 16.59v-5.58c0-.55-.45-1-1-1s-1 .45-1 1v5.58L2.71 15.3c-.18-.18-.43-.3-.71-.3a1.003 1.003 0 00-.71 1.71l3 3a1.014 1.014 0 001.42 0l3-3c.18-.18.29-.43.29-.71.01-.55-.44-1-.99-1zm4.44-5.65l6.4-7.88V0H10.5v1.67h5.91L10 9.44v1.57h9V9.35h-6.55zm1.27 3.64L11 20h1.59l.56-1.56h2.68l.55 1.56h1.64l-2.68-7.01h-1.62zm-.16 4.3l.93-2.57h.02l.9 2.57h-1.85z\"],\n \"sort-asc\": [\"M10 8h5c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1h-5c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm0 5h7c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1h-7c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm0-10h3c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm9 12h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zM7 14c-.28 0-.53.11-.71.29L5 15.59V10c0-.55-.45-1-1-1s-1 .45-1 1v5.59L1.71 14.3A.965.965 0 001 14a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 007 14z\"],\n \"sort-desc\": [\"M13 15h-3c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm-6-1c-.28 0-.53.11-.71.29L5 15.59V10c0-.55-.45-1-1-1s-1 .45-1 1v5.59L1.71 14.3A.965.965 0 001 14a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 007 14zM19 0h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-4 10h-5c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm2-5h-7c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z\"],\n \"sort-numerical\": [\"M9 14.99c-.28 0-.53.11-.71.29L7 16.58v-5.59c0-.55-.45-1-1-1s-1 .45-1 1v5.59l-1.29-1.29a.965.965 0 00-.71-.3 1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29.28 0 .53-.11.71-.29l3-3c.18-.18.29-.43.29-.71a.99.99 0 00-1-1zm8.88.23c-.08-.42-.22-.79-.42-1.12-.2-.33-.47-.6-.8-.8-.33-.2-.76-.3-1.28-.3a2.333 2.333 0 00-1.72.71c-.21.22-.37.48-.49.78-.11.3-.17.62-.17.97 0 .27.04.54.13.8.08.26.22.5.4.7.19.21.43.38.71.5a2.142 2.142 0 001.72.02c.25-.12.47-.31.66-.58l.02.02c-.01.19-.04.4-.08.63-.04.24-.11.46-.21.67-.1.21-.23.38-.39.53a.92.92 0 01-.62.22c-.24 0-.44-.08-.6-.25-.16-.17-.27-.36-.31-.59h-1.31c.04.29.12.56.24.79.12.23.28.43.48.59.19.16.42.28.67.36.25.08.52.12.82.12.49 0 .9-.1 1.23-.31.34-.21.61-.48.82-.82.21-.34.37-.71.47-1.13.1-.42.15-.83.15-1.25 0-.43-.04-.85-.12-1.26zm-1.42.63c-.05.15-.11.28-.2.4-.09.12-.2.21-.34.27s-.3.1-.49.1c-.17 0-.33-.04-.46-.11s-.24-.17-.33-.29c-.08-.12-.15-.25-.19-.4-.04-.15-.06-.31-.06-.47 0-.15.02-.3.07-.45.05-.15.11-.28.2-.39.09-.12.2-.21.33-.28.13-.07.27-.11.44-.11.17 0 .33.04.47.11.14.07.25.17.34.28a1.387 1.387 0 01.28.86c.01.17-.02.33-.06.48zM15.32 11H17V0h-1.25c-.05.34-.17.62-.34.85-.17.23-.39.42-.63.57-.25.15-.52.25-.83.31-.3.06-.62.09-.94.09v1.41h2.31V11z\"],\n \"sort-numerical-desc\": [\"M9 15c-.28 0-.53.11-.71.29L7 16.59v-5.58c0-.55-.45-1-1-1s-1 .45-1 1v5.58L3.71 15.3c-.18-.18-.43-.3-.71-.3a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29.28 0 .53-.11.71-.29l3-3A1.003 1.003 0 009 15zm6.7-1.33a1.5 1.5 0 01-.44.43c-.17.11-.37.19-.58.23-.22.04-.44.06-.67.05v1.07h1.66V20H17v-6.99h-1.06c-.04.26-.12.48-.24.66zm3.15-10.3c-.11-.68-.29-1.26-.55-1.76-.26-.5-.62-.89-1.08-1.18C16.75.14 16.17 0 15.46 0c-.54 0-1.03.09-1.46.27-.43.18-.79.44-1.09.76-.3.33-.52.71-.67 1.15-.16.44-.24.92-.24 1.43 0 .54.08 1.04.23 1.47.15.44.37.81.65 1.12.28.31.61.55 1 .72.39.17.82.26 1.3.26.46 0 .88-.11 1.26-.33.38-.22.68-.53.9-.94l.03.03c-.03.35-.07.74-.12 1.16-.05.42-.15.81-.29 1.18-.14.37-.35.68-.61.92-.26.25-.62.37-1.06.37-.43 0-.77-.13-1.03-.4-.25-.27-.4-.62-.44-1.05h-1.64c.02.43.11.83.29 1.18.17.35.39.66.67.91a3.027 3.027 0 002.07.8c.71 0 1.3-.17 1.79-.5.48-.33.87-.76 1.17-1.29.3-.53.51-1.12.64-1.76.13-.64.19-1.28.19-1.92.01-.77-.05-1.49-.15-2.17zM17.1 4.44c-.08.27-.19.5-.34.71-.15.21-.34.37-.57.49-.23.12-.5.18-.8.18-.3 0-.56-.06-.78-.19-.22-.13-.4-.29-.55-.49-.14-.2-.25-.44-.32-.7-.07-.27-.11-.55-.11-.84 0-.28.04-.55.11-.82.07-.26.18-.49.32-.7.14-.2.33-.36.55-.48.22-.12.48-.17.78-.17.31 0 .57.06.8.18.23.12.42.28.57.48.15.2.26.43.34.69.08.26.11.53.11.82 0 .29-.04.57-.11.84z\"],\n \"split-columns\": [\"M15 13a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3a1.003 1.003 0 00-1.42 1.42L16.59 9H11V2h5v2c.77 0 1.47.3 2 .78V1c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v3.78C2.53 4.3 3.23 4 4 4V2h5v7H3.41L4.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L3.41 11H9v7H4v-2c-.77 0-1.47-.3-2-.78V19c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3.78c-.53.48-1.23.78-2 .78v2h-5v-7h5.59l-1.29 1.29c-.19.18-.3.43-.3.71z\"],\n \"square\": [\"M19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2V2h16v16z\"],\n \"stacked-chart\": [\"M12 2c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v4h4V2zm3 14h2c.55 0 1-.45 1-1v-5h-4v5c0 .55.45 1 1 1zm3-10c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v3h4V6zm-6 1H8v5h4V7zm-9 9h2c.55 0 1-.45 1-1v-3H2v3c0 .55.45 1 1 1zm16 1H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM6 9c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v2h4V9zm3 7h2c.55 0 1-.45 1-1v-2H8v2c0 .55.45 1 1 1z\"],\n \"star\": [\"M10 0l3.1 6.6 6.9 1-5 5.1 1.2 7.3-6.2-3.4L3.8 20 5 12.7 0 7.6l6.9-1z\"],\n \"star-empty\": [\"M20 7.6l-6.9-1.1L10 0 6.9 6.6 0 7.6l5 5.1L3.8 20l6.2-3.4 6.2 3.4-1.2-7.2 5-5.2zM10 15l-4.5 2.4.9-5.2-3.6-3.6 5-.8L10 3.1l2.2 4.7 5 .8-3.6 3.7.9 5.2L10 15z\"],\n \"step-backward\": [\"M15 3c-.23 0-.42.09-.59.21l-.01-.01L8 8V4c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-4l6.4 4.8.01-.01c.17.12.36.21.59.21.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"step-chart\": [\"M19 16H2v-3h4c.55 0 1-.45 1-1V8h3v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V6h2c.55 0 1-.45 1-1s-.45-1-1-1h-3c-.55 0-1 .45-1 1v4h-3V7c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v4H2V3c0-.55-.45-1-1-1s-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"step-forward\": [\"M15 3h-2c-.55 0-1 .45-1 1v4L5.6 3.2l-.01.01C5.42 3.09 5.23 3 5 3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1 .23 0 .42-.09.59-.21l.01.01L12 12v4c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"stop\": [\"M16 3H4c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"stopwatch\": [\"M10 6a6 6 0 106 6h-6V6zm-.998-1.938A1.015 1.015 0 019 4V2H7a1 1 0 110-2h6a1 1 0 010 2h-2v2c0 .02 0 .041-.002.062A8.001 8.001 0 0110 20a8 8 0 01-.998-15.938z\"],\n \"strikethrough\": [\"M18 9h-4.46a4.7 4.7 0 00-.4-.14c-.19-.05-.51-.14-.96-.25-.45-.11-.9-.23-1.37-.35-.47-.12-.89-.23-1.27-.33s-.6-.16-.65-.17c-.53-.15-.95-.37-1.27-.66-.32-.28-.49-.68-.49-1.19 0-.36.09-.66.26-.9s.39-.43.65-.57c.26-.14.55-.24.87-.3s.63-.09.93-.09c.89 0 1.63.19 2.21.57.45.3.75.76.89 1.38h2.63c-.06-.52-.2-.98-.42-1.4-.3-.57-.71-1.05-1.23-1.43a5.33 5.33 0 00-1.79-.87c-.7-.2-1.42-.3-2.19-.3-.66 0-1.31.08-1.96.25s-1.22.43-1.73.77-.92.79-1.23 1.32c-.31.52-.46 1.15-.46 1.87 0 .37.05.74.15 1.1.1.36.28.7.53 1.02.18.24.41.47.69.67H2c-.55 0-1 .45-1 1s.45 1 1 1h10.14c.02.01.05.02.07.02.3.11.58.29.84.55.25.26.38.67.38 1.21 0 .27-.06.53-.17.79-.11.26-.29.49-.54.69-.25.2-.57.36-.97.49s-.88.19-1.44.19c-.52 0-1.01-.06-1.45-.17-.45-.11-.84-.29-1.19-.54s-.61-.56-.8-.95c-.05-.08-.09-.18-.12-.28H4.11c.09.43.22.82.4 1.18.33.65.77 1.18 1.32 1.59.55.41 1.2.72 1.94.92.74.2 1.53.3 2.37.3.73 0 1.44-.08 2.14-.25.7-.17 1.33-.43 1.88-.79.55-.36.99-.83 1.33-1.39.34-.56.51-1.25.51-2.05 0-.37-.06-.75-.18-1.12a3.12 3.12 0 00-.15-.39H18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"style\": [\"M18 18H2V2h12.3l2-2H1C.4 0 0 .4 0 1v18c0 .6.4 1 1 1h18c.6 0 1-.4 1-1V7.7l-2 2V18zm1.2-18l-7.6 7.6 2.8 2.8L20 4.8V0h-.8zM4 15.9c3.1.2 5.9.2 8.2-2 1.1-1.1 1.1-3 0-4.1-.6-.5-1.3-.8-2-.8s-1.4.3-1.9.8C7.2 11 6.6 14.3 4 15.9z\"],\n \"swap-horizontal\": [\"M16.02 10c-.01 0-.01 0 0 0H16h.02zM2 6h13.58l-2.29 2.29a1 1 0 00-.3.71 1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-4-4a1.003 1.003 0 00-1.42 1.42L15.58 4H2c-.55 0-1 .45-1 1s.45 1 1 1zm2 4h-.02H4zm14 4H4.42l2.29-2.29a1 1 0 00.3-.71 1.003 1.003 0 00-1.71-.71l-4 4c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L4.42 16H18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"swap-vertical\": [\"M9.71 5.3l-4-4A.997.997 0 005 1.01c-.28 0-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L4 4.42V18c0 .55.45 1 1 1s1-.45 1-1V4.42l2.29 2.29a1 1 0 00.71.3 1.003 1.003 0 00.71-1.71zM10 3.98c0 .01 0 .01 0 0V4v-.02zm0 12.04c0-.01 0-.01 0 0V16v.02zm9-3.03c-.28 0-.53.11-.71.29L16 15.58V2c0-.55-.45-1-1-1s-1 .45-1 1v13.58l-2.29-2.29a1.003 1.003 0 00-1.42 1.42l4 4c.18.18.43.29.71.29.28 0 .53-.11.71-.29l4-4c.18-.18.29-.43.29-.71 0-.56-.45-1.01-1-1.01z\"],\n \"symbol-circle\": [\"M10 4.01a6 6 0 100 12 6 6 0 100-12z\"],\n \"symbol-cross\": [\"M15 8.01h-3v-3c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v3H5c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h3v3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-3h3c.55 0 1-.45 1-1v-2c0-.56-.45-1-1-1z\"],\n \"symbol-diamond\": [\"M15 10.01c0-.21-.08-.39-.18-.54l.02-.01-4-6-.02.01c-.18-.28-.47-.46-.82-.46s-.64.18-.82.45l-.01-.01-4 6 .02.01c-.11.16-.19.34-.19.55s.08.39.18.54l-.02.01 4 6 .02-.01c.18.27.47.46.82.46s.64-.19.82-.46l.02.01 4-6-.02-.01c.1-.16.18-.34.18-.54z\"],\n \"symbol-square\": [\"M15 4.01H5c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-10c0-.56-.45-1-1-1z\"],\n \"symbol-triangle-down\": [\"M16 5c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1 0 .16.05.31.11.44H4.1l5 10h.01c.17.33.5.56.89.56s.72-.23.89-.56h.01l5-10h-.01c.06-.13.11-.28.11-.44z\"],\n \"symbol-triangle-up\": [\"M15.89 14.56l-4.99-10h-.01c-.17-.33-.5-.56-.89-.56s-.72.23-.89.56H9.1l-5 10h.01c-.06.13-.11.28-.11.44 0 .55.45 1 1 1h10c.55 0 1-.45 1-1 0-.16-.05-.31-.11-.44z\"],\n \"tag\": [\"M2 4a2 2 0 012-2h4.588a2 2 0 011.414.586l7.41 7.41a2 2 0 010 2.828l-4.588 4.588a2 2 0 01-2.829 0l-7.41-7.41A2 2 0 012 8.588V4zm3.489-.006a1.495 1.495 0 100 2.99 1.495 1.495 0 000-2.99z\"],\n \"take-action\": [\"M5 7c.28 0 .53-.11.71-.29l5-5A1.003 1.003 0 009.29.29l-5 5A1.003 1.003 0 005 7zm6 6a1.003 1.003 0 001.71.71l5-5a1.003 1.003 0 00-1.42-1.42l-5 5c-.18.18-.29.43-.29.71zm8 5h-1c0-.55-.45-1-1-1h-7c-.55 0-1 .45-1 1H8c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm-9-6l6-6-1.29-1.29a1.003 1.003 0 00-1.42-1.42L12 2 6 8l1.29 1.29-7 7a1.003 1.003 0 001.42 1.42l7-7L10 12z\"],\n \"taxi\": [\"M19 9h-.33l.33 1v.5c0 .15-.03.3-.07.44h.01L17 17.23v.27c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5V17H6v.5c0 .83-.67 1.5-1.5 1.5S3 18.33 3 17.5v-.27l-1.93-6.28h.01c-.05-.15-.08-.3-.08-.45V10s.02-.06.05-.16c.06-.17.16-.47.28-.84H1c-.55 0-1-.45-1-1s.45-1 1-1h1l1-3h-.01v-.01c.25-.64 1-1.31 1.67-1.5 0 0 .78-.21 2.33-.36V1c0-.55.45-1 1-1h4c.55 0 1 .45 1 1v1.13c1.55.14 2.33.36 2.33.36.67.19 1.42.86 1.67 1.5V4H17l1 3h1c.55 0 1 .45 1 1s-.45 1-1 1zM3 11.5c0 .83.67 1.5 1.5 1.5S6 12.33 6 11.5 5.33 10 4.5 10 3 10.67 3 11.5zM16 7l-1-3H5L4 7v1h12V7zm-.5 3c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"],\n \"text-highlight\": [\"M16 17c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1s1-.45 1-1-.45-1-1-1c-.77 0-1.47.3-2 .78-.53-.48-1.23-.78-2-.78-.55 0-1 .45-1 1s.45 1 1 1 1 .45 1 1v12c0 .55-.45 1-1 1s-1 .45-1 1 .45 1 1 1c.77 0 1.47-.3 2-.78.53.48 1.23.78 2 .78.55 0 1-.45 1-1s-.45-1-1-1zm-4-4H2V7h10V5H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h11v-2zm7-8h-3v2h2v6h-2v2h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z\"],\n \"th\": [\"M19 1H1c-.6 0-1 .5-1 1v16c0 .5.4 1 1 1h18c.5 0 1-.5 1-1V2c0-.5-.5-1-1-1zM7 17H2v-3h5v3zm0-4H2v-3h5v3zm0-4H2V6h5v3zm11 8H8v-3h10v3zm0-4H8v-3h10v3zm0-4H8V6h10v3z\"],\n \"th-derived\": [\"M5.3 13.3c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3l3-3c.2-.2.3-.4.3-.7s-.1-.5-.3-.7l-3-3C6.5 7.1 6.3 7 6 7c-.6 0-1 .4-1 1 0 .3.1.5.3.7L6.6 10H1c-.6 0-1 .4-1 1s.4 1 1 1h5.6l-1.3 1.3zM19 1H3c-.5 0-1 .5-1 1v6h1c0-1.7 1.3-3 3-3 .8 0 1.6.3 2.1.9l.1.1H9v.8l1 1V6h8v3h-6.8c.3.3.5.6.6 1H18v3h-6.8l-.1.1-.9.9H18v3h-8v-2.8l-1 1V17H4v-.8c-.6-.5-1-1.3-1-2.2H2v4c0 .5.5 1 1 1h16c.6 0 1-.5 1-1V2c0-.5-.5-1-1-1z\"],\n \"th-disconnect\": [\"M14.25 1H19c.5 0 1 .5 1 1v16c0 .5-.5 1-1 1h-7.221l.278-2H18v-3h-5.527l.14-1H18v-3h-4.971l.139-1H18V6h-4.416l.637-4.587c.02-.139.03-.277.03-.413zM8.221 1l-.694 5H2v3h5.11l-.139 1H2v3h4.555l-.14 1H2v3h3.999l-.22 1.587c-.02.139-.03.277-.03.413H1c-.6 0-1-.5-1-1V2c0-.5.4-1 1-1h7.221zM10.26.862a1 1 0 011.98.276l-2.5 18a1 1 0 01-1.98-.276l2.5-18z\"],\n \"th-filtered\": [\"M17.333 10l1.435-1.722a1 1 0 00.232-.64V4.85l1-.9V18c0 .5-.5 1-1 1H1c-.6 0-1-.5-1-1V2c0-.5.4-1 1-1h6.722L12 4.85V6H8v3h4v1H8v3h10v-3h-.667zM7 17v-3H2v3h5zm0-4v-3H2v3h5zm0-4V6H2v3h5zm11 8v-3H8v3h10z\", \"M19.35 0a.642.642 0 01.46 1.1l-3.03 3.03v2.95c0 .18-.07.34-.19.46l-1.28 1.29c-.11.1-.27.17-.45.17-.35 0-.64-.29-.64-.64V4.13L11.19 1.1a.642.642 0 01.45-1.1h7.71z\"],\n \"th-list\": [\"M19 1H1c-.6 0-1 .5-1 1v16c0 .5.4 1 1 1h18c.5 0 1-.5 1-1V2c0-.5-.5-1-1-1zm-1 16H2v-3h16v3zm0-4H2v-3h16v3zm0-4H2V6h16v3z\"],\n \"thumbs-down\": [\"M18.55 6.56c-.31-.01-.65-.03-1.02-.06.03 0 .06-.01.09-.01.88-.12 1.68-.63 1.76-1.37.08-.75-.58-1.25-1.46-1.33-.32-.03-.65-.05-.99-.08.59-.19 1.05-.54 1.09-1.2.05-.75-.99-1.32-1.87-1.41-.34-.03-.64-.05-.91-.07h-.11c-.28-.02-.54-.02-.77-.02-3.92-.08-7.29.6-9.36 1.93v7.72c2.67 1.66 5.95 4.61 5.26 7.08-.21.76.39 1.35 1.23 1.26 1.01-.11 1.71-1.18 1.75-2.28.05-1.29-.19-2.59-.62-3.74-.05-.32.01-.65.47-.68.61-.04 1.39-.08 1.99-.1.32 0 .64-.01.94-.03h.01c.52-.03 1-.07 1.42-.12.88-.11 1.69-.6 1.79-1.35.1-.75-.55-1.25-1.44-1.35-.07-.01-.13-.02-.2-.02.21-.02.42-.04.61-.06.88-.11 1.69-.6 1.79-1.35.09-.75-.56-1.31-1.45-1.36zM3 3H0v8h3c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"thumbs-up\": [\"M3 9H0v8h3c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zm16.99 3.09c-.1-.75-.91-1.24-1.79-1.35-.19-.02-.4-.05-.61-.06.07-.01.14-.01.2-.02.88-.1 1.53-.61 1.44-1.35-.1-.74-.91-1.24-1.79-1.35-.42-.05-.9-.09-1.42-.12h-.01l-.94-.03c-.6-.02-1.39-.05-1.99-.1-.45-.03-.51-.36-.47-.68.43-1.15.67-2.45.62-3.74-.04-1.11-.74-2.17-1.75-2.28-.84-.09-1.45.5-1.23 1.26.7 2.47-2.58 5.43-5.25 7.08v7.72c2.08 1.33 5.44 2.01 9.35 1.93.24 0 .49-.01.77-.02h.11c.27-.02.57-.04.91-.07.88-.08 1.92-.66 1.87-1.41-.04-.65-.5-1.01-1.09-1.2.34-.03.67-.05.99-.08.89-.08 1.55-.58 1.46-1.33-.08-.75-.88-1.25-1.76-1.37-.03 0-.06-.01-.09-.01.37-.02.71-.04 1.02-.06.91-.05 1.55-.61 1.45-1.36z\"],\n \"tick\": [\"M17 4c-.28 0-.53.11-.71.29L7 13.59 3.71 10.3A.965.965 0 003 10a1.003 1.003 0 00-.71 1.71l4 4c.18.18.43.29.71.29s.53-.11.71-.29l10-10A1.003 1.003 0 0017 4z\"],\n \"tick-circle\": [\"M10 20C4.48 20 0 15.52 0 10S4.48 0 10 0s10 4.48 10 10-4.48 10-10 10zm5-14c-.28 0-.53.11-.71.29L8 12.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29.28 0 .53-.11.71-.29l7-7A1.003 1.003 0 0015 6z\"],\n \"time\": [\"M11 9.59V4c0-.55-.45-1-1-1s-1 .45-1 1v6c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L11 9.59zM10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"],\n \"timeline-area-chart\": [\"M19 16H2V3c0-.55-.45-1-1-1s-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0-13.41l-7.07 7.07-4.3-3.44-.01.01A.987.987 0 007 6c-.24 0-.46.1-.63.24l-.01-.01L3 9.03V15h16V2.59z\"],\n \"timeline-bar-chart\": [\"M19 17H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM9 16h2c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1zm6 0h2c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1zM3 16h2c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1z\"],\n \"timeline-events\": [\"M5 5c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1s-1 .5-1 1v2c0 .6.4 1 1 1zm10 0c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1s-1 .5-1 1v2c0 .6.4 1 1 1zm-9 9H4v2h2v-2zM17 3v1c0 1.1-.9 2-2 2s-2-.9-2-2V3H7v1c0 1.1-.9 2-2 2s-2-.9-2-2V3H2c-.5 0-1 .5-1 1v14c0 .5.5 1 1 1h16c.5 0 1-.5 1-1V4c0-.5-.5-1-1-1h-1zM7 17H3v-4h4v4zm0-5H3V8h4v4zm5 5H8v-4h4v4zm0-5H8V8h4v4zm5 5h-4v-4h4v4zm0-5h-4V8h4v4zm-6 2H9v2h2v-2zm5-5h-2v2h2V9z\"],\n \"timeline-line-chart\": [\"M19 16H2v-1.59l5-5 3.29 3.29c.18.19.43.3.71.3s.53-.11.71-.29l7-7a1.003 1.003 0 00-1.42-1.42L11 10.59l-3.29-3.3C7.53 7.11 7.28 7 7 7s-.53.11-.71.29L2 11.59V3c0-.55-.45-1-1-1s-1 .45-1 1v14a.998.998 0 001 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"tint\": [\"M9.86 2S3.98 9.18 3.98 12.17C3.99 15.4 6.78 18 9.96 18c3.18-.01 6.04-2.63 6.03-5.86C15.99 9.05 9.86 2 9.86 2z\"],\n \"torch\": [\"M6.97 19c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2h-6v2zm-3-15l3 4v8h6V8l3-4h-12zm5 5c0-.55.45-1 1-1s1 .45 1 1v2c0 .55-.45 1-1 1s-1-.45-1-1V9zm6-9h-10c-.55 0-1 .45-1 1v2h12V1c0-.55-.45-1-1-1z\"],\n \"tractor\": [\"M4.5 11a4.5 4.5 0 110 9 4.5 4.5 0 010-9zm11.499 1a4 4 0 110 8 4 4 0 010-8zm-11.5 1.571a1.928 1.928 0 100 3.857 1.928 1.928 0 000-3.857zM16 14.667a1.333 1.333 0 100 2.666 1.333 1.333 0 000-2.666zM5.999 0C7.46 0 8.527.668 9 2l.851 4.256c1.433.096 2.82.217 4.147.362V2h2L16 6.862c.962.13 1.886.275 2.767.435.779.141 1.232.614 1.232 1.284L20 13a4.995 4.995 0 00-4-1.997A5.001 5.001 0 0011.099 15h-1.12a5.499 5.499 0 00-5.478-4.994 5.482 5.482 0 00-3.377 1.157H.004v-1.18L0 7.327c-.002-.597.37-1.18.999-1.302V1a1 1 0 011-1h4zm1 2H3v4h.75c1.386.027 2.749.073 4.079.139L6.999 2z\"],\n \"train\": [\"M16 18h-2l2 2H4l.12-.12L6 18H4c-1.1 0-2-.9-2-2V2c0-1.1 3.58-2 8-2s8 .9 8 2v14c0 1.1-.9 2-2 2zM5.5 15c.83 0 1.5-.67 1.5-1.5S6.33 12 5.5 12 4 12.67 4 13.5 4.67 15 5.5 15zM9 3H4v6h5V3zm7 0h-5v6h5V3zm-1.5 9c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"],\n \"translate\": [\"M19.89 18.56l-4.99-10h-.01c-.17-.33-.5-.56-.89-.56s-.72.23-.89.56h-.01l-1.73 3.46-2.8-2.3 1.99-1.64C11.44 7.34 12 6.23 12 5V4h1c.55 0 1-.45 1-1s-.45-1-1-1H8V1c0-.55-.45-1-1-1S6 .45 6 1v1H1c-.55 0-1 .45-1 1s.45 1 1 1h9v1c0 .62-.28 1.18-.73 1.54L7 8.42 4.73 6.54C4.28 6.18 4 5.62 4 5H2c0 1.23.56 2.34 1.44 3.07l1.99 1.64-3.06 2.52.01.01c-.23.18-.38.45-.38.76 0 .55.45 1 1 1 .24 0 .45-.1.63-.24l.01.01L7 11l3.36 2.77.01-.01c.02.02.05.03.08.05.01 0 .01.01.02.02l-2.36 4.73h.01c-.07.13-.12.28-.12.44 0 .55.45 1 1 1 .39 0 .72-.23.89-.56h.01L11.12 17h5.76l1.22 2.45h.01c.17.32.5.55.89.55.55 0 1-.45 1-1 0-.16-.05-.31-.11-.44zM12.12 15L14 11.24 15.88 15h-3.76z\"],\n \"trash\": [\"M17 1h-5c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1H3c-.55 0-1 .45-1 1v1h16V2c0-.55-.45-1-1-1zm.5 3h-15c-.28 0-.5.22-.5.5s.22.5.5.5H3v14c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5h.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5zM7 16c0 .55-.45 1-1 1s-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v8zm4 0c0 .55-.45 1-1 1s-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v8zm4 0c0 .55-.45 1-1 1s-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v8z\"],\n \"tree\": [\"M11 15.542V20H9v-4.458L2 17l4.5-5.625L4 12l3.655-5.483L6 7l4-7 4 7-1.655-.483L16 12l-2.5-.625L18 17l-7-1.458z\"],\n \"trending-down\": [\"M19 10c-.55 0-1 .45-1 1v1.37l-6.25-7.03-.01.01A.971.971 0 0011 5c-.23 0-.42.09-.59.21l-.01-.01-3.43 2.58-5.42-3.61-.01.01A.969.969 0 001 4c-.55 0-1 .45-1 1 0 .35.19.64.46.82l-.01.01 6 4 .01-.02c.15.11.33.19.54.19.23 0 .42-.09.59-.21l.01.01 3.26-2.45L16.77 14H15c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1z\"],\n \"trending-up\": [\"M19 4h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.77l-5.91 6.65L7.6 10.2l-.01.01C7.42 10.09 7.23 10 7 10c-.21 0-.39.08-.54.18l-.01-.02-6 4 .01.02c-.27.18-.46.47-.46.82 0 .55.45 1 1 1 .21 0 .39-.08.54-.18l.01.02 5.41-3.61 3.43 2.58.01-.01c.18.11.37.2.6.2.3 0 .56-.14.74-.34l.01.01L18 7.63V9c0 .55.45 1 1 1s1-.45 1-1V5c0-.55-.45-1-1-1z\"],\n \"truck\": [\"M16 0a1 1 0 011 1v11a1 1 0 011 1v3h.5a.5.5 0 01.5.5v1a.5.5 0 01-.5.5H17v1a1 1 0 01-1 1h-1a1 1 0 01-1-1v-1H6v1a1 1 0 01-1 1H4a1 1 0 01-1-1v-1H1.5a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5H2v-3a1 1 0 011-1V1a1 1 0 112 0v3a2 2 0 012-2h6a2 2 0 012 2V1a1 1 0 011-1zm-4 10H8a1 1 0 00-1 1v4a1 1 0 001 1h4a1 1 0 001-1v-4a1 1 0 00-1-1zm-7 4H4a1 1 0 000 2h1a1 1 0 000-2zm11 0h-1a1 1 0 000 2h1a1 1 0 000-2zm-4.5 0a.5.5 0 110 1h-3l-.09-.008A.5.5 0 018.5 14zm0-1.5a.5.5 0 110 1h-3l-.09-.008a.5.5 0 01.09-.992zm0-1.5a.5.5 0 110 1h-3l-.09-.008A.5.5 0 018.5 11zM14 5H6v3h8V5z\"],\n \"two-columns\": [\"M5 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm14.71 9.29l-3-3A1.003 1.003 0 0015 7v6a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM12 0H8c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"unarchive\": [\"M16.434 0a1 1 0 01.857.486L20 5v14a1 1 0 01-1 1H1a1 1 0 01-1-1V5L2.709.486A1 1 0 013.566 0h12.868zM10 8c-.28 0-.53.11-.71.29l-3 3-.084.096A1.003 1.003 0 007.71 12.71L9 11.41v4.58l.007.116c.058.496.482.884.993.884.55 0 1-.45 1-1v-4.58l1.29 1.29.081.073c.171.139.389.227.629.227a1.003 1.003 0 00.71-1.71l-3-3-.096-.084A1.002 1.002 0 0010 8zm6-6H4L2 5.002h16L16 2z\"],\n \"underline\": [\"M10 17c3.3 0 6-2.7 6-6V3.5c0-.8-.7-1.5-1.5-1.5S13 2.7 13 3.5V11c0 1.7-1.3 3-3 3s-3-1.3-3-3V3.5C7 2.7 6.3 2 5.5 2S4 2.7 4 3.5V11c0 3.3 2.7 6 6 6zM16.5 19h-13c-.3 0-.5.2-.5.5s.2.5.5.5h13c.3 0 .5-.2.5-.5s-.2-.5-.5-.5z\"],\n \"undo\": [\"M5 14c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm9-9H3.41L5.7 2.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C.11 5.47 0 5.72 0 6c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L3.41 7H14c2.21 0 4 1.79 4 4s-1.79 4-4 4H9v2h5c3.31 0 6-2.69 6-6s-2.69-6-6-6z\"],\n \"ungroup-objects\": [\"M4.5 6C2.01 6 0 8.01 0 10.5S2.01 15 4.5 15 9 12.99 9 10.5 6.99 6 4.5 6zm11 0C13.01 6 11 8.01 11 10.5s2.01 4.5 4.5 4.5 4.5-2.01 4.5-4.5S17.99 6 15.5 6z\"],\n \"unknown-vehicle\": [\"M13 11.988v-4H4v-1l1-3h6V2.003a35.867 35.867 0 00-1-.015c-3.593 0-5.332.488-5.332.488-.67.188-1.424.864-1.674 1.503l-.004.009H3l-1 3H1a1 1 0 100 2h.333l-.28.84-.053.16v7.5a1.5 1.5 0 103 0v-.5h12v.5a1.5 1.5 0 103 0v-4.5h-5a1 1 0 01-1-1zm-8.5 1a1.5 1.5 0 110-3 1.5 1.5 0 010 3zM19.83 2.782a2.392 2.392 0 00-.592-.853c-.276-.264-.64-.485-1.09-.663C17.695 1.09 17.132 1 16.457 1c-.523 0-.996.084-1.418.253a3.157 3.157 0 00-1.084.703c-.299.3-.532.656-.698 1.065-.166.41-.254.861-.264 1.353h2.096c0-.246.028-.476.085-.69.057-.214.145-.4.264-.56.119-.16.27-.287.456-.383.185-.095.406-.143.663-.143.38 0 .677.1.89.3.215.2.321.51.321.93.01.245-.035.45-.135.614-.1.164-.23.314-.392.45a8.598 8.598 0 01-.527.41 3.53 3.53 0 00-.542.485c-.171.187-.32.412-.45.676-.127.265-.206.592-.234.984v.614h1.924v-.519c.038-.273.13-.5.278-.683.147-.182.316-.343.506-.484a13.5 13.5 0 01.606-.424c.214-.14.408-.312.584-.512s.323-.442.442-.724.178-.642.178-1.079c0-.264-.059-.548-.178-.854zm-4.54 6.099v2.103h2.237V8.881H15.29z\"],\n \"unlock\": [\"M14 1c-2.21 0-4 1.79-4 4v4H2c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-8c0-.55-.45-1-1-1h-2V5c0-1.1.9-2 2-2s2 .9 2 2v2c0 .55.45 1 1 1s1-.45 1-1V5c0-2.21-1.79-4-4-4z\"],\n \"unpin\": [\"M11.77 1.16c-.81.81-.74 2.28.02 3.76L6.1 8.71c-2.17-1.46-4.12-2-4.94-1.18l4.95 4.95-2.12 3.54 3.54-2.12 4.95 4.95c.82-.82.27-2.77-1.19-4.94l3.8-5.69c1.47.76 2.94.84 3.76.02l-7.08-7.08z\"],\n \"unresolve\": [\"M11.47 12.46c.16-.36.29-.74.38-1.14 0-.02.01-.04.01-.06.09-.4.14-.82.14-1.26 0-.44-.05-.86-.14-1.27 0-.02-.01-.04-.01-.06-.09-.4-.22-.78-.38-1.14-.01-.02-.02-.03-.02-.05a5.94 5.94 0 00-.61-1.03c0-.01-.01-.01-.01-.02a6.308 6.308 0 00-2.1-1.77c-.19-.1-.39-.18-.59-.26-.03-.01-.06-.02-.1-.03-.17-.07-.34-.12-.52-.17-.05-.01-.1-.03-.15-.04a4.34 4.34 0 00-.52-.09c-.05-.01-.11-.02-.17-.03C6.46 4.02 6.23 4 6 4c-3.31 0-6 2.69-6 6s2.69 6 6 6c.23 0 .46-.02.68-.04l.17-.03c.17-.02.34-.06.51-.09.05-.01.1-.03.15-.04.18-.05.36-.1.53-.17l.09-.03a5.973 5.973 0 002.68-2.04c0-.01.01-.01.01-.02.24-.32.44-.66.61-1.03.02-.01.03-.03.04-.05zM14 4c-.99 0-1.91.24-2.73.66a7.51 7.51 0 010 10.68c.82.42 1.74.66 2.73.66 3.31 0 6-2.69 6-6s-2.69-6-6-6z\"],\n \"updated\": [\"M10 0C6.71 0 3.82 1.6 2 4.05V2c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.76C5.22 3.17 7.47 2 10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8c0-.55-.45-1-1-1s-1 .45-1 1c0 5.52 4.48 10 10 10s10-4.48 10-10S15.52 0 10 0zm4 7c-.28 0-.53.11-.71.29L9 11.58 6.71 9.29a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29.28 0 .53-.11.71-.29l5-5A1.003 1.003 0 0014 7z\"],\n \"upload\": [\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm4 10c-.28 0-.53-.11-.71-.29L11 7.41V15c0 .55-.45 1-1 1s-1-.45-1-1V7.41l-2.29 2.3a1.003 1.003 0 01-1.42-1.42l4-4c.18-.18.43-.29.71-.29s.53.11.71.29l4 4A1.003 1.003 0 0114 10z\"],\n \"user\": [\"M10 0C4.48 0 0 4.48 0 10c0 .33.02.65.05.97.01.12.03.23.05.35.03.2.05.4.09.59.03.14.06.28.1.42l.12.48c.05.16.1.31.15.46.05.13.09.27.15.4.06.16.13.32.21.48.05.11.1.22.16.33.09.17.17.34.27.5.05.09.1.17.15.25.11.18.22.35.34.52.04.06.08.11.12.17 1.19 1.62 2.85 2.86 4.78 3.53l.09.03c.46.15.93.27 1.42.36.08.01.17.03.25.04.49.07.99.12 1.5.12s1.01-.05 1.5-.12c.08-.01.17-.02.25-.04.49-.09.96-.21 1.42-.36l.09-.03c1.93-.67 3.59-1.91 4.78-3.53.04-.05.08-.1.12-.16.12-.17.23-.35.34-.53.05-.08.1-.16.15-.25.1-.17.19-.34.27-.51.05-.11.1-.21.15-.32.07-.16.14-.32.21-.49.05-.13.1-.26.14-.39.05-.15.11-.31.15-.46.05-.16.08-.32.12-.48.03-.14.07-.28.1-.42.04-.19.06-.39.09-.59.02-.12.04-.23.05-.35.05-.32.07-.64.07-.97 0-5.52-4.48-10-10-10zm0 18a7.94 7.94 0 01-6.15-2.89c.84-.44 1.86-.82 2.67-1.19 1.45-.65 1.3-1.05 1.35-1.59.01-.07.01-.14.01-.21-.51-.45-.93-1.08-1.2-1.8l-.01-.01c0-.01-.01-.02-.01-.03a4.42 4.42 0 01-.15-.48c-.33-.07-.53-.44-.61-.79-.08-.14-.23-.48-.2-.87.05-.51.26-.74.49-.83v-.08c0-.63.06-1.55.17-2.15.02-.17.06-.33.11-.5.21-.73.66-1.4 1.26-1.86.62-.47 1.5-.72 2.28-.72.78 0 1.65.25 2.27.73.6.46 1.05 1.12 1.26 1.86.05.16.08.33.11.5.11.6.17 1.51.17 2.15v.09c.22.1.42.33.46.82.04.39-.12.73-.2.87-.07.34-.27.71-.6.78-.04.16-.09.33-.15.48 0 .01-.02.05-.02.05-.26.71-.67 1.33-1.17 1.78 0 .08.01.16.01.23.05.54-.15.94 1.31 1.59.81.36 1.84.74 2.68 1.19A7.958 7.958 0 0110 18z\"],\n \"variable\": [\"M4.93 3.79a9.1 9.1 0 012.2-2.27L7.29 1c-1.38.59-2.57 1.33-3.55 2.22C2.46 4.39 1.49 5.72.83 7.23.28 8.51 0 9.81 0 11.12c0 2.28.83 4.57 2.49 6.86l.16-.55c-.49-1.23-.73-2.38-.73-3.44 0-1.67.28-3.46.84-5.36.55-1.9 1.28-3.51 2.17-4.84zm9.38 8.39l-.33-.2c-.37.54-.65.87-.82 1a.74.74 0 01-.42.12c-.19 0-.38-.12-.57-.37-.31-.42-.73-1.59-1.26-3.5.47-.85.86-1.41 1.19-1.67.23-.19.48-.29.74-.29.1 0 .28.04.53.11.26.07.48.11.68.11.27 0 .5-.1.68-.29.18-.19.27-.44.27-.75 0-.33-.09-.58-.27-.77-.18-.19-.44-.29-.78-.29-.3 0-.59.07-.86.22s-.61.47-1.02.97c-.31.37-.77 1.02-1.37 1.94a9.683 9.683 0 00-1.24-3.14l-3.24.59-.06.36c.24-.05.44-.07.61-.07.32 0 .59.14.8.43.33.45.8 1.8 1.39 4.07-.47.64-.78 1.06-.96 1.26-.28.32-.52.53-.7.62-.14.08-.3.11-.48.11-.14 0-.36-.08-.67-.23-.21-.1-.4-.15-.57-.15-.31 0-.57.11-.78.32s-.31.48-.31.8c0 .31.09.55.28.75.19.19.44.29.76.29.31 0 .6-.07.87-.2s.61-.42 1.02-.86c.41-.44.98-1.13 1.7-2.08.28.9.52 1.56.72 1.97.2.41.44.71.7.89.26.18.59.27.99.27.38 0 .77-.14 1.17-.43.54-.36 1.07-1 1.61-1.91zM17.51 1l-.15.54c.49 1.24.73 2.39.73 3.45 0 1.43-.21 2.96-.63 4.6-.33 1.26-.75 2.45-1.27 3.55-.52 1.11-1.02 1.97-1.51 2.6-.49.62-1.09 1.2-1.8 1.72l-.17.53c1.38-.59 2.57-1.34 3.55-2.23 1.29-1.17 2.26-2.5 2.91-4 .55-1.28.83-2.59.83-3.91 0-2.27-.83-4.56-2.49-6.85z\"],\n \"vertical-bar-chart-asc\": [\"M8 7H7c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zM3 9H2c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-9c0-.55-.45-1-1-1zm10-5h-1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm5-4h-1c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"],\n \"vertical-bar-chart-desc\": [\"M3 0H2c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm5 4H7c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm5 3h-1c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm5 2h-1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-9c0-.55-.45-1-1-1z\"],\n \"vertical-distribution\": [\"M1 2h18c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1s.45 1 1 1zm2 5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1H3zm16 11H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"video\": [\"M19 2H1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zM7 14V6l6 4-6 4z\"],\n \"virus\": [\"M15.249 13.835l1.251 1.251.354-.354.087-.077a1 1 0 011.327 1.491l-2.122 2.122-.087.077a1 1 0 01-1.327-1.491l.354-.354-1.251-1.251A6.466 6.466 0 0111 16.424L10.999 18h.501a1 1 0 01.117 1.993L11.5 20h-3a1 1 0 01-.117-1.993L8.5 18h.499v-1.577a6.46 6.46 0 01-2.538-.97L5.414 16.5l.354.354a1 1 0 01-1.327 1.491l-.087-.077-2.122-2.122a1 1 0 011.327-1.491l.087.077.354.354.97-.97a6.472 6.472 0 01-1.384-3.057l-.025.002L2 11.06v.44a1 1 0 01-1.993.117L0 11.5v-3a1 1 0 011.993-.117L2 8.5v.56h1.567A6.471 6.471 0 014.97 5.883l-.971-.969-.353.354-.087.077a1 1 0 01-1.327-1.491l2.122-2.122.087-.077a1 1 0 011.327 1.491l-.354.353 1.047 1.048A6.46 6.46 0 019 3.577L9 2h-.5A1 1 0 018.383.007L8.5 0h3a1 1 0 01.117 1.993L11.5 2H11v1.577a6.466 6.466 0 012.838 1.176l.04-.046L15.086 3.5l-.353-.353a1 1 0 011.327-1.491l.087.077 2.122 2.122a1 1 0 01-1.327 1.491l-.087-.077-.354-.354-1.207 1.207-.046.041a6.467 6.467 0 011.16 2.733H18V8.5a1 1 0 011.993-.117L20 8.5v3a1 1 0 01-1.993.117L18 11.5v-.605h-1.561a6.466 6.466 0 01-1.19 2.94zM12.5 11a1.5 1.5 0 100 3 1.5 1.5 0 000-3zM8 6a2 2 0 100 4 2 2 0 000-4z\"],\n \"volume-down\": [\"M15.92 3.93l-1.6 1.18A7.948 7.948 0 0116 10c0 1.84-.63 3.54-1.68 4.89l1.6 1.18A9.878 9.878 0 0018 10c0-2.29-.78-4.39-2.08-6.07zM11 3c-.28 0-.53.11-.71.29L7.59 6H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h4.59l2.71 2.71c.17.18.42.29.7.29.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"volume-off\": [\"M14 3c-.28 0-.53.11-.71.29L10.59 6H6c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h4.59l2.71 2.71c.17.18.42.29.7.29.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"],\n \"volume-up\": [\"M9 3.43c-.28 0-.53.11-.71.29l-2.7 2.71H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h4.59l2.71 2.71a1.003 1.003 0 001.71-.71v-12c-.01-.55-.46-1-1.01-1zm8.31-1.56l-1.62 1.2C17.14 5.16 18 7.69 18 10.43s-.86 5.27-2.31 7.37l1.62 1.2C19 16.57 20 13.62 20 10.43c0-3.18-1-6.13-2.69-8.56zm-3.39 2.49l-1.6 1.18A7.948 7.948 0 0114 10.43c0 1.84-.63 3.54-1.68 4.89l1.6 1.18A9.94 9.94 0 0016 10.43c0-2.28-.78-4.38-2.08-6.07z\"],\n \"walk\": [\"M16 10h-2c-.23 0-.42-.09-.59-.21l-.01.01-1.69-1.27-.63 3.14 2.62 2.62c.19.18.3.43.3.71v4c0 .55-.45 1-1 1s-1-.45-1-1v-3.59L9.39 12.8l-2.45 6.55h-.01c-.14.38-.5.65-.93.65-.55 0-1-.45-1-1 0-.12.03-.24.07-.35h-.01L9.43 7h-2.9l-1.7 2.55-.01-.01c-.18.27-.47.46-.82.46-.55 0-1-.45-1-1 0-.21.08-.39.18-.54l-.01-.01 2-3 .02.01C5.36 5.19 5.65 5 6 5h4.18l.36-.96c-.33-.43-.54-.96-.54-1.54a2.5 2.5 0 015 0A2.5 2.5 0 0112.5 5c-.06 0-.12-.01-.18-.02l-.44 1.18L14.33 8H16c.55 0 1 .45 1 1s-.45 1-1 1z\"],\n \"warning-sign\": [\"M19.86 17.52l.01-.01-9-16-.01.01C10.69 1.21 10.37 1 10 1s-.69.21-.86.52l-.01-.01-9 16 .01.01c-.08.14-.14.3-.14.48 0 .55.45 1 1 1h18c.55 0 1-.45 1-1 0-.18-.06-.34-.14-.48zM11 17H9v-2h2v2zm0-3H9V6h2v8z\"],\n \"waterfall-chart\": [\"M13 7h2c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm-9 8h1c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm4-6h2c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm11-5h-1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm0 12H2V3c0-.55-.45-1-1-1s-1 .45-1 1v14a.998.998 0 001 1h18c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"widget\": [\"M18 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM2 16c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm15-1h2V5h-2v10zM3 5H1v10h2V5zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm3 3h10V1H5v2zm13 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM5 19h10v-2H5v2z\"],\n \"widget-button\": [\"M1 4h18c.55 0 1 .45 1 1v10c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1zm1 2v8h16V6H2zm4 5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm4 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm4 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"],\n \"widget-footer\": [\"M17 0H3c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H4v-4h12v4zm0-5H4V2h12v11z\"],\n \"widget-header\": [\"M17 0H3c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H4V7h12v11zm0-12H4V2h12v4z\"],\n \"wrench\": [\"M19.8 4.44L16.13 8.1l-3.55-.71-.71-3.53L15.54.21c-2.01-.53-4.23-.03-5.8 1.53-1.86 1.85-2.23 4.6-1.14 6.83L.59 16.59C.22 16.95 0 17.45 0 18a2 2 0 002 2c.55 0 1.05-.22 1.41-.59l8.03-8.04c2.23 1.05 4.97.67 6.82-1.16 1.57-1.56 2.07-3.77 1.54-5.77z\"],\n \"zoom-in\": [\"M19.56 17.44l-4.94-4.94A8.004 8.004 0 0016 8c0-4.42-3.58-8-8-8S0 3.58 0 8s3.58 8 8 8c1.67 0 3.21-.51 4.5-1.38l4.94 4.94a1.498 1.498 0 102.12-2.12zM8 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm3-7H9V5c0-.55-.45-1-1-1s-1 .45-1 1v2H5c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V9h2c.55 0 1-.45 1-1s-.45-1-1-1z\"],\n \"zoom-out\": [\"M11 7H5c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1zm8.56 10.44l-4.94-4.94A8.004 8.004 0 0016 8c0-4.42-3.58-8-8-8S0 3.58 0 8s3.58 8 8 8c1.67 0 3.21-.51 4.5-1.38l4.94 4.94a1.498 1.498 0 102.12-2.12zM8 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\"],\n \"zoom-to-fit\": [\"M1 7c.55 0 1-.45 1-1V2h4c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v5c0 .55.45 1 1 1zm5 1a1.003 1.003 0 00-1.71-.71l-2 2c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L4.41 10 5.7 8.71c.19-.18.3-.43.3-.71zm2-2c.28 0 .53-.11.71-.29L10 4.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-2-2C10.53 2.11 10.28 2 10 2s-.53.11-.71.29l-2 2A1.003 1.003 0 008 6zM6 18H2v-4c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm8-6a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l1.3 1.29-1.29 1.29c-.19.18-.3.43-.3.71zm5-12h-5c-.55 0-1 .45-1 1s.45 1 1 1h4v4c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm-7 14c-.28 0-.53.11-.71.29L10 15.59 8.71 14.3A.965.965 0 008 14a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 0012 14zm7-1c-.55 0-1 .45-1 1v4h-4c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1z\"]\n};","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends, __rest } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { IconSvgPaths16, IconSvgPaths20 } from \"@blueprintjs/icons\";\nimport { AbstractPureComponent2, Classes, DISPLAYNAME_PREFIX } from \"../../common\";\n\nvar Icon =\n/** @class */\nfunction (_super) {\n __extends(Icon, _super);\n\n function Icon() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Icon_1 = Icon;\n\n Icon.prototype.render = function () {\n var icon = this.props.icon;\n\n if (icon == null || typeof icon === \"boolean\") {\n return null;\n } else if (typeof icon !== \"string\") {\n return icon;\n }\n\n var _a = this.props,\n className = _a.className,\n color = _a.color,\n htmlTitle = _a.htmlTitle,\n _b = _a.iconSize,\n iconSize = _b === void 0 ? Icon_1.SIZE_STANDARD : _b,\n intent = _a.intent,\n _c = _a.title,\n title = _c === void 0 ? icon : _c,\n _d = _a.tagName,\n tagName = _d === void 0 ? \"span\" : _d,\n htmlprops = __rest(_a, [\"className\", \"color\", \"htmlTitle\", \"iconSize\", \"intent\", \"title\", \"tagName\"]); // choose which pixel grid is most appropriate for given icon size\n\n\n var pixelGridSize = iconSize >= Icon_1.SIZE_LARGE ? Icon_1.SIZE_LARGE : Icon_1.SIZE_STANDARD; // render path elements, or nothing if icon name is unknown.\n\n var paths = this.renderSvgPaths(pixelGridSize, icon);\n var classes = classNames(Classes.ICON, Classes.iconClass(icon), Classes.intentClass(intent), className);\n var viewBox = \"0 0 \" + pixelGridSize + \" \" + pixelGridSize;\n return React.createElement(tagName, __assign(__assign({}, htmlprops), {\n className: classes,\n title: htmlTitle\n }), React.createElement(\"svg\", {\n fill: color,\n \"data-icon\": icon,\n width: iconSize,\n height: iconSize,\n viewBox: viewBox\n }, title && React.createElement(\"desc\", null, title), paths));\n };\n /** Render `` elements for the given icon name. Returns `null` if name is unknown. */\n\n\n Icon.prototype.renderSvgPaths = function (pathsSize, iconName) {\n var svgPathsRecord = pathsSize === Icon_1.SIZE_STANDARD ? IconSvgPaths16 : IconSvgPaths20;\n var pathStrings = svgPathsRecord[iconName];\n\n if (pathStrings == null) {\n return null;\n }\n\n return pathStrings.map(function (d, i) {\n return React.createElement(\"path\", {\n key: i,\n d: d,\n fillRule: \"evenodd\"\n });\n });\n };\n\n var Icon_1;\n Icon.displayName = DISPLAYNAME_PREFIX + \".Icon\";\n Icon.SIZE_STANDARD = 16;\n Icon.SIZE_LARGE = 20;\n Icon = Icon_1 = __decorate([polyfill], Icon);\n return Icon;\n}(AbstractPureComponent2);\n\nexport { Icon };","import unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o) {\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = unsupportedIterableToArray(o))) {\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var it,\n normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","/** @license zlib.js 2012 - imaya [ https://github.com/imaya/zlib.js ] The MIT License */\nvar mod = {},\n l = void 0,\n aa = mod;\n\nfunction r(c, d) {\n var a = c.split(\".\"),\n b = aa;\n !(a[0] in b) && b.execScript && b.execScript(\"var \" + a[0]);\n\n for (var e; a.length && (e = a.shift());) {\n !a.length && d !== l ? b[e] = d : b = b[e] ? b[e] : b[e] = {};\n }\n}\n\n;\nvar t = \"undefined\" !== typeof Uint8Array && \"undefined\" !== typeof Uint16Array && \"undefined\" !== typeof Uint32Array && \"undefined\" !== typeof DataView;\n\nfunction v(c) {\n var d = c.length,\n a = 0,\n b = Number.POSITIVE_INFINITY,\n e,\n f,\n g,\n h,\n k,\n m,\n n,\n p,\n s,\n x;\n\n for (p = 0; p < d; ++p) {\n c[p] > a && (a = c[p]), c[p] < b && (b = c[p]);\n }\n\n e = 1 << a;\n f = new (t ? Uint32Array : Array)(e);\n g = 1;\n h = 0;\n\n for (k = 2; g <= a;) {\n for (p = 0; p < d; ++p) {\n if (c[p] === g) {\n m = 0;\n n = h;\n\n for (s = 0; s < g; ++s) {\n m = m << 1 | n & 1, n >>= 1;\n }\n\n x = g << 16 | p;\n\n for (s = m; s < e; s += k) {\n f[s] = x;\n }\n\n ++h;\n }\n }\n\n ++g;\n h <<= 1;\n k <<= 1;\n }\n\n return [f, a, b];\n}\n\n;\n\nfunction w(c, d) {\n this.g = [];\n this.h = 32768;\n this.d = this.f = this.a = this.l = 0;\n this.input = t ? new Uint8Array(c) : c;\n this.m = !1;\n this.i = y;\n this.r = !1;\n if (d || !(d = {})) d.index && (this.a = d.index), d.bufferSize && (this.h = d.bufferSize), d.bufferType && (this.i = d.bufferType), d.resize && (this.r = d.resize);\n\n switch (this.i) {\n case A:\n this.b = 32768;\n this.c = new (t ? Uint8Array : Array)(32768 + this.h + 258);\n break;\n\n case y:\n this.b = 0;\n this.c = new (t ? Uint8Array : Array)(this.h);\n this.e = this.z;\n this.n = this.v;\n this.j = this.w;\n break;\n\n default:\n throw Error(\"invalid inflate mode\");\n }\n}\n\nvar A = 0,\n y = 1,\n B = {\n t: A,\n s: y\n};\n\nw.prototype.k = function () {\n for (; !this.m;) {\n var c = C(this, 3);\n c & 1 && (this.m = !0);\n c >>>= 1;\n\n switch (c) {\n case 0:\n var d = this.input,\n a = this.a,\n b = this.c,\n e = this.b,\n f = d.length,\n g = l,\n h = l,\n k = b.length,\n m = l;\n this.d = this.f = 0;\n if (a + 1 >= f) throw Error(\"invalid uncompressed block header: LEN\");\n g = d[a++] | d[a++] << 8;\n if (a + 1 >= f) throw Error(\"invalid uncompressed block header: NLEN\");\n h = d[a++] | d[a++] << 8;\n if (g === ~h) throw Error(\"invalid uncompressed block header: length verify\");\n if (a + g > d.length) throw Error(\"input buffer is broken\");\n\n switch (this.i) {\n case A:\n for (; e + g > b.length;) {\n m = k - e;\n g -= m;\n if (t) b.set(d.subarray(a, a + m), e), e += m, a += m;else for (; m--;) {\n b[e++] = d[a++];\n }\n this.b = e;\n b = this.e();\n e = this.b;\n }\n\n break;\n\n case y:\n for (; e + g > b.length;) {\n b = this.e({\n p: 2\n });\n }\n\n break;\n\n default:\n throw Error(\"invalid inflate mode\");\n }\n\n if (t) b.set(d.subarray(a, a + g), e), e += g, a += g;else for (; g--;) {\n b[e++] = d[a++];\n }\n this.a = a;\n this.b = e;\n this.c = b;\n break;\n\n case 1:\n this.j(ba, ca);\n break;\n\n case 2:\n for (var n = C(this, 5) + 257, p = C(this, 5) + 1, s = C(this, 4) + 4, x = new (t ? Uint8Array : Array)(D.length), S = l, T = l, U = l, u = l, M = l, F = l, z = l, q = l, V = l, q = 0; q < s; ++q) {\n x[D[q]] = C(this, 3);\n }\n\n if (!t) {\n q = s;\n\n for (s = x.length; q < s; ++q) {\n x[D[q]] = 0;\n }\n }\n\n S = v(x);\n u = new (t ? Uint8Array : Array)(n + p);\n q = 0;\n\n for (V = n + p; q < V;) {\n switch (M = E(this, S), M) {\n case 16:\n for (z = 3 + C(this, 2); z--;) {\n u[q++] = F;\n }\n\n break;\n\n case 17:\n for (z = 3 + C(this, 3); z--;) {\n u[q++] = 0;\n }\n\n F = 0;\n break;\n\n case 18:\n for (z = 11 + C(this, 7); z--;) {\n u[q++] = 0;\n }\n\n F = 0;\n break;\n\n default:\n F = u[q++] = M;\n }\n }\n\n T = t ? v(u.subarray(0, n)) : v(u.slice(0, n));\n U = t ? v(u.subarray(n)) : v(u.slice(n));\n this.j(T, U);\n break;\n\n default:\n throw Error(\"unknown BTYPE: \" + c);\n }\n }\n\n return this.n();\n};\n\nvar G = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15],\n D = t ? new Uint16Array(G) : G,\n H = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 258, 258],\n I = t ? new Uint16Array(H) : H,\n J = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0],\n K = t ? new Uint8Array(J) : J,\n L = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577],\n da = t ? new Uint16Array(L) : L,\n ea = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13],\n N = t ? new Uint8Array(ea) : ea,\n O = new (t ? Uint8Array : Array)(288),\n P,\n fa;\nP = 0;\n\nfor (fa = O.length; P < fa; ++P) {\n O[P] = 143 >= P ? 8 : 255 >= P ? 9 : 279 >= P ? 7 : 8;\n}\n\nvar ba = v(O),\n Q = new (t ? Uint8Array : Array)(30),\n R,\n ga;\nR = 0;\n\nfor (ga = Q.length; R < ga; ++R) {\n Q[R] = 5;\n}\n\nvar ca = v(Q);\n\nfunction C(c, d) {\n for (var a = c.f, b = c.d, e = c.input, f = c.a, g = e.length, h; b < d;) {\n if (f >= g) throw Error(\"input buffer is broken\");\n a |= e[f++] << b;\n b += 8;\n }\n\n h = a & (1 << d) - 1;\n c.f = a >>> d;\n c.d = b - d;\n c.a = f;\n return h;\n}\n\nfunction E(c, d) {\n for (var a = c.f, b = c.d, e = c.input, f = c.a, g = e.length, h = d[0], k = d[1], m, n; b < k && !(f >= g);) {\n a |= e[f++] << b, b += 8;\n }\n\n m = h[a & (1 << k) - 1];\n n = m >>> 16;\n if (n > b) throw Error(\"invalid code length: \" + n);\n c.f = a >> n;\n c.d = b - n;\n c.a = f;\n return m & 65535;\n}\n\nw.prototype.j = function (c, d) {\n var a = this.c,\n b = this.b;\n this.o = c;\n\n for (var e = a.length - 258, f, g, h, k; 256 !== (f = E(this, c));) {\n if (256 > f) b >= e && (this.b = b, a = this.e(), b = this.b), a[b++] = f;else {\n g = f - 257;\n k = I[g];\n 0 < K[g] && (k += C(this, K[g]));\n f = E(this, d);\n h = da[f];\n 0 < N[f] && (h += C(this, N[f]));\n b >= e && (this.b = b, a = this.e(), b = this.b);\n\n for (; k--;) {\n a[b] = a[b++ - h];\n }\n }\n }\n\n for (; 8 <= this.d;) {\n this.d -= 8, this.a--;\n }\n\n this.b = b;\n};\n\nw.prototype.w = function (c, d) {\n var a = this.c,\n b = this.b;\n this.o = c;\n\n for (var e = a.length, f, g, h, k; 256 !== (f = E(this, c));) {\n if (256 > f) b >= e && (a = this.e(), e = a.length), a[b++] = f;else {\n g = f - 257;\n k = I[g];\n 0 < K[g] && (k += C(this, K[g]));\n f = E(this, d);\n h = da[f];\n 0 < N[f] && (h += C(this, N[f]));\n b + k > e && (a = this.e(), e = a.length);\n\n for (; k--;) {\n a[b] = a[b++ - h];\n }\n }\n }\n\n for (; 8 <= this.d;) {\n this.d -= 8, this.a--;\n }\n\n this.b = b;\n};\n\nw.prototype.e = function () {\n var c = new (t ? Uint8Array : Array)(this.b - 32768),\n d = this.b - 32768,\n a,\n b,\n e = this.c;\n if (t) c.set(e.subarray(32768, c.length));else {\n a = 0;\n\n for (b = c.length; a < b; ++a) {\n c[a] = e[a + 32768];\n }\n }\n this.g.push(c);\n this.l += c.length;\n if (t) e.set(e.subarray(d, d + 32768));else for (a = 0; 32768 > a; ++a) {\n e[a] = e[d + a];\n }\n this.b = 32768;\n return e;\n};\n\nw.prototype.z = function (c) {\n var d,\n a = this.input.length / this.a + 1 | 0,\n b,\n e,\n f,\n g = this.input,\n h = this.c;\n c && (\"number\" === typeof c.p && (a = c.p), \"number\" === typeof c.u && (a += c.u));\n 2 > a ? (b = (g.length - this.a) / this.o[2], f = 258 * (b / 2) | 0, e = f < h.length ? h.length + f : h.length << 1) : e = h.length * a;\n t ? (d = new Uint8Array(e), d.set(h)) : d = h;\n return this.c = d;\n};\n\nw.prototype.n = function () {\n var c = 0,\n d = this.c,\n a = this.g,\n b,\n e = new (t ? Uint8Array : Array)(this.l + (this.b - 32768)),\n f,\n g,\n h,\n k;\n if (0 === a.length) return t ? this.c.subarray(32768, this.b) : this.c.slice(32768, this.b);\n f = 0;\n\n for (g = a.length; f < g; ++f) {\n b = a[f];\n h = 0;\n\n for (k = b.length; h < k; ++h) {\n e[c++] = b[h];\n }\n }\n\n f = 32768;\n\n for (g = this.b; f < g; ++f) {\n e[c++] = d[f];\n }\n\n this.g = [];\n return this.buffer = e;\n};\n\nw.prototype.v = function () {\n var c,\n d = this.b;\n t ? this.r ? (c = new Uint8Array(d), c.set(this.c.subarray(0, d))) : c = this.c.subarray(0, d) : (this.c.length > d && (this.c.length = d), c = this.c);\n return this.buffer = c;\n};\n\nfunction W(c, d) {\n var a, b;\n this.input = c;\n this.a = 0;\n if (d || !(d = {})) d.index && (this.a = d.index), d.verify && (this.A = d.verify);\n a = c[this.a++];\n b = c[this.a++];\n\n switch (a & 15) {\n case ha:\n this.method = ha;\n break;\n\n default:\n throw Error(\"unsupported compression method\");\n }\n\n if (0 !== ((a << 8) + b) % 31) throw Error(\"invalid fcheck flag:\" + ((a << 8) + b) % 31);\n if (b & 32) throw Error(\"fdict flag is not supported\");\n this.q = new w(c, {\n index: this.a,\n bufferSize: d.bufferSize,\n bufferType: d.bufferType,\n resize: d.resize\n });\n}\n\nW.prototype.k = function () {\n var c = this.input,\n d,\n a;\n d = this.q.k();\n this.a = this.q.a;\n\n if (this.A) {\n a = (c[this.a++] << 24 | c[this.a++] << 16 | c[this.a++] << 8 | c[this.a++]) >>> 0;\n var b = d;\n\n if (\"string\" === typeof b) {\n var e = b.split(\"\"),\n f,\n g;\n f = 0;\n\n for (g = e.length; f < g; f++) {\n e[f] = (e[f].charCodeAt(0) & 255) >>> 0;\n }\n\n b = e;\n }\n\n for (var h = 1, k = 0, m = b.length, n, p = 0; 0 < m;) {\n n = 1024 < m ? 1024 : m;\n m -= n;\n\n do {\n h += b[p++], k += h;\n } while (--n);\n\n h %= 65521;\n k %= 65521;\n }\n\n if (a !== (k << 16 | h) >>> 0) throw Error(\"invalid adler-32 checksum\");\n }\n\n return d;\n};\n\nvar ha = 8;\nr(\"Zlib.Inflate\", W);\nr(\"Zlib.Inflate.prototype.decompress\", W.prototype.k);\nvar X = {\n ADAPTIVE: B.s,\n BLOCK: B.t\n},\n Y,\n Z,\n $,\n ia;\nif (Object.keys) Y = Object.keys(X);else for (Z in Y = [], $ = 0, X) {\n Y[$++] = Z;\n}\n$ = 0;\n\nfor (ia = Y.length; $ < ia; ++$) {\n Z = Y[$], r(\"Zlib.Inflate.BufferType.\" + Z, X[Z]);\n}\n\nvar Zlib = mod.Zlib;\nexport { Zlib };","/**\n * @author renej\n * NURBS utils\n *\n * See NURBSCurve and NURBSSurface.\n *\n **/\nimport { Vector3, Vector4 } from \"../../../build/three.module.js\";\n/**************************************************************\n *\tNURBS Utils\n **************************************************************/\n\nvar NURBSUtils = {\n /*\n Finds knot vector span.\n \tp : degree\n u : parametric value\n U : knot vector\n \treturns the span\n */\n findSpan: function findSpan(p, u, U) {\n var n = U.length - p - 1;\n\n if (u >= U[n]) {\n return n - 1;\n }\n\n if (u <= U[p]) {\n return p;\n }\n\n var low = p;\n var high = n;\n var mid = Math.floor((low + high) / 2);\n\n while (u < U[mid] || u >= U[mid + 1]) {\n if (u < U[mid]) {\n high = mid;\n } else {\n low = mid;\n }\n\n mid = Math.floor((low + high) / 2);\n }\n\n return mid;\n },\n\n /*\n Calculate basis functions. See The NURBS Book, page 70, algorithm A2.2\n \tspan : span in which u lies\n u : parametric point\n p : degree\n U : knot vector\n \treturns array[p+1] with basis functions values.\n */\n calcBasisFunctions: function calcBasisFunctions(span, u, p, U) {\n var N = [];\n var left = [];\n var right = [];\n N[0] = 1.0;\n\n for (var j = 1; j <= p; ++j) {\n left[j] = u - U[span + 1 - j];\n right[j] = U[span + j] - u;\n var saved = 0.0;\n\n for (var r = 0; r < j; ++r) {\n var rv = right[r + 1];\n var lv = left[j - r];\n var temp = N[r] / (rv + lv);\n N[r] = saved + rv * temp;\n saved = lv * temp;\n }\n\n N[j] = saved;\n }\n\n return N;\n },\n\n /*\n Calculate B-Spline curve points. See The NURBS Book, page 82, algorithm A3.1.\n \tp : degree of B-Spline\n U : knot vector\n P : control points (x, y, z, w)\n u : parametric point\n \treturns point for given u\n */\n calcBSplinePoint: function calcBSplinePoint(p, U, P, u) {\n var span = this.findSpan(p, u, U);\n var N = this.calcBasisFunctions(span, u, p, U);\n var C = new Vector4(0, 0, 0, 0);\n\n for (var j = 0; j <= p; ++j) {\n var point = P[span - p + j];\n var Nj = N[j];\n var wNj = point.w * Nj;\n C.x += point.x * wNj;\n C.y += point.y * wNj;\n C.z += point.z * wNj;\n C.w += point.w * Nj;\n }\n\n return C;\n },\n\n /*\n Calculate basis functions derivatives. See The NURBS Book, page 72, algorithm A2.3.\n \tspan : span in which u lies\n u : parametric point\n p : degree\n n : number of derivatives to calculate\n U : knot vector\n \treturns array[n+1][p+1] with basis functions derivatives\n */\n calcBasisFunctionDerivatives: function calcBasisFunctionDerivatives(span, u, p, n, U) {\n var zeroArr = [];\n\n for (var i = 0; i <= p; ++i) {\n zeroArr[i] = 0.0;\n }\n\n var ders = [];\n\n for (var i = 0; i <= n; ++i) {\n ders[i] = zeroArr.slice(0);\n }\n\n var ndu = [];\n\n for (var i = 0; i <= p; ++i) {\n ndu[i] = zeroArr.slice(0);\n }\n\n ndu[0][0] = 1.0;\n var left = zeroArr.slice(0);\n var right = zeroArr.slice(0);\n\n for (var j = 1; j <= p; ++j) {\n left[j] = u - U[span + 1 - j];\n right[j] = U[span + j] - u;\n var saved = 0.0;\n\n for (var r = 0; r < j; ++r) {\n var rv = right[r + 1];\n var lv = left[j - r];\n ndu[j][r] = rv + lv;\n var temp = ndu[r][j - 1] / ndu[j][r];\n ndu[r][j] = saved + rv * temp;\n saved = lv * temp;\n }\n\n ndu[j][j] = saved;\n }\n\n for (var j = 0; j <= p; ++j) {\n ders[0][j] = ndu[j][p];\n }\n\n for (var r = 0; r <= p; ++r) {\n var s1 = 0;\n var s2 = 1;\n var a = [];\n\n for (var i = 0; i <= p; ++i) {\n a[i] = zeroArr.slice(0);\n }\n\n a[0][0] = 1.0;\n\n for (var k = 1; k <= n; ++k) {\n var d = 0.0;\n var rk = r - k;\n var pk = p - k;\n\n if (r >= k) {\n a[s2][0] = a[s1][0] / ndu[pk + 1][rk];\n d = a[s2][0] * ndu[rk][pk];\n }\n\n var j1 = rk >= -1 ? 1 : -rk;\n var j2 = r - 1 <= pk ? k - 1 : p - r;\n\n for (var j = j1; j <= j2; ++j) {\n a[s2][j] = (a[s1][j] - a[s1][j - 1]) / ndu[pk + 1][rk + j];\n d += a[s2][j] * ndu[rk + j][pk];\n }\n\n if (r <= pk) {\n a[s2][k] = -a[s1][k - 1] / ndu[pk + 1][r];\n d += a[s2][k] * ndu[r][pk];\n }\n\n ders[k][r] = d;\n var j = s1;\n s1 = s2;\n s2 = j;\n }\n }\n\n var r = p;\n\n for (var k = 1; k <= n; ++k) {\n for (var j = 0; j <= p; ++j) {\n ders[k][j] *= r;\n }\n\n r *= p - k;\n }\n\n return ders;\n },\n\n /*\n \tCalculate derivatives of a B-Spline. See The NURBS Book, page 93, algorithm A3.2.\n \t\tp : degree\n \tU : knot vector\n \tP : control points\n \tu : Parametric points\n \tnd : number of derivatives\n \t\treturns array[d+1] with derivatives\n \t*/\n calcBSplineDerivatives: function calcBSplineDerivatives(p, U, P, u, nd) {\n var du = nd < p ? nd : p;\n var CK = [];\n var span = this.findSpan(p, u, U);\n var nders = this.calcBasisFunctionDerivatives(span, u, p, du, U);\n var Pw = [];\n\n for (var i = 0; i < P.length; ++i) {\n var point = P[i].clone();\n var w = point.w;\n point.x *= w;\n point.y *= w;\n point.z *= w;\n Pw[i] = point;\n }\n\n for (var k = 0; k <= du; ++k) {\n var point = Pw[span - p].clone().multiplyScalar(nders[k][0]);\n\n for (var j = 1; j <= p; ++j) {\n point.add(Pw[span - p + j].clone().multiplyScalar(nders[k][j]));\n }\n\n CK[k] = point;\n }\n\n for (var k = du + 1; k <= nd + 1; ++k) {\n CK[k] = new Vector4(0, 0, 0);\n }\n\n return CK;\n },\n\n /*\n Calculate \"K over I\"\n \treturns k!/(i!(k-i)!)\n */\n calcKoverI: function calcKoverI(k, i) {\n var nom = 1;\n\n for (var j = 2; j <= k; ++j) {\n nom *= j;\n }\n\n var denom = 1;\n\n for (var j = 2; j <= i; ++j) {\n denom *= j;\n }\n\n for (var j = 2; j <= k - i; ++j) {\n denom *= j;\n }\n\n return nom / denom;\n },\n\n /*\n Calculate derivatives (0-nd) of rational curve. See The NURBS Book, page 127, algorithm A4.2.\n \tPders : result of function calcBSplineDerivatives\n \treturns array with derivatives for rational curve.\n */\n calcRationalCurveDerivatives: function calcRationalCurveDerivatives(Pders) {\n var nd = Pders.length;\n var Aders = [];\n var wders = [];\n\n for (var i = 0; i < nd; ++i) {\n var point = Pders[i];\n Aders[i] = new Vector3(point.x, point.y, point.z);\n wders[i] = point.w;\n }\n\n var CK = [];\n\n for (var k = 0; k < nd; ++k) {\n var v = Aders[k].clone();\n\n for (var i = 1; i <= k; ++i) {\n v.sub(CK[k - i].clone().multiplyScalar(this.calcKoverI(k, i) * wders[i]));\n }\n\n CK[k] = v.divideScalar(wders[0]);\n }\n\n return CK;\n },\n\n /*\n Calculate NURBS curve derivatives. See The NURBS Book, page 127, algorithm A4.2.\n \tp : degree\n U : knot vector\n P : control points in homogeneous space\n u : parametric points\n nd : number of derivatives\n \treturns array with derivatives.\n */\n calcNURBSDerivatives: function calcNURBSDerivatives(p, U, P, u, nd) {\n var Pders = this.calcBSplineDerivatives(p, U, P, u, nd);\n return this.calcRationalCurveDerivatives(Pders);\n },\n\n /*\n Calculate rational B-Spline surface point. See The NURBS Book, page 134, algorithm A4.3.\n \tp1, p2 : degrees of B-Spline surface\n U1, U2 : knot vectors\n P : control points (x, y, z, w)\n u, v : parametric values\n \treturns point for given (u, v)\n */\n calcSurfacePoint: function calcSurfacePoint(p, q, U, V, P, u, v, target) {\n var uspan = this.findSpan(p, u, U);\n var vspan = this.findSpan(q, v, V);\n var Nu = this.calcBasisFunctions(uspan, u, p, U);\n var Nv = this.calcBasisFunctions(vspan, v, q, V);\n var temp = [];\n\n for (var l = 0; l <= q; ++l) {\n temp[l] = new Vector4(0, 0, 0, 0);\n\n for (var k = 0; k <= p; ++k) {\n var point = P[uspan - p + k][vspan - q + l].clone();\n var w = point.w;\n point.x *= w;\n point.y *= w;\n point.z *= w;\n temp[l].add(point.multiplyScalar(Nu[k]));\n }\n }\n\n var Sw = new Vector4(0, 0, 0, 0);\n\n for (var l = 0; l <= q; ++l) {\n Sw.add(temp[l].multiplyScalar(Nv[l]));\n }\n\n Sw.divideScalar(Sw.w);\n target.set(Sw.x, Sw.y, Sw.z);\n }\n};\nexport { NURBSUtils };","/**\n * @author renej\n * NURBS curve object\n *\n * Derives from Curve, overriding getPoint and getTangent.\n *\n * Implementation is based on (x, y [, z=0 [, w=1]]) control points with w=weight.\n *\n **/\nimport { Curve, Vector3, Vector4 } from \"../../../build/three.module.js\";\nimport { NURBSUtils } from \"../curves/NURBSUtils.js\";\n/**************************************************************\n *\tNURBS curve\n **************************************************************/\n\nvar NURBSCurve = function NURBSCurve(degree, knots\n/* array of reals */\n, controlPoints\n/* array of Vector(2|3|4) */\n, startKnot\n/* index in knots */\n, endKnot\n/* index in knots */\n) {\n Curve.call(this);\n this.degree = degree;\n this.knots = knots;\n this.controlPoints = []; // Used by periodic NURBS to remove hidden spans\n\n this.startKnot = startKnot || 0;\n this.endKnot = endKnot || this.knots.length - 1;\n\n for (var i = 0; i < controlPoints.length; ++i) {\n // ensure Vector4 for control points\n var point = controlPoints[i];\n this.controlPoints[i] = new Vector4(point.x, point.y, point.z, point.w);\n }\n};\n\nNURBSCurve.prototype = Object.create(Curve.prototype);\nNURBSCurve.prototype.constructor = NURBSCurve;\n\nNURBSCurve.prototype.getPoint = function (t) {\n var u = this.knots[this.startKnot] + t * (this.knots[this.endKnot] - this.knots[this.startKnot]); // linear mapping t->u\n // following results in (wx, wy, wz, w) homogeneous point\n\n var hpoint = NURBSUtils.calcBSplinePoint(this.degree, this.knots, this.controlPoints, u);\n\n if (hpoint.w != 1.0) {\n // project to 3D space: (wx, wy, wz, w) -> (x, y, z, 1)\n hpoint.divideScalar(hpoint.w);\n }\n\n return new Vector3(hpoint.x, hpoint.y, hpoint.z);\n};\n\nNURBSCurve.prototype.getTangent = function (t) {\n var u = this.knots[0] + t * (this.knots[this.knots.length - 1] - this.knots[0]);\n var ders = NURBSUtils.calcNURBSDerivatives(this.degree, this.knots, this.controlPoints, u, 1);\n var tangent = ders[1].clone();\n tangent.normalize();\n return tangent;\n};\n\nexport { NURBSCurve };","/**\n * @author Kyle-Larson https://github.com/Kyle-Larson\n * @author Takahiro https://github.com/takahirox\n * @author Lewy Blue https://github.com/looeee\n *\n * Loader loads FBX file and generates Group representing FBX scene.\n * Requires FBX file to be >= 7.0 and in ASCII or >= 6400 in Binary format\n * Versions lower than this may load but will probably have errors\n *\n * Needs Support:\n * Morph normals / blend shape normals\n *\n * FBX format references:\n * \thttps://wiki.blender.org/index.php/User:Mont29/Foundation/FBX_File_Structure\n * \thttp://help.autodesk.com/view/FBX/2017/ENU/?guid=__cpp_ref_index_html (C++ SDK reference)\n *\n * \tBinary format specification:\n *\t\thttps://code.blender.org/2013/08/fbx-binary-file-format-specification/\n */\nimport { AmbientLight, AnimationClip, Bone, BufferAttribute, BufferGeometry, ClampToEdgeWrapping, Color, DirectionalLight, EquirectangularReflectionMapping, Euler, FileLoader, Float32BufferAttribute, Group, Line, LineBasicMaterial, Loader, LoaderUtils, Math as _Math, Matrix3, Matrix4, Mesh, MeshLambertMaterial, MeshPhongMaterial, NumberKeyframeTrack, Object3D, OrthographicCamera, PerspectiveCamera, PointLight, PropertyBinding, Quaternion, QuaternionKeyframeTrack, RepeatWrapping, Skeleton, SkinnedMesh, SpotLight, Texture, TextureLoader, Uint16BufferAttribute, Vector3, Vector4, VectorKeyframeTrack, VertexColors, sRGBEncoding } from \"../../../build/three.module.js\";\nimport { Zlib } from \"../libs/inflate.module.min.js\";\nimport { NURBSCurve } from \"../curves/NURBSCurve.js\";\n\nvar FBXLoader = function () {\n var fbxTree;\n var connections;\n var sceneGraph;\n\n function FBXLoader(manager) {\n Loader.call(this, manager);\n }\n\n FBXLoader.prototype = Object.assign(Object.create(Loader.prototype), {\n constructor: FBXLoader,\n load: function load(url, onLoad, onProgress, onError) {\n var self = this;\n var path = self.path === '' ? LoaderUtils.extractUrlBase(url) : self.path;\n var loader = new FileLoader(this.manager);\n loader.setPath(self.path);\n loader.setResponseType('arraybuffer');\n loader.load(url, function (buffer) {\n try {\n onLoad(self.parse(buffer, path));\n } catch (error) {\n setTimeout(function () {\n if (onError) onError(error);\n self.manager.itemError(url);\n }, 0);\n }\n }, onProgress, onError);\n },\n parse: function parse(FBXBuffer, path) {\n if (isFbxFormatBinary(FBXBuffer)) {\n fbxTree = new BinaryParser().parse(FBXBuffer);\n } else {\n var FBXText = convertArrayBufferToString(FBXBuffer);\n\n if (!isFbxFormatASCII(FBXText)) {\n throw new Error('THREE.FBXLoader: Unknown format.');\n }\n\n if (getFbxVersion(FBXText) < 7000) {\n throw new Error('THREE.FBXLoader: FBX version not supported, FileVersion: ' + getFbxVersion(FBXText));\n }\n\n fbxTree = new TextParser().parse(FBXText);\n } // console.log( fbxTree );\n\n\n var textureLoader = new TextureLoader(this.manager).setPath(this.resourcePath || path).setCrossOrigin(this.crossOrigin);\n return new FBXTreeParser(textureLoader, this.manager).parse(fbxTree);\n }\n }); // Parse the FBXTree object returned by the BinaryParser or TextParser and return a Group\n\n function FBXTreeParser(textureLoader, manager) {\n this.textureLoader = textureLoader;\n this.manager = manager;\n }\n\n FBXTreeParser.prototype = {\n constructor: FBXTreeParser,\n parse: function parse() {\n connections = this.parseConnections();\n var images = this.parseImages();\n var textures = this.parseTextures(images);\n var materials = this.parseMaterials(textures);\n var deformers = this.parseDeformers();\n var geometryMap = new GeometryParser().parse(deformers);\n this.parseScene(deformers, geometryMap, materials);\n return sceneGraph;\n },\n // Parses FBXTree.Connections which holds parent-child connections between objects (e.g. material -> texture, model->geometry )\n // and details the connection type\n parseConnections: function parseConnections() {\n var connectionMap = new Map();\n\n if ('Connections' in fbxTree) {\n var rawConnections = fbxTree.Connections.connections;\n rawConnections.forEach(function (rawConnection) {\n var fromID = rawConnection[0];\n var toID = rawConnection[1];\n var relationship = rawConnection[2];\n\n if (!connectionMap.has(fromID)) {\n connectionMap.set(fromID, {\n parents: [],\n children: []\n });\n }\n\n var parentRelationship = {\n ID: toID,\n relationship: relationship\n };\n connectionMap.get(fromID).parents.push(parentRelationship);\n\n if (!connectionMap.has(toID)) {\n connectionMap.set(toID, {\n parents: [],\n children: []\n });\n }\n\n var childRelationship = {\n ID: fromID,\n relationship: relationship\n };\n connectionMap.get(toID).children.push(childRelationship);\n });\n }\n\n return connectionMap;\n },\n // Parse FBXTree.Objects.Video for embedded image data\n // These images are connected to textures in FBXTree.Objects.Textures\n // via FBXTree.Connections.\n parseImages: function parseImages() {\n var images = {};\n var blobs = {};\n\n if ('Video' in fbxTree.Objects) {\n var videoNodes = fbxTree.Objects.Video;\n\n for (var nodeID in videoNodes) {\n var videoNode = videoNodes[nodeID];\n var id = parseInt(nodeID);\n images[id] = videoNode.RelativeFilename || videoNode.Filename; // raw image data is in videoNode.Content\n\n if ('Content' in videoNode) {\n var arrayBufferContent = videoNode.Content instanceof ArrayBuffer && videoNode.Content.byteLength > 0;\n var base64Content = typeof videoNode.Content === 'string' && videoNode.Content !== '';\n\n if (arrayBufferContent || base64Content) {\n var image = this.parseImage(videoNodes[nodeID]);\n blobs[videoNode.RelativeFilename || videoNode.Filename] = image;\n }\n }\n }\n }\n\n for (var id in images) {\n var filename = images[id];\n if (blobs[filename] !== undefined) images[id] = blobs[filename];else images[id] = images[id].split('\\\\').pop();\n }\n\n return images;\n },\n // Parse embedded image data in FBXTree.Video.Content\n parseImage: function parseImage(videoNode) {\n var content = videoNode.Content;\n var fileName = videoNode.RelativeFilename || videoNode.Filename;\n var extension = fileName.slice(fileName.lastIndexOf('.') + 1).toLowerCase();\n var type;\n\n switch (extension) {\n case 'bmp':\n type = 'image/bmp';\n break;\n\n case 'jpg':\n case 'jpeg':\n type = 'image/jpeg';\n break;\n\n case 'png':\n type = 'image/png';\n break;\n\n case 'tif':\n type = 'image/tiff';\n break;\n\n case 'tga':\n if (this.manager.getHandler('.tga') === null) {\n console.warn('FBXLoader: TGA loader not found, skipping ', fileName);\n }\n\n type = 'image/tga';\n break;\n\n default:\n console.warn('FBXLoader: Image type \"' + extension + '\" is not supported.');\n return;\n }\n\n if (typeof content === 'string') {\n // ASCII format\n return 'data:' + type + ';base64,' + content;\n } else {\n // Binary Format\n var array = new Uint8Array(content);\n return window.URL.createObjectURL(new Blob([array], {\n type: type\n }));\n }\n },\n // Parse nodes in FBXTree.Objects.Texture\n // These contain details such as UV scaling, cropping, rotation etc and are connected\n // to images in FBXTree.Objects.Video\n parseTextures: function parseTextures(images) {\n var textureMap = new Map();\n\n if ('Texture' in fbxTree.Objects) {\n var textureNodes = fbxTree.Objects.Texture;\n\n for (var nodeID in textureNodes) {\n var texture = this.parseTexture(textureNodes[nodeID], images);\n textureMap.set(parseInt(nodeID), texture);\n }\n }\n\n return textureMap;\n },\n // Parse individual node in FBXTree.Objects.Texture\n parseTexture: function parseTexture(textureNode, images) {\n var texture = this.loadTexture(textureNode, images);\n texture.ID = textureNode.id;\n texture.name = textureNode.attrName;\n var wrapModeU = textureNode.WrapModeU;\n var wrapModeV = textureNode.WrapModeV;\n var valueU = wrapModeU !== undefined ? wrapModeU.value : 0;\n var valueV = wrapModeV !== undefined ? wrapModeV.value : 0; // http://download.autodesk.com/us/fbx/SDKdocs/FBX_SDK_Help/files/fbxsdkref/class_k_fbx_texture.html#889640e63e2e681259ea81061b85143a\n // 0: repeat(default), 1: clamp\n\n texture.wrapS = valueU === 0 ? RepeatWrapping : ClampToEdgeWrapping;\n texture.wrapT = valueV === 0 ? RepeatWrapping : ClampToEdgeWrapping;\n\n if ('Scaling' in textureNode) {\n var values = textureNode.Scaling.value;\n texture.repeat.x = values[0];\n texture.repeat.y = values[1];\n }\n\n return texture;\n },\n // load a texture specified as a blob or data URI, or via an external URL using TextureLoader\n loadTexture: function loadTexture(textureNode, images) {\n var fileName;\n var currentPath = this.textureLoader.path;\n var children = connections.get(textureNode.id).children;\n\n if (children !== undefined && children.length > 0 && images[children[0].ID] !== undefined) {\n fileName = images[children[0].ID];\n\n if (fileName.indexOf('blob:') === 0 || fileName.indexOf('data:') === 0) {\n this.textureLoader.setPath(undefined);\n }\n }\n\n var texture;\n var extension = textureNode.FileName.slice(-3).toLowerCase();\n\n if (extension === 'tga') {\n var loader = this.manager.getHandler('.tga');\n\n if (loader === null) {\n console.warn('FBXLoader: TGA loader not found, creating placeholder texture for', textureNode.RelativeFilename);\n texture = new Texture();\n } else {\n texture = loader.load(fileName);\n }\n } else if (extension === 'psd') {\n console.warn('FBXLoader: PSD textures are not supported, creating placeholder texture for', textureNode.RelativeFilename);\n texture = new Texture();\n } else {\n texture = this.textureLoader.load(fileName);\n }\n\n this.textureLoader.setPath(currentPath);\n return texture;\n },\n // Parse nodes in FBXTree.Objects.Material\n parseMaterials: function parseMaterials(textureMap) {\n var materialMap = new Map();\n\n if ('Material' in fbxTree.Objects) {\n var materialNodes = fbxTree.Objects.Material;\n\n for (var nodeID in materialNodes) {\n var material = this.parseMaterial(materialNodes[nodeID], textureMap);\n if (material !== null) materialMap.set(parseInt(nodeID), material);\n }\n }\n\n return materialMap;\n },\n // Parse single node in FBXTree.Objects.Material\n // Materials are connected to texture maps in FBXTree.Objects.Textures\n // FBX format currently only supports Lambert and Phong shading models\n parseMaterial: function parseMaterial(materialNode, textureMap) {\n var ID = materialNode.id;\n var name = materialNode.attrName;\n var type = materialNode.ShadingModel; // Case where FBX wraps shading model in property object.\n\n if (typeof type === 'object') {\n type = type.value;\n } // Ignore unused materials which don't have any connections.\n\n\n if (!connections.has(ID)) return null;\n var parameters = this.parseParameters(materialNode, textureMap, ID);\n var material;\n\n switch (type.toLowerCase()) {\n case 'phong':\n material = new MeshPhongMaterial();\n break;\n\n case 'lambert':\n material = new MeshLambertMaterial();\n break;\n\n default:\n console.warn('THREE.FBXLoader: unknown material type \"%s\". Defaulting to MeshPhongMaterial.', type);\n material = new MeshPhongMaterial();\n break;\n }\n\n material.setValues(parameters);\n material.name = name;\n return material;\n },\n // Parse FBX material and return parameters suitable for a three.js material\n // Also parse the texture map and return any textures associated with the material\n parseParameters: function parseParameters(materialNode, textureMap, ID) {\n var parameters = {};\n\n if (materialNode.BumpFactor) {\n parameters.bumpScale = materialNode.BumpFactor.value;\n }\n\n if (materialNode.Diffuse) {\n parameters.color = new Color().fromArray(materialNode.Diffuse.value);\n } else if (materialNode.DiffuseColor && materialNode.DiffuseColor.type === 'Color') {\n // The blender exporter exports diffuse here instead of in materialNode.Diffuse\n parameters.color = new Color().fromArray(materialNode.DiffuseColor.value);\n }\n\n if (materialNode.DisplacementFactor) {\n parameters.displacementScale = materialNode.DisplacementFactor.value;\n }\n\n if (materialNode.Emissive) {\n parameters.emissive = new Color().fromArray(materialNode.Emissive.value);\n } else if (materialNode.EmissiveColor && materialNode.EmissiveColor.type === 'Color') {\n // The blender exporter exports emissive color here instead of in materialNode.Emissive\n parameters.emissive = new Color().fromArray(materialNode.EmissiveColor.value);\n }\n\n if (materialNode.EmissiveFactor) {\n parameters.emissiveIntensity = parseFloat(materialNode.EmissiveFactor.value);\n }\n\n if (materialNode.Opacity) {\n parameters.opacity = parseFloat(materialNode.Opacity.value);\n }\n\n if (parameters.opacity < 1.0) {\n parameters.transparent = true;\n }\n\n if (materialNode.ReflectionFactor) {\n parameters.reflectivity = materialNode.ReflectionFactor.value;\n }\n\n if (materialNode.Shininess) {\n parameters.shininess = materialNode.Shininess.value;\n }\n\n if (materialNode.Specular) {\n parameters.specular = new Color().fromArray(materialNode.Specular.value);\n } else if (materialNode.SpecularColor && materialNode.SpecularColor.type === 'Color') {\n // The blender exporter exports specular color here instead of in materialNode.Specular\n parameters.specular = new Color().fromArray(materialNode.SpecularColor.value);\n }\n\n var self = this;\n connections.get(ID).children.forEach(function (child) {\n var type = child.relationship;\n\n switch (type) {\n case 'Bump':\n parameters.bumpMap = self.getTexture(textureMap, child.ID);\n break;\n\n case 'Maya|TEX_ao_map':\n parameters.aoMap = self.getTexture(textureMap, child.ID);\n break;\n\n case 'DiffuseColor':\n case 'Maya|TEX_color_map':\n parameters.map = self.getTexture(textureMap, child.ID);\n parameters.map.encoding = sRGBEncoding;\n break;\n\n case 'DisplacementColor':\n parameters.displacementMap = self.getTexture(textureMap, child.ID);\n break;\n\n case 'EmissiveColor':\n parameters.emissiveMap = self.getTexture(textureMap, child.ID);\n parameters.emissiveMap.encoding = sRGBEncoding;\n break;\n\n case 'NormalMap':\n case 'Maya|TEX_normal_map':\n parameters.normalMap = self.getTexture(textureMap, child.ID);\n break;\n\n case 'ReflectionColor':\n parameters.envMap = self.getTexture(textureMap, child.ID);\n parameters.envMap.mapping = EquirectangularReflectionMapping;\n parameters.envMap.encoding = sRGBEncoding;\n break;\n\n case 'SpecularColor':\n parameters.specularMap = self.getTexture(textureMap, child.ID);\n parameters.specularMap.encoding = sRGBEncoding;\n break;\n\n case 'TransparentColor':\n parameters.alphaMap = self.getTexture(textureMap, child.ID);\n parameters.transparent = true;\n break;\n\n case 'AmbientColor':\n case 'ShininessExponent': // AKA glossiness map\n\n case 'SpecularFactor': // AKA specularLevel\n\n case 'VectorDisplacementColor': // NOTE: Seems to be a copy of DisplacementColor\n\n default:\n console.warn('THREE.FBXLoader: %s map is not supported in three.js, skipping texture.', type);\n break;\n }\n });\n return parameters;\n },\n // get a texture from the textureMap for use by a material.\n getTexture: function getTexture(textureMap, id) {\n // if the texture is a layered texture, just use the first layer and issue a warning\n if ('LayeredTexture' in fbxTree.Objects && id in fbxTree.Objects.LayeredTexture) {\n console.warn('THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer.');\n id = connections.get(id).children[0].ID;\n }\n\n return textureMap.get(id);\n },\n // Parse nodes in FBXTree.Objects.Deformer\n // Deformer node can contain skinning or Vertex Cache animation data, however only skinning is supported here\n // Generates map of Skeleton-like objects for use later when generating and binding skeletons.\n parseDeformers: function parseDeformers() {\n var skeletons = {};\n var morphTargets = {};\n\n if ('Deformer' in fbxTree.Objects) {\n var DeformerNodes = fbxTree.Objects.Deformer;\n\n for (var nodeID in DeformerNodes) {\n var deformerNode = DeformerNodes[nodeID];\n var relationships = connections.get(parseInt(nodeID));\n\n if (deformerNode.attrType === 'Skin') {\n var skeleton = this.parseSkeleton(relationships, DeformerNodes);\n skeleton.ID = nodeID;\n if (relationships.parents.length > 1) console.warn('THREE.FBXLoader: skeleton attached to more than one geometry is not supported.');\n skeleton.geometryID = relationships.parents[0].ID;\n skeletons[nodeID] = skeleton;\n } else if (deformerNode.attrType === 'BlendShape') {\n var morphTarget = {\n id: nodeID\n };\n morphTarget.rawTargets = this.parseMorphTargets(relationships, DeformerNodes);\n morphTarget.id = nodeID;\n if (relationships.parents.length > 1) console.warn('THREE.FBXLoader: morph target attached to more than one geometry is not supported.');\n morphTargets[nodeID] = morphTarget;\n }\n }\n }\n\n return {\n skeletons: skeletons,\n morphTargets: morphTargets\n };\n },\n // Parse single nodes in FBXTree.Objects.Deformer\n // The top level skeleton node has type 'Skin' and sub nodes have type 'Cluster'\n // Each skin node represents a skeleton and each cluster node represents a bone\n parseSkeleton: function parseSkeleton(relationships, deformerNodes) {\n var rawBones = [];\n relationships.children.forEach(function (child) {\n var boneNode = deformerNodes[child.ID];\n if (boneNode.attrType !== 'Cluster') return;\n var rawBone = {\n ID: child.ID,\n indices: [],\n weights: [],\n transformLink: new Matrix4().fromArray(boneNode.TransformLink.a) // transform: new Matrix4().fromArray( boneNode.Transform.a ),\n // linkMode: boneNode.Mode,\n\n };\n\n if ('Indexes' in boneNode) {\n rawBone.indices = boneNode.Indexes.a;\n rawBone.weights = boneNode.Weights.a;\n }\n\n rawBones.push(rawBone);\n });\n return {\n rawBones: rawBones,\n bones: []\n };\n },\n // The top level morph deformer node has type \"BlendShape\" and sub nodes have type \"BlendShapeChannel\"\n parseMorphTargets: function parseMorphTargets(relationships, deformerNodes) {\n var rawMorphTargets = [];\n\n for (var i = 0; i < relationships.children.length; i++) {\n var child = relationships.children[i];\n var morphTargetNode = deformerNodes[child.ID];\n var rawMorphTarget = {\n name: morphTargetNode.attrName,\n initialWeight: morphTargetNode.DeformPercent,\n id: morphTargetNode.id,\n fullWeights: morphTargetNode.FullWeights.a\n };\n if (morphTargetNode.attrType !== 'BlendShapeChannel') return;\n rawMorphTarget.geoID = connections.get(parseInt(child.ID)).children.filter(function (child) {\n return child.relationship === undefined;\n })[0].ID;\n rawMorphTargets.push(rawMorphTarget);\n }\n\n return rawMorphTargets;\n },\n // create the main Group() to be returned by the loader\n parseScene: function parseScene(deformers, geometryMap, materialMap) {\n sceneGraph = new Group();\n var modelMap = this.parseModels(deformers.skeletons, geometryMap, materialMap);\n var modelNodes = fbxTree.Objects.Model;\n var self = this;\n modelMap.forEach(function (model) {\n var modelNode = modelNodes[model.ID];\n self.setLookAtProperties(model, modelNode);\n var parentConnections = connections.get(model.ID).parents;\n parentConnections.forEach(function (connection) {\n var parent = modelMap.get(connection.ID);\n if (parent !== undefined) parent.add(model);\n });\n\n if (model.parent === null) {\n sceneGraph.add(model);\n }\n });\n this.bindSkeleton(deformers.skeletons, geometryMap, modelMap);\n this.createAmbientLight();\n this.setupMorphMaterials();\n sceneGraph.traverse(function (node) {\n if (node.userData.transformData) {\n if (node.parent) node.userData.transformData.parentMatrixWorld = node.parent.matrix;\n var transform = generateTransform(node.userData.transformData);\n node.applyMatrix(transform);\n }\n });\n var animations = new AnimationParser().parse(); // if all the models where already combined in a single group, just return that\n\n if (sceneGraph.children.length === 1 && sceneGraph.children[0].isGroup) {\n sceneGraph.children[0].animations = animations;\n sceneGraph = sceneGraph.children[0];\n }\n\n sceneGraph.animations = animations;\n },\n // parse nodes in FBXTree.Objects.Model\n parseModels: function parseModels(skeletons, geometryMap, materialMap) {\n var modelMap = new Map();\n var modelNodes = fbxTree.Objects.Model;\n\n for (var nodeID in modelNodes) {\n var id = parseInt(nodeID);\n var node = modelNodes[nodeID];\n var relationships = connections.get(id);\n var model = this.buildSkeleton(relationships, skeletons, id, node.attrName);\n\n if (!model) {\n switch (node.attrType) {\n case 'Camera':\n model = this.createCamera(relationships);\n break;\n\n case 'Light':\n model = this.createLight(relationships);\n break;\n\n case 'Mesh':\n model = this.createMesh(relationships, geometryMap, materialMap);\n break;\n\n case 'NurbsCurve':\n model = this.createCurve(relationships, geometryMap);\n break;\n\n case 'LimbNode':\n case 'Root':\n model = new Bone();\n break;\n\n case 'Null':\n default:\n model = new Group();\n break;\n }\n\n model.name = node.attrName ? PropertyBinding.sanitizeNodeName(node.attrName) : '';\n model.ID = id;\n }\n\n this.getTransformData(model, node);\n modelMap.set(id, model);\n }\n\n return modelMap;\n },\n buildSkeleton: function buildSkeleton(relationships, skeletons, id, name) {\n var bone = null;\n relationships.parents.forEach(function (parent) {\n for (var ID in skeletons) {\n var skeleton = skeletons[ID];\n skeleton.rawBones.forEach(function (rawBone, i) {\n if (rawBone.ID === parent.ID) {\n var subBone = bone;\n bone = new Bone();\n bone.matrixWorld.copy(rawBone.transformLink); // set name and id here - otherwise in cases where \"subBone\" is created it will not have a name / id\n\n bone.name = name ? PropertyBinding.sanitizeNodeName(name) : '';\n bone.ID = id;\n skeleton.bones[i] = bone; // In cases where a bone is shared between multiple meshes\n // duplicate the bone here and and it as a child of the first bone\n\n if (subBone !== null) {\n bone.add(subBone);\n }\n }\n });\n }\n });\n return bone;\n },\n // create a PerspectiveCamera or OrthographicCamera\n createCamera: function createCamera(relationships) {\n var model;\n var cameraAttribute;\n relationships.children.forEach(function (child) {\n var attr = fbxTree.Objects.NodeAttribute[child.ID];\n\n if (attr !== undefined) {\n cameraAttribute = attr;\n }\n });\n\n if (cameraAttribute === undefined) {\n model = new Object3D();\n } else {\n var type = 0;\n\n if (cameraAttribute.CameraProjectionType !== undefined && cameraAttribute.CameraProjectionType.value === 1) {\n type = 1;\n }\n\n var nearClippingPlane = 1;\n\n if (cameraAttribute.NearPlane !== undefined) {\n nearClippingPlane = cameraAttribute.NearPlane.value / 1000;\n }\n\n var farClippingPlane = 1000;\n\n if (cameraAttribute.FarPlane !== undefined) {\n farClippingPlane = cameraAttribute.FarPlane.value / 1000;\n }\n\n var width = window.innerWidth;\n var height = window.innerHeight;\n\n if (cameraAttribute.AspectWidth !== undefined && cameraAttribute.AspectHeight !== undefined) {\n width = cameraAttribute.AspectWidth.value;\n height = cameraAttribute.AspectHeight.value;\n }\n\n var aspect = width / height;\n var fov = 45;\n\n if (cameraAttribute.FieldOfView !== undefined) {\n fov = cameraAttribute.FieldOfView.value;\n }\n\n var focalLength = cameraAttribute.FocalLength ? cameraAttribute.FocalLength.value : null;\n\n switch (type) {\n case 0:\n // Perspective\n model = new PerspectiveCamera(fov, aspect, nearClippingPlane, farClippingPlane);\n if (focalLength !== null) model.setFocalLength(focalLength);\n break;\n\n case 1:\n // Orthographic\n model = new OrthographicCamera(-width / 2, width / 2, height / 2, -height / 2, nearClippingPlane, farClippingPlane);\n break;\n\n default:\n console.warn('THREE.FBXLoader: Unknown camera type ' + type + '.');\n model = new Object3D();\n break;\n }\n }\n\n return model;\n },\n // Create a DirectionalLight, PointLight or SpotLight\n createLight: function createLight(relationships) {\n var model;\n var lightAttribute;\n relationships.children.forEach(function (child) {\n var attr = fbxTree.Objects.NodeAttribute[child.ID];\n\n if (attr !== undefined) {\n lightAttribute = attr;\n }\n });\n\n if (lightAttribute === undefined) {\n model = new Object3D();\n } else {\n var type; // LightType can be undefined for Point lights\n\n if (lightAttribute.LightType === undefined) {\n type = 0;\n } else {\n type = lightAttribute.LightType.value;\n }\n\n var color = 0xffffff;\n\n if (lightAttribute.Color !== undefined) {\n color = new Color().fromArray(lightAttribute.Color.value);\n }\n\n var intensity = lightAttribute.Intensity === undefined ? 1 : lightAttribute.Intensity.value / 100; // light disabled\n\n if (lightAttribute.CastLightOnObject !== undefined && lightAttribute.CastLightOnObject.value === 0) {\n intensity = 0;\n }\n\n var distance = 0;\n\n if (lightAttribute.FarAttenuationEnd !== undefined) {\n if (lightAttribute.EnableFarAttenuation !== undefined && lightAttribute.EnableFarAttenuation.value === 0) {\n distance = 0;\n } else {\n distance = lightAttribute.FarAttenuationEnd.value;\n }\n } // TODO: could this be calculated linearly from FarAttenuationStart to FarAttenuationEnd?\n\n\n var decay = 1;\n\n switch (type) {\n case 0:\n // Point\n model = new PointLight(color, intensity, distance, decay);\n break;\n\n case 1:\n // Directional\n model = new DirectionalLight(color, intensity);\n break;\n\n case 2:\n // Spot\n var angle = Math.PI / 3;\n\n if (lightAttribute.InnerAngle !== undefined) {\n angle = _Math.degToRad(lightAttribute.InnerAngle.value);\n }\n\n var penumbra = 0;\n\n if (lightAttribute.OuterAngle !== undefined) {\n // TODO: this is not correct - FBX calculates outer and inner angle in degrees\n // with OuterAngle > InnerAngle && OuterAngle <= Math.PI\n // while three.js uses a penumbra between (0, 1) to attenuate the inner angle\n penumbra = _Math.degToRad(lightAttribute.OuterAngle.value);\n penumbra = Math.max(penumbra, 1);\n }\n\n model = new SpotLight(color, intensity, distance, angle, penumbra, decay);\n break;\n\n default:\n console.warn('THREE.FBXLoader: Unknown light type ' + lightAttribute.LightType.value + ', defaulting to a PointLight.');\n model = new PointLight(color, intensity);\n break;\n }\n\n if (lightAttribute.CastShadows !== undefined && lightAttribute.CastShadows.value === 1) {\n model.castShadow = true;\n }\n }\n\n return model;\n },\n createMesh: function createMesh(relationships, geometryMap, materialMap) {\n var model;\n var geometry = null;\n var material = null;\n var materials = []; // get geometry and materials(s) from connections\n\n relationships.children.forEach(function (child) {\n if (geometryMap.has(child.ID)) {\n geometry = geometryMap.get(child.ID);\n }\n\n if (materialMap.has(child.ID)) {\n materials.push(materialMap.get(child.ID));\n }\n });\n\n if (materials.length > 1) {\n material = materials;\n } else if (materials.length > 0) {\n material = materials[0];\n } else {\n material = new MeshPhongMaterial({\n color: 0xcccccc\n });\n materials.push(material);\n }\n\n if ('color' in geometry.attributes) {\n materials.forEach(function (material) {\n material.vertexColors = VertexColors;\n });\n }\n\n if (geometry.FBX_Deformer) {\n materials.forEach(function (material) {\n material.skinning = true;\n });\n model = new SkinnedMesh(geometry, material);\n model.normalizeSkinWeights();\n } else {\n model = new Mesh(geometry, material);\n }\n\n return model;\n },\n createCurve: function createCurve(relationships, geometryMap) {\n var geometry = relationships.children.reduce(function (geo, child) {\n if (geometryMap.has(child.ID)) geo = geometryMap.get(child.ID);\n return geo;\n }, null); // FBX does not list materials for Nurbs lines, so we'll just put our own in here.\n\n var material = new LineBasicMaterial({\n color: 0x3300ff,\n linewidth: 1\n });\n return new Line(geometry, material);\n },\n // parse the model node for transform data\n getTransformData: function getTransformData(model, modelNode) {\n var transformData = {};\n if ('InheritType' in modelNode) transformData.inheritType = parseInt(modelNode.InheritType.value);\n if ('RotationOrder' in modelNode) transformData.eulerOrder = getEulerOrder(modelNode.RotationOrder.value);else transformData.eulerOrder = 'ZYX';\n if ('Lcl_Translation' in modelNode) transformData.translation = modelNode.Lcl_Translation.value;\n if ('PreRotation' in modelNode) transformData.preRotation = modelNode.PreRotation.value;\n if ('Lcl_Rotation' in modelNode) transformData.rotation = modelNode.Lcl_Rotation.value;\n if ('PostRotation' in modelNode) transformData.postRotation = modelNode.PostRotation.value;\n if ('Lcl_Scaling' in modelNode) transformData.scale = modelNode.Lcl_Scaling.value;\n if ('ScalingOffset' in modelNode) transformData.scalingOffset = modelNode.ScalingOffset.value;\n if ('ScalingPivot' in modelNode) transformData.scalingPivot = modelNode.ScalingPivot.value;\n if ('RotationOffset' in modelNode) transformData.rotationOffset = modelNode.RotationOffset.value;\n if ('RotationPivot' in modelNode) transformData.rotationPivot = modelNode.RotationPivot.value;\n model.userData.transformData = transformData;\n },\n setLookAtProperties: function setLookAtProperties(model, modelNode) {\n if ('LookAtProperty' in modelNode) {\n var children = connections.get(model.ID).children;\n children.forEach(function (child) {\n if (child.relationship === 'LookAtProperty') {\n var lookAtTarget = fbxTree.Objects.Model[child.ID];\n\n if ('Lcl_Translation' in lookAtTarget) {\n var pos = lookAtTarget.Lcl_Translation.value; // DirectionalLight, SpotLight\n\n if (model.target !== undefined) {\n model.target.position.fromArray(pos);\n sceneGraph.add(model.target);\n } else {\n // Cameras and other Object3Ds\n model.lookAt(new Vector3().fromArray(pos));\n }\n }\n }\n });\n }\n },\n bindSkeleton: function bindSkeleton(skeletons, geometryMap, modelMap) {\n var bindMatrices = this.parsePoseNodes();\n\n for (var ID in skeletons) {\n var skeleton = skeletons[ID];\n var parents = connections.get(parseInt(skeleton.ID)).parents;\n parents.forEach(function (parent) {\n if (geometryMap.has(parent.ID)) {\n var geoID = parent.ID;\n var geoRelationships = connections.get(geoID);\n geoRelationships.parents.forEach(function (geoConnParent) {\n if (modelMap.has(geoConnParent.ID)) {\n var model = modelMap.get(geoConnParent.ID);\n model.bind(new Skeleton(skeleton.bones), bindMatrices[geoConnParent.ID]);\n }\n });\n }\n });\n }\n },\n parsePoseNodes: function parsePoseNodes() {\n var bindMatrices = {};\n\n if ('Pose' in fbxTree.Objects) {\n var BindPoseNode = fbxTree.Objects.Pose;\n\n for (var nodeID in BindPoseNode) {\n if (BindPoseNode[nodeID].attrType === 'BindPose') {\n var poseNodes = BindPoseNode[nodeID].PoseNode;\n\n if (Array.isArray(poseNodes)) {\n poseNodes.forEach(function (poseNode) {\n bindMatrices[poseNode.Node] = new Matrix4().fromArray(poseNode.Matrix.a);\n });\n } else {\n bindMatrices[poseNodes.Node] = new Matrix4().fromArray(poseNodes.Matrix.a);\n }\n }\n }\n }\n\n return bindMatrices;\n },\n // Parse ambient color in FBXTree.GlobalSettings - if it's not set to black (default), create an ambient light\n createAmbientLight: function createAmbientLight() {\n if ('GlobalSettings' in fbxTree && 'AmbientColor' in fbxTree.GlobalSettings) {\n var ambientColor = fbxTree.GlobalSettings.AmbientColor.value;\n var r = ambientColor[0];\n var g = ambientColor[1];\n var b = ambientColor[2];\n\n if (r !== 0 || g !== 0 || b !== 0) {\n var color = new Color(r, g, b);\n sceneGraph.add(new AmbientLight(color, 1));\n }\n }\n },\n setupMorphMaterials: function setupMorphMaterials() {\n var self = this;\n sceneGraph.traverse(function (child) {\n if (child.isMesh) {\n if (child.geometry.morphAttributes.position && child.geometry.morphAttributes.position.length) {\n if (Array.isArray(child.material)) {\n child.material.forEach(function (material, i) {\n self.setupMorphMaterial(child, material, i);\n });\n } else {\n self.setupMorphMaterial(child, child.material);\n }\n }\n }\n });\n },\n setupMorphMaterial: function setupMorphMaterial(child, material, index) {\n var uuid = child.uuid;\n var matUuid = material.uuid; // if a geometry has morph targets, it cannot share the material with other geometries\n\n var sharedMat = false;\n sceneGraph.traverse(function (node) {\n if (node.isMesh) {\n if (Array.isArray(node.material)) {\n node.material.forEach(function (mat) {\n if (mat.uuid === matUuid && node.uuid !== uuid) sharedMat = true;\n });\n } else if (node.material.uuid === matUuid && node.uuid !== uuid) sharedMat = true;\n }\n });\n\n if (sharedMat === true) {\n var clonedMat = material.clone();\n clonedMat.morphTargets = true;\n if (index === undefined) child.material = clonedMat;else child.material[index] = clonedMat;\n } else material.morphTargets = true;\n }\n }; // parse Geometry data from FBXTree and return map of BufferGeometries\n\n function GeometryParser() {}\n\n GeometryParser.prototype = {\n constructor: GeometryParser,\n // Parse nodes in FBXTree.Objects.Geometry\n parse: function parse(deformers) {\n var geometryMap = new Map();\n\n if ('Geometry' in fbxTree.Objects) {\n var geoNodes = fbxTree.Objects.Geometry;\n\n for (var nodeID in geoNodes) {\n var relationships = connections.get(parseInt(nodeID));\n var geo = this.parseGeometry(relationships, geoNodes[nodeID], deformers);\n geometryMap.set(parseInt(nodeID), geo);\n }\n }\n\n return geometryMap;\n },\n // Parse single node in FBXTree.Objects.Geometry\n parseGeometry: function parseGeometry(relationships, geoNode, deformers) {\n switch (geoNode.attrType) {\n case 'Mesh':\n return this.parseMeshGeometry(relationships, geoNode, deformers);\n break;\n\n case 'NurbsCurve':\n return this.parseNurbsGeometry(geoNode);\n break;\n }\n },\n // Parse single node mesh geometry in FBXTree.Objects.Geometry\n parseMeshGeometry: function parseMeshGeometry(relationships, geoNode, deformers) {\n var skeletons = deformers.skeletons;\n var morphTargets = [];\n var modelNodes = relationships.parents.map(function (parent) {\n return fbxTree.Objects.Model[parent.ID];\n }); // don't create geometry if it is not associated with any models\n\n if (modelNodes.length === 0) return;\n var skeleton = relationships.children.reduce(function (skeleton, child) {\n if (skeletons[child.ID] !== undefined) skeleton = skeletons[child.ID];\n return skeleton;\n }, null);\n relationships.children.forEach(function (child) {\n if (deformers.morphTargets[child.ID] !== undefined) {\n morphTargets.push(deformers.morphTargets[child.ID]);\n }\n }); // Assume one model and get the preRotation from that\n // if there is more than one model associated with the geometry this may cause problems\n\n var modelNode = modelNodes[0];\n var transformData = {};\n if ('RotationOrder' in modelNode) transformData.eulerOrder = getEulerOrder(modelNode.RotationOrder.value);\n if ('InheritType' in modelNode) transformData.inheritType = parseInt(modelNode.InheritType.value);\n if ('GeometricTranslation' in modelNode) transformData.translation = modelNode.GeometricTranslation.value;\n if ('GeometricRotation' in modelNode) transformData.rotation = modelNode.GeometricRotation.value;\n if ('GeometricScaling' in modelNode) transformData.scale = modelNode.GeometricScaling.value;\n var transform = generateTransform(transformData);\n return this.genGeometry(geoNode, skeleton, morphTargets, transform);\n },\n // Generate a BufferGeometry from a node in FBXTree.Objects.Geometry\n genGeometry: function genGeometry(geoNode, skeleton, morphTargets, preTransform) {\n var geo = new BufferGeometry();\n if (geoNode.attrName) geo.name = geoNode.attrName;\n var geoInfo = this.parseGeoNode(geoNode, skeleton);\n var buffers = this.genBuffers(geoInfo);\n var positionAttribute = new Float32BufferAttribute(buffers.vertex, 3);\n preTransform.applyToBufferAttribute(positionAttribute);\n geo.setAttribute('position', positionAttribute);\n\n if (buffers.colors.length > 0) {\n geo.setAttribute('color', new Float32BufferAttribute(buffers.colors, 3));\n }\n\n if (skeleton) {\n geo.setAttribute('skinIndex', new Uint16BufferAttribute(buffers.weightsIndices, 4));\n geo.setAttribute('skinWeight', new Float32BufferAttribute(buffers.vertexWeights, 4)); // used later to bind the skeleton to the model\n\n geo.FBX_Deformer = skeleton;\n }\n\n if (buffers.normal.length > 0) {\n var normalAttribute = new Float32BufferAttribute(buffers.normal, 3);\n var normalMatrix = new Matrix3().getNormalMatrix(preTransform);\n normalMatrix.applyToBufferAttribute(normalAttribute);\n geo.setAttribute('normal', normalAttribute);\n }\n\n buffers.uvs.forEach(function (uvBuffer, i) {\n // subsequent uv buffers are called 'uv1', 'uv2', ...\n var name = 'uv' + (i + 1).toString(); // the first uv buffer is just called 'uv'\n\n if (i === 0) {\n name = 'uv';\n }\n\n geo.setAttribute(name, new Float32BufferAttribute(buffers.uvs[i], 2));\n });\n\n if (geoInfo.material && geoInfo.material.mappingType !== 'AllSame') {\n // Convert the material indices of each vertex into rendering groups on the geometry.\n var prevMaterialIndex = buffers.materialIndex[0];\n var startIndex = 0;\n buffers.materialIndex.forEach(function (currentIndex, i) {\n if (currentIndex !== prevMaterialIndex) {\n geo.addGroup(startIndex, i - startIndex, prevMaterialIndex);\n prevMaterialIndex = currentIndex;\n startIndex = i;\n }\n }); // the loop above doesn't add the last group, do that here.\n\n if (geo.groups.length > 0) {\n var lastGroup = geo.groups[geo.groups.length - 1];\n var lastIndex = lastGroup.start + lastGroup.count;\n\n if (lastIndex !== buffers.materialIndex.length) {\n geo.addGroup(lastIndex, buffers.materialIndex.length - lastIndex, prevMaterialIndex);\n }\n } // case where there are multiple materials but the whole geometry is only\n // using one of them\n\n\n if (geo.groups.length === 0) {\n geo.addGroup(0, buffers.materialIndex.length, buffers.materialIndex[0]);\n }\n }\n\n this.addMorphTargets(geo, geoNode, morphTargets, preTransform);\n return geo;\n },\n parseGeoNode: function parseGeoNode(geoNode, skeleton) {\n var geoInfo = {};\n geoInfo.vertexPositions = geoNode.Vertices !== undefined ? geoNode.Vertices.a : [];\n geoInfo.vertexIndices = geoNode.PolygonVertexIndex !== undefined ? geoNode.PolygonVertexIndex.a : [];\n\n if (geoNode.LayerElementColor) {\n geoInfo.color = this.parseVertexColors(geoNode.LayerElementColor[0]);\n }\n\n if (geoNode.LayerElementMaterial) {\n geoInfo.material = this.parseMaterialIndices(geoNode.LayerElementMaterial[0]);\n }\n\n if (geoNode.LayerElementNormal) {\n geoInfo.normal = this.parseNormals(geoNode.LayerElementNormal[0]);\n }\n\n if (geoNode.LayerElementUV) {\n geoInfo.uv = [];\n var i = 0;\n\n while (geoNode.LayerElementUV[i]) {\n geoInfo.uv.push(this.parseUVs(geoNode.LayerElementUV[i]));\n i++;\n }\n }\n\n geoInfo.weightTable = {};\n\n if (skeleton !== null) {\n geoInfo.skeleton = skeleton;\n skeleton.rawBones.forEach(function (rawBone, i) {\n // loop over the bone's vertex indices and weights\n rawBone.indices.forEach(function (index, j) {\n if (geoInfo.weightTable[index] === undefined) geoInfo.weightTable[index] = [];\n geoInfo.weightTable[index].push({\n id: i,\n weight: rawBone.weights[j]\n });\n });\n });\n }\n\n return geoInfo;\n },\n genBuffers: function genBuffers(geoInfo) {\n var buffers = {\n vertex: [],\n normal: [],\n colors: [],\n uvs: [],\n materialIndex: [],\n vertexWeights: [],\n weightsIndices: []\n };\n var polygonIndex = 0;\n var faceLength = 0;\n var displayedWeightsWarning = false; // these will hold data for a single face\n\n var facePositionIndexes = [];\n var faceNormals = [];\n var faceColors = [];\n var faceUVs = [];\n var faceWeights = [];\n var faceWeightIndices = [];\n var self = this;\n geoInfo.vertexIndices.forEach(function (vertexIndex, polygonVertexIndex) {\n var endOfFace = false; // Face index and vertex index arrays are combined in a single array\n // A cube with quad faces looks like this:\n // PolygonVertexIndex: *24 {\n // a: 0, 1, 3, -3, 2, 3, 5, -5, 4, 5, 7, -7, 6, 7, 1, -1, 1, 7, 5, -4, 6, 0, 2, -5\n // }\n // Negative numbers mark the end of a face - first face here is 0, 1, 3, -3\n // to find index of last vertex bit shift the index: ^ - 1\n\n if (vertexIndex < 0) {\n vertexIndex = vertexIndex ^ -1; // equivalent to ( x * -1 ) - 1\n\n endOfFace = true;\n }\n\n var weightIndices = [];\n var weights = [];\n facePositionIndexes.push(vertexIndex * 3, vertexIndex * 3 + 1, vertexIndex * 3 + 2);\n\n if (geoInfo.color) {\n var data = getData(polygonVertexIndex, polygonIndex, vertexIndex, geoInfo.color);\n faceColors.push(data[0], data[1], data[2]);\n }\n\n if (geoInfo.skeleton) {\n if (geoInfo.weightTable[vertexIndex] !== undefined) {\n geoInfo.weightTable[vertexIndex].forEach(function (wt) {\n weights.push(wt.weight);\n weightIndices.push(wt.id);\n });\n }\n\n if (weights.length > 4) {\n if (!displayedWeightsWarning) {\n console.warn('THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights.');\n displayedWeightsWarning = true;\n }\n\n var wIndex = [0, 0, 0, 0];\n var Weight = [0, 0, 0, 0];\n weights.forEach(function (weight, weightIndex) {\n var currentWeight = weight;\n var currentIndex = weightIndices[weightIndex];\n Weight.forEach(function (comparedWeight, comparedWeightIndex, comparedWeightArray) {\n if (currentWeight > comparedWeight) {\n comparedWeightArray[comparedWeightIndex] = currentWeight;\n currentWeight = comparedWeight;\n var tmp = wIndex[comparedWeightIndex];\n wIndex[comparedWeightIndex] = currentIndex;\n currentIndex = tmp;\n }\n });\n });\n weightIndices = wIndex;\n weights = Weight;\n } // if the weight array is shorter than 4 pad with 0s\n\n\n while (weights.length < 4) {\n weights.push(0);\n weightIndices.push(0);\n }\n\n for (var i = 0; i < 4; ++i) {\n faceWeights.push(weights[i]);\n faceWeightIndices.push(weightIndices[i]);\n }\n }\n\n if (geoInfo.normal) {\n var data = getData(polygonVertexIndex, polygonIndex, vertexIndex, geoInfo.normal);\n faceNormals.push(data[0], data[1], data[2]);\n }\n\n if (geoInfo.material && geoInfo.material.mappingType !== 'AllSame') {\n var materialIndex = getData(polygonVertexIndex, polygonIndex, vertexIndex, geoInfo.material)[0];\n }\n\n if (geoInfo.uv) {\n geoInfo.uv.forEach(function (uv, i) {\n var data = getData(polygonVertexIndex, polygonIndex, vertexIndex, uv);\n\n if (faceUVs[i] === undefined) {\n faceUVs[i] = [];\n }\n\n faceUVs[i].push(data[0]);\n faceUVs[i].push(data[1]);\n });\n }\n\n faceLength++;\n\n if (endOfFace) {\n self.genFace(buffers, geoInfo, facePositionIndexes, materialIndex, faceNormals, faceColors, faceUVs, faceWeights, faceWeightIndices, faceLength);\n polygonIndex++;\n faceLength = 0; // reset arrays for the next face\n\n facePositionIndexes = [];\n faceNormals = [];\n faceColors = [];\n faceUVs = [];\n faceWeights = [];\n faceWeightIndices = [];\n }\n });\n return buffers;\n },\n // Generate data for a single face in a geometry. If the face is a quad then split it into 2 tris\n genFace: function genFace(buffers, geoInfo, facePositionIndexes, materialIndex, faceNormals, faceColors, faceUVs, faceWeights, faceWeightIndices, faceLength) {\n for (var i = 2; i < faceLength; i++) {\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[0]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[1]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[2]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[(i - 1) * 3]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[(i - 1) * 3 + 1]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[(i - 1) * 3 + 2]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[i * 3]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[i * 3 + 1]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[i * 3 + 2]]);\n\n if (geoInfo.skeleton) {\n buffers.vertexWeights.push(faceWeights[0]);\n buffers.vertexWeights.push(faceWeights[1]);\n buffers.vertexWeights.push(faceWeights[2]);\n buffers.vertexWeights.push(faceWeights[3]);\n buffers.vertexWeights.push(faceWeights[(i - 1) * 4]);\n buffers.vertexWeights.push(faceWeights[(i - 1) * 4 + 1]);\n buffers.vertexWeights.push(faceWeights[(i - 1) * 4 + 2]);\n buffers.vertexWeights.push(faceWeights[(i - 1) * 4 + 3]);\n buffers.vertexWeights.push(faceWeights[i * 4]);\n buffers.vertexWeights.push(faceWeights[i * 4 + 1]);\n buffers.vertexWeights.push(faceWeights[i * 4 + 2]);\n buffers.vertexWeights.push(faceWeights[i * 4 + 3]);\n buffers.weightsIndices.push(faceWeightIndices[0]);\n buffers.weightsIndices.push(faceWeightIndices[1]);\n buffers.weightsIndices.push(faceWeightIndices[2]);\n buffers.weightsIndices.push(faceWeightIndices[3]);\n buffers.weightsIndices.push(faceWeightIndices[(i - 1) * 4]);\n buffers.weightsIndices.push(faceWeightIndices[(i - 1) * 4 + 1]);\n buffers.weightsIndices.push(faceWeightIndices[(i - 1) * 4 + 2]);\n buffers.weightsIndices.push(faceWeightIndices[(i - 1) * 4 + 3]);\n buffers.weightsIndices.push(faceWeightIndices[i * 4]);\n buffers.weightsIndices.push(faceWeightIndices[i * 4 + 1]);\n buffers.weightsIndices.push(faceWeightIndices[i * 4 + 2]);\n buffers.weightsIndices.push(faceWeightIndices[i * 4 + 3]);\n }\n\n if (geoInfo.color) {\n buffers.colors.push(faceColors[0]);\n buffers.colors.push(faceColors[1]);\n buffers.colors.push(faceColors[2]);\n buffers.colors.push(faceColors[(i - 1) * 3]);\n buffers.colors.push(faceColors[(i - 1) * 3 + 1]);\n buffers.colors.push(faceColors[(i - 1) * 3 + 2]);\n buffers.colors.push(faceColors[i * 3]);\n buffers.colors.push(faceColors[i * 3 + 1]);\n buffers.colors.push(faceColors[i * 3 + 2]);\n }\n\n if (geoInfo.material && geoInfo.material.mappingType !== 'AllSame') {\n buffers.materialIndex.push(materialIndex);\n buffers.materialIndex.push(materialIndex);\n buffers.materialIndex.push(materialIndex);\n }\n\n if (geoInfo.normal) {\n buffers.normal.push(faceNormals[0]);\n buffers.normal.push(faceNormals[1]);\n buffers.normal.push(faceNormals[2]);\n buffers.normal.push(faceNormals[(i - 1) * 3]);\n buffers.normal.push(faceNormals[(i - 1) * 3 + 1]);\n buffers.normal.push(faceNormals[(i - 1) * 3 + 2]);\n buffers.normal.push(faceNormals[i * 3]);\n buffers.normal.push(faceNormals[i * 3 + 1]);\n buffers.normal.push(faceNormals[i * 3 + 2]);\n }\n\n if (geoInfo.uv) {\n geoInfo.uv.forEach(function (uv, j) {\n if (buffers.uvs[j] === undefined) buffers.uvs[j] = [];\n buffers.uvs[j].push(faceUVs[j][0]);\n buffers.uvs[j].push(faceUVs[j][1]);\n buffers.uvs[j].push(faceUVs[j][(i - 1) * 2]);\n buffers.uvs[j].push(faceUVs[j][(i - 1) * 2 + 1]);\n buffers.uvs[j].push(faceUVs[j][i * 2]);\n buffers.uvs[j].push(faceUVs[j][i * 2 + 1]);\n });\n }\n }\n },\n addMorphTargets: function addMorphTargets(parentGeo, parentGeoNode, morphTargets, preTransform) {\n if (morphTargets.length === 0) return;\n parentGeo.morphAttributes.position = []; // parentGeo.morphAttributes.normal = []; // not implemented\n\n var self = this;\n morphTargets.forEach(function (morphTarget) {\n morphTarget.rawTargets.forEach(function (rawTarget) {\n var morphGeoNode = fbxTree.Objects.Geometry[rawTarget.geoID];\n\n if (morphGeoNode !== undefined) {\n self.genMorphGeometry(parentGeo, parentGeoNode, morphGeoNode, preTransform, rawTarget.name);\n }\n });\n });\n },\n // a morph geometry node is similar to a standard node, and the node is also contained\n // in FBXTree.Objects.Geometry, however it can only have attributes for position, normal\n // and a special attribute Index defining which vertices of the original geometry are affected\n // Normal and position attributes only have data for the vertices that are affected by the morph\n genMorphGeometry: function genMorphGeometry(parentGeo, parentGeoNode, morphGeoNode, preTransform, name) {\n var morphGeo = new BufferGeometry();\n if (morphGeoNode.attrName) morphGeo.name = morphGeoNode.attrName;\n var vertexIndices = parentGeoNode.PolygonVertexIndex !== undefined ? parentGeoNode.PolygonVertexIndex.a : []; // make a copy of the parent's vertex positions\n\n var vertexPositions = parentGeoNode.Vertices !== undefined ? parentGeoNode.Vertices.a.slice() : [];\n var morphPositions = morphGeoNode.Vertices !== undefined ? morphGeoNode.Vertices.a : [];\n var indices = morphGeoNode.Indexes !== undefined ? morphGeoNode.Indexes.a : [];\n\n for (var i = 0; i < indices.length; i++) {\n var morphIndex = indices[i] * 3; // FBX format uses blend shapes rather than morph targets. This can be converted\n // by additively combining the blend shape positions with the original geometry's positions\n\n vertexPositions[morphIndex] += morphPositions[i * 3];\n vertexPositions[morphIndex + 1] += morphPositions[i * 3 + 1];\n vertexPositions[morphIndex + 2] += morphPositions[i * 3 + 2];\n } // TODO: add morph normal support\n\n\n var morphGeoInfo = {\n vertexIndices: vertexIndices,\n vertexPositions: vertexPositions\n };\n var morphBuffers = this.genBuffers(morphGeoInfo);\n var positionAttribute = new Float32BufferAttribute(morphBuffers.vertex, 3);\n positionAttribute.name = name || morphGeoNode.attrName;\n preTransform.applyToBufferAttribute(positionAttribute);\n parentGeo.morphAttributes.position.push(positionAttribute);\n },\n // Parse normal from FBXTree.Objects.Geometry.LayerElementNormal if it exists\n parseNormals: function parseNormals(NormalNode) {\n var mappingType = NormalNode.MappingInformationType;\n var referenceType = NormalNode.ReferenceInformationType;\n var buffer = NormalNode.Normals.a;\n var indexBuffer = [];\n\n if (referenceType === 'IndexToDirect') {\n if ('NormalIndex' in NormalNode) {\n indexBuffer = NormalNode.NormalIndex.a;\n } else if ('NormalsIndex' in NormalNode) {\n indexBuffer = NormalNode.NormalsIndex.a;\n }\n }\n\n return {\n dataSize: 3,\n buffer: buffer,\n indices: indexBuffer,\n mappingType: mappingType,\n referenceType: referenceType\n };\n },\n // Parse UVs from FBXTree.Objects.Geometry.LayerElementUV if it exists\n parseUVs: function parseUVs(UVNode) {\n var mappingType = UVNode.MappingInformationType;\n var referenceType = UVNode.ReferenceInformationType;\n var buffer = UVNode.UV.a;\n var indexBuffer = [];\n\n if (referenceType === 'IndexToDirect') {\n indexBuffer = UVNode.UVIndex.a;\n }\n\n return {\n dataSize: 2,\n buffer: buffer,\n indices: indexBuffer,\n mappingType: mappingType,\n referenceType: referenceType\n };\n },\n // Parse Vertex Colors from FBXTree.Objects.Geometry.LayerElementColor if it exists\n parseVertexColors: function parseVertexColors(ColorNode) {\n var mappingType = ColorNode.MappingInformationType;\n var referenceType = ColorNode.ReferenceInformationType;\n var buffer = ColorNode.Colors.a;\n var indexBuffer = [];\n\n if (referenceType === 'IndexToDirect') {\n indexBuffer = ColorNode.ColorIndex.a;\n }\n\n return {\n dataSize: 4,\n buffer: buffer,\n indices: indexBuffer,\n mappingType: mappingType,\n referenceType: referenceType\n };\n },\n // Parse mapping and material data in FBXTree.Objects.Geometry.LayerElementMaterial if it exists\n parseMaterialIndices: function parseMaterialIndices(MaterialNode) {\n var mappingType = MaterialNode.MappingInformationType;\n var referenceType = MaterialNode.ReferenceInformationType;\n\n if (mappingType === 'NoMappingInformation') {\n return {\n dataSize: 1,\n buffer: [0],\n indices: [0],\n mappingType: 'AllSame',\n referenceType: referenceType\n };\n }\n\n var materialIndexBuffer = MaterialNode.Materials.a; // Since materials are stored as indices, there's a bit of a mismatch between FBX and what\n // we expect.So we create an intermediate buffer that points to the index in the buffer,\n // for conforming with the other functions we've written for other data.\n\n var materialIndices = [];\n\n for (var i = 0; i < materialIndexBuffer.length; ++i) {\n materialIndices.push(i);\n }\n\n return {\n dataSize: 1,\n buffer: materialIndexBuffer,\n indices: materialIndices,\n mappingType: mappingType,\n referenceType: referenceType\n };\n },\n // Generate a NurbGeometry from a node in FBXTree.Objects.Geometry\n parseNurbsGeometry: function parseNurbsGeometry(geoNode) {\n if (NURBSCurve === undefined) {\n console.error('THREE.FBXLoader: The loader relies on NURBSCurve for any nurbs present in the model. Nurbs will show up as empty geometry.');\n return new BufferGeometry();\n }\n\n var order = parseInt(geoNode.Order);\n\n if (isNaN(order)) {\n console.error('THREE.FBXLoader: Invalid Order %s given for geometry ID: %s', geoNode.Order, geoNode.id);\n return new BufferGeometry();\n }\n\n var degree = order - 1;\n var knots = geoNode.KnotVector.a;\n var controlPoints = [];\n var pointsValues = geoNode.Points.a;\n\n for (var i = 0, l = pointsValues.length; i < l; i += 4) {\n controlPoints.push(new Vector4().fromArray(pointsValues, i));\n }\n\n var startKnot, endKnot;\n\n if (geoNode.Form === 'Closed') {\n controlPoints.push(controlPoints[0]);\n } else if (geoNode.Form === 'Periodic') {\n startKnot = degree;\n endKnot = knots.length - 1 - startKnot;\n\n for (var i = 0; i < degree; ++i) {\n controlPoints.push(controlPoints[i]);\n }\n }\n\n var curve = new NURBSCurve(degree, knots, controlPoints, startKnot, endKnot);\n var vertices = curve.getPoints(controlPoints.length * 7);\n var positions = new Float32Array(vertices.length * 3);\n vertices.forEach(function (vertex, i) {\n vertex.toArray(positions, i * 3);\n });\n var geometry = new BufferGeometry();\n geometry.setAttribute('position', new BufferAttribute(positions, 3));\n return geometry;\n }\n }; // parse animation data from FBXTree\n\n function AnimationParser() {}\n\n AnimationParser.prototype = {\n constructor: AnimationParser,\n // take raw animation clips and turn them into three.js animation clips\n parse: function parse() {\n var animationClips = [];\n var rawClips = this.parseClips();\n\n if (rawClips !== undefined) {\n for (var key in rawClips) {\n var rawClip = rawClips[key];\n var clip = this.addClip(rawClip);\n animationClips.push(clip);\n }\n }\n\n return animationClips;\n },\n parseClips: function parseClips() {\n // since the actual transformation data is stored in FBXTree.Objects.AnimationCurve,\n // if this is undefined we can safely assume there are no animations\n if (fbxTree.Objects.AnimationCurve === undefined) return undefined;\n var curveNodesMap = this.parseAnimationCurveNodes();\n this.parseAnimationCurves(curveNodesMap);\n var layersMap = this.parseAnimationLayers(curveNodesMap);\n var rawClips = this.parseAnimStacks(layersMap);\n return rawClips;\n },\n // parse nodes in FBXTree.Objects.AnimationCurveNode\n // each AnimationCurveNode holds data for an animation transform for a model (e.g. left arm rotation )\n // and is referenced by an AnimationLayer\n parseAnimationCurveNodes: function parseAnimationCurveNodes() {\n var rawCurveNodes = fbxTree.Objects.AnimationCurveNode;\n var curveNodesMap = new Map();\n\n for (var nodeID in rawCurveNodes) {\n var rawCurveNode = rawCurveNodes[nodeID];\n\n if (rawCurveNode.attrName.match(/S|R|T|DeformPercent/) !== null) {\n var curveNode = {\n id: rawCurveNode.id,\n attr: rawCurveNode.attrName,\n curves: {}\n };\n curveNodesMap.set(curveNode.id, curveNode);\n }\n }\n\n return curveNodesMap;\n },\n // parse nodes in FBXTree.Objects.AnimationCurve and connect them up to\n // previously parsed AnimationCurveNodes. Each AnimationCurve holds data for a single animated\n // axis ( e.g. times and values of x rotation)\n parseAnimationCurves: function parseAnimationCurves(curveNodesMap) {\n var rawCurves = fbxTree.Objects.AnimationCurve; // TODO: Many values are identical up to roundoff error, but won't be optimised\n // e.g. position times: [0, 0.4, 0. 8]\n // position values: [7.23538335023477e-7, 93.67518615722656, -0.9982695579528809, 7.23538335023477e-7, 93.67518615722656, -0.9982695579528809, 7.235384487103147e-7, 93.67520904541016, -0.9982695579528809]\n // clearly, this should be optimised to\n // times: [0], positions [7.23538335023477e-7, 93.67518615722656, -0.9982695579528809]\n // this shows up in nearly every FBX file, and generally time array is length > 100\n\n for (var nodeID in rawCurves) {\n var animationCurve = {\n id: rawCurves[nodeID].id,\n times: rawCurves[nodeID].KeyTime.a.map(convertFBXTimeToSeconds),\n values: rawCurves[nodeID].KeyValueFloat.a\n };\n var relationships = connections.get(animationCurve.id);\n\n if (relationships !== undefined) {\n var animationCurveID = relationships.parents[0].ID;\n var animationCurveRelationship = relationships.parents[0].relationship;\n\n if (animationCurveRelationship.match(/X/)) {\n curveNodesMap.get(animationCurveID).curves['x'] = animationCurve;\n } else if (animationCurveRelationship.match(/Y/)) {\n curveNodesMap.get(animationCurveID).curves['y'] = animationCurve;\n } else if (animationCurveRelationship.match(/Z/)) {\n curveNodesMap.get(animationCurveID).curves['z'] = animationCurve;\n } else if (animationCurveRelationship.match(/d|DeformPercent/) && curveNodesMap.has(animationCurveID)) {\n curveNodesMap.get(animationCurveID).curves['morph'] = animationCurve;\n }\n }\n }\n },\n // parse nodes in FBXTree.Objects.AnimationLayer. Each layers holds references\n // to various AnimationCurveNodes and is referenced by an AnimationStack node\n // note: theoretically a stack can have multiple layers, however in practice there always seems to be one per stack\n parseAnimationLayers: function parseAnimationLayers(curveNodesMap) {\n var rawLayers = fbxTree.Objects.AnimationLayer;\n var layersMap = new Map();\n\n for (var nodeID in rawLayers) {\n var layerCurveNodes = [];\n var connection = connections.get(parseInt(nodeID));\n\n if (connection !== undefined) {\n // all the animationCurveNodes used in the layer\n var children = connection.children;\n children.forEach(function (child, i) {\n if (curveNodesMap.has(child.ID)) {\n var curveNode = curveNodesMap.get(child.ID); // check that the curves are defined for at least one axis, otherwise ignore the curveNode\n\n if (curveNode.curves.x !== undefined || curveNode.curves.y !== undefined || curveNode.curves.z !== undefined) {\n if (layerCurveNodes[i] === undefined) {\n var modelID = connections.get(child.ID).parents.filter(function (parent) {\n return parent.relationship !== undefined;\n })[0].ID;\n\n if (modelID !== undefined) {\n var rawModel = fbxTree.Objects.Model[modelID.toString()];\n var node = {\n modelName: rawModel.attrName ? PropertyBinding.sanitizeNodeName(rawModel.attrName) : '',\n ID: rawModel.id,\n initialPosition: [0, 0, 0],\n initialRotation: [0, 0, 0],\n initialScale: [1, 1, 1]\n };\n sceneGraph.traverse(function (child) {\n if (child.ID === rawModel.id) {\n node.transform = child.matrix;\n if (child.userData.transformData) node.eulerOrder = child.userData.transformData.eulerOrder;\n }\n });\n if (!node.transform) node.transform = new Matrix4(); // if the animated model is pre rotated, we'll have to apply the pre rotations to every\n // animation value as well\n\n if ('PreRotation' in rawModel) node.preRotation = rawModel.PreRotation.value;\n if ('PostRotation' in rawModel) node.postRotation = rawModel.PostRotation.value;\n layerCurveNodes[i] = node;\n }\n }\n\n if (layerCurveNodes[i]) layerCurveNodes[i][curveNode.attr] = curveNode;\n } else if (curveNode.curves.morph !== undefined) {\n if (layerCurveNodes[i] === undefined) {\n var deformerID = connections.get(child.ID).parents.filter(function (parent) {\n return parent.relationship !== undefined;\n })[0].ID;\n var morpherID = connections.get(deformerID).parents[0].ID;\n var geoID = connections.get(morpherID).parents[0].ID; // assuming geometry is not used in more than one model\n\n var modelID = connections.get(geoID).parents[0].ID;\n var rawModel = fbxTree.Objects.Model[modelID];\n var node = {\n modelName: rawModel.attrName ? PropertyBinding.sanitizeNodeName(rawModel.attrName) : '',\n morphName: fbxTree.Objects.Deformer[deformerID].attrName\n };\n layerCurveNodes[i] = node;\n }\n\n layerCurveNodes[i][curveNode.attr] = curveNode;\n }\n }\n });\n layersMap.set(parseInt(nodeID), layerCurveNodes);\n }\n }\n\n return layersMap;\n },\n // parse nodes in FBXTree.Objects.AnimationStack. These are the top level node in the animation\n // hierarchy. Each Stack node will be used to create a AnimationClip\n parseAnimStacks: function parseAnimStacks(layersMap) {\n var rawStacks = fbxTree.Objects.AnimationStack; // connect the stacks (clips) up to the layers\n\n var rawClips = {};\n\n for (var nodeID in rawStacks) {\n var children = connections.get(parseInt(nodeID)).children;\n\n if (children.length > 1) {\n // it seems like stacks will always be associated with a single layer. But just in case there are files\n // where there are multiple layers per stack, we'll display a warning\n console.warn('THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.');\n }\n\n var layer = layersMap.get(children[0].ID);\n rawClips[nodeID] = {\n name: rawStacks[nodeID].attrName,\n layer: layer\n };\n }\n\n return rawClips;\n },\n addClip: function addClip(rawClip) {\n var tracks = [];\n var self = this;\n rawClip.layer.forEach(function (rawTracks) {\n tracks = tracks.concat(self.generateTracks(rawTracks));\n });\n return new AnimationClip(rawClip.name, -1, tracks);\n },\n generateTracks: function generateTracks(rawTracks) {\n var tracks = [];\n var initialPosition = new Vector3();\n var initialRotation = new Quaternion();\n var initialScale = new Vector3();\n if (rawTracks.transform) rawTracks.transform.decompose(initialPosition, initialRotation, initialScale);\n initialPosition = initialPosition.toArray();\n initialRotation = new Euler().setFromQuaternion(initialRotation, rawTracks.eulerOrder).toArray();\n initialScale = initialScale.toArray();\n\n if (rawTracks.T !== undefined && Object.keys(rawTracks.T.curves).length > 0) {\n var positionTrack = this.generateVectorTrack(rawTracks.modelName, rawTracks.T.curves, initialPosition, 'position');\n if (positionTrack !== undefined) tracks.push(positionTrack);\n }\n\n if (rawTracks.R !== undefined && Object.keys(rawTracks.R.curves).length > 0) {\n var rotationTrack = this.generateRotationTrack(rawTracks.modelName, rawTracks.R.curves, initialRotation, rawTracks.preRotation, rawTracks.postRotation, rawTracks.eulerOrder);\n if (rotationTrack !== undefined) tracks.push(rotationTrack);\n }\n\n if (rawTracks.S !== undefined && Object.keys(rawTracks.S.curves).length > 0) {\n var scaleTrack = this.generateVectorTrack(rawTracks.modelName, rawTracks.S.curves, initialScale, 'scale');\n if (scaleTrack !== undefined) tracks.push(scaleTrack);\n }\n\n if (rawTracks.DeformPercent !== undefined) {\n var morphTrack = this.generateMorphTrack(rawTracks);\n if (morphTrack !== undefined) tracks.push(morphTrack);\n }\n\n return tracks;\n },\n generateVectorTrack: function generateVectorTrack(modelName, curves, initialValue, type) {\n var times = this.getTimesForAllAxes(curves);\n var values = this.getKeyframeTrackValues(times, curves, initialValue);\n return new VectorKeyframeTrack(modelName + '.' + type, times, values);\n },\n generateRotationTrack: function generateRotationTrack(modelName, curves, initialValue, preRotation, postRotation, eulerOrder) {\n if (curves.x !== undefined) {\n this.interpolateRotations(curves.x);\n curves.x.values = curves.x.values.map(_Math.degToRad);\n }\n\n if (curves.y !== undefined) {\n this.interpolateRotations(curves.y);\n curves.y.values = curves.y.values.map(_Math.degToRad);\n }\n\n if (curves.z !== undefined) {\n this.interpolateRotations(curves.z);\n curves.z.values = curves.z.values.map(_Math.degToRad);\n }\n\n var times = this.getTimesForAllAxes(curves);\n var values = this.getKeyframeTrackValues(times, curves, initialValue);\n\n if (preRotation !== undefined) {\n preRotation = preRotation.map(_Math.degToRad);\n preRotation.push(eulerOrder);\n preRotation = new Euler().fromArray(preRotation);\n preRotation = new Quaternion().setFromEuler(preRotation);\n }\n\n if (postRotation !== undefined) {\n postRotation = postRotation.map(_Math.degToRad);\n postRotation.push(eulerOrder);\n postRotation = new Euler().fromArray(postRotation);\n postRotation = new Quaternion().setFromEuler(postRotation).inverse();\n }\n\n var quaternion = new Quaternion();\n var euler = new Euler();\n var quaternionValues = [];\n\n for (var i = 0; i < values.length; i += 3) {\n euler.set(values[i], values[i + 1], values[i + 2], eulerOrder);\n quaternion.setFromEuler(euler);\n if (preRotation !== undefined) quaternion.premultiply(preRotation);\n if (postRotation !== undefined) quaternion.multiply(postRotation);\n quaternion.toArray(quaternionValues, i / 3 * 4);\n }\n\n return new QuaternionKeyframeTrack(modelName + '.quaternion', times, quaternionValues);\n },\n generateMorphTrack: function generateMorphTrack(rawTracks) {\n var curves = rawTracks.DeformPercent.curves.morph;\n var values = curves.values.map(function (val) {\n return val / 100;\n });\n var morphNum = sceneGraph.getObjectByName(rawTracks.modelName).morphTargetDictionary[rawTracks.morphName];\n return new NumberKeyframeTrack(rawTracks.modelName + '.morphTargetInfluences[' + morphNum + ']', curves.times, values);\n },\n // For all animated objects, times are defined separately for each axis\n // Here we'll combine the times into one sorted array without duplicates\n getTimesForAllAxes: function getTimesForAllAxes(curves) {\n var times = []; // first join together the times for each axis, if defined\n\n if (curves.x !== undefined) times = times.concat(curves.x.times);\n if (curves.y !== undefined) times = times.concat(curves.y.times);\n if (curves.z !== undefined) times = times.concat(curves.z.times); // then sort them and remove duplicates\n\n times = times.sort(function (a, b) {\n return a - b;\n }).filter(function (elem, index, array) {\n return array.indexOf(elem) == index;\n });\n return times;\n },\n getKeyframeTrackValues: function getKeyframeTrackValues(times, curves, initialValue) {\n var prevValue = initialValue;\n var values = [];\n var xIndex = -1;\n var yIndex = -1;\n var zIndex = -1;\n times.forEach(function (time) {\n if (curves.x) xIndex = curves.x.times.indexOf(time);\n if (curves.y) yIndex = curves.y.times.indexOf(time);\n if (curves.z) zIndex = curves.z.times.indexOf(time); // if there is an x value defined for this frame, use that\n\n if (xIndex !== -1) {\n var xValue = curves.x.values[xIndex];\n values.push(xValue);\n prevValue[0] = xValue;\n } else {\n // otherwise use the x value from the previous frame\n values.push(prevValue[0]);\n }\n\n if (yIndex !== -1) {\n var yValue = curves.y.values[yIndex];\n values.push(yValue);\n prevValue[1] = yValue;\n } else {\n values.push(prevValue[1]);\n }\n\n if (zIndex !== -1) {\n var zValue = curves.z.values[zIndex];\n values.push(zValue);\n prevValue[2] = zValue;\n } else {\n values.push(prevValue[2]);\n }\n });\n return values;\n },\n // Rotations are defined as Euler angles which can have values of any size\n // These will be converted to quaternions which don't support values greater than\n // PI, so we'll interpolate large rotations\n interpolateRotations: function interpolateRotations(curve) {\n for (var i = 1; i < curve.values.length; i++) {\n var initialValue = curve.values[i - 1];\n var valuesSpan = curve.values[i] - initialValue;\n var absoluteSpan = Math.abs(valuesSpan);\n\n if (absoluteSpan >= 180) {\n var numSubIntervals = absoluteSpan / 180;\n var step = valuesSpan / numSubIntervals;\n var nextValue = initialValue + step;\n var initialTime = curve.times[i - 1];\n var timeSpan = curve.times[i] - initialTime;\n var interval = timeSpan / numSubIntervals;\n var nextTime = initialTime + interval;\n var interpolatedTimes = [];\n var interpolatedValues = [];\n\n while (nextTime < curve.times[i]) {\n interpolatedTimes.push(nextTime);\n nextTime += interval;\n interpolatedValues.push(nextValue);\n nextValue += step;\n }\n\n curve.times = inject(curve.times, i, interpolatedTimes);\n curve.values = inject(curve.values, i, interpolatedValues);\n }\n }\n }\n }; // parse an FBX file in ASCII format\n\n function TextParser() {}\n\n TextParser.prototype = {\n constructor: TextParser,\n getPrevNode: function getPrevNode() {\n return this.nodeStack[this.currentIndent - 2];\n },\n getCurrentNode: function getCurrentNode() {\n return this.nodeStack[this.currentIndent - 1];\n },\n getCurrentProp: function getCurrentProp() {\n return this.currentProp;\n },\n pushStack: function pushStack(node) {\n this.nodeStack.push(node);\n this.currentIndent += 1;\n },\n popStack: function popStack() {\n this.nodeStack.pop();\n this.currentIndent -= 1;\n },\n setCurrentProp: function setCurrentProp(val, name) {\n this.currentProp = val;\n this.currentPropName = name;\n },\n parse: function parse(text) {\n this.currentIndent = 0;\n this.allNodes = new FBXTree();\n this.nodeStack = [];\n this.currentProp = [];\n this.currentPropName = '';\n var self = this;\n var split = text.split(/[\\r\\n]+/);\n split.forEach(function (line, i) {\n var matchComment = line.match(/^[\\s\\t]*;/);\n var matchEmpty = line.match(/^[\\s\\t]*$/);\n if (matchComment || matchEmpty) return;\n var matchBeginning = line.match('^\\\\t{' + self.currentIndent + '}(\\\\w+):(.*){', '');\n var matchProperty = line.match('^\\\\t{' + self.currentIndent + '}(\\\\w+):[\\\\s\\\\t\\\\r\\\\n](.*)');\n var matchEnd = line.match('^\\\\t{' + (self.currentIndent - 1) + '}}');\n\n if (matchBeginning) {\n self.parseNodeBegin(line, matchBeginning);\n } else if (matchProperty) {\n self.parseNodeProperty(line, matchProperty, split[++i]);\n } else if (matchEnd) {\n self.popStack();\n } else if (line.match(/^[^\\s\\t}]/)) {\n // large arrays are split over multiple lines terminated with a ',' character\n // if this is encountered the line needs to be joined to the previous line\n self.parseNodePropertyContinued(line);\n }\n });\n return this.allNodes;\n },\n parseNodeBegin: function parseNodeBegin(line, property) {\n var nodeName = property[1].trim().replace(/^\"/, '').replace(/\"$/, '');\n var nodeAttrs = property[2].split(',').map(function (attr) {\n return attr.trim().replace(/^\"/, '').replace(/\"$/, '');\n });\n var node = {\n name: nodeName\n };\n var attrs = this.parseNodeAttr(nodeAttrs);\n var currentNode = this.getCurrentNode(); // a top node\n\n if (this.currentIndent === 0) {\n this.allNodes.add(nodeName, node);\n } else {\n // a subnode\n // if the subnode already exists, append it\n if (nodeName in currentNode) {\n // special case Pose needs PoseNodes as an array\n if (nodeName === 'PoseNode') {\n currentNode.PoseNode.push(node);\n } else if (currentNode[nodeName].id !== undefined) {\n currentNode[nodeName] = {};\n currentNode[nodeName][currentNode[nodeName].id] = currentNode[nodeName];\n }\n\n if (attrs.id !== '') currentNode[nodeName][attrs.id] = node;\n } else if (typeof attrs.id === 'number') {\n currentNode[nodeName] = {};\n currentNode[nodeName][attrs.id] = node;\n } else if (nodeName !== 'Properties70') {\n if (nodeName === 'PoseNode') currentNode[nodeName] = [node];else currentNode[nodeName] = node;\n }\n }\n\n if (typeof attrs.id === 'number') node.id = attrs.id;\n if (attrs.name !== '') node.attrName = attrs.name;\n if (attrs.type !== '') node.attrType = attrs.type;\n this.pushStack(node);\n },\n parseNodeAttr: function parseNodeAttr(attrs) {\n var id = attrs[0];\n\n if (attrs[0] !== '') {\n id = parseInt(attrs[0]);\n\n if (isNaN(id)) {\n id = attrs[0];\n }\n }\n\n var name = '',\n type = '';\n\n if (attrs.length > 1) {\n name = attrs[1].replace(/^(\\w+)::/, '');\n type = attrs[2];\n }\n\n return {\n id: id,\n name: name,\n type: type\n };\n },\n parseNodeProperty: function parseNodeProperty(line, property, contentLine) {\n var propName = property[1].replace(/^\"/, '').replace(/\"$/, '').trim();\n var propValue = property[2].replace(/^\"/, '').replace(/\"$/, '').trim(); // for special case: base64 image data follows \"Content: ,\" line\n //\tContent: ,\n //\t \"/9j/4RDaRXhpZgAATU0A...\"\n\n if (propName === 'Content' && propValue === ',') {\n propValue = contentLine.replace(/\"/g, '').replace(/,$/, '').trim();\n }\n\n var currentNode = this.getCurrentNode();\n var parentName = currentNode.name;\n\n if (parentName === 'Properties70') {\n this.parseNodeSpecialProperty(line, propName, propValue);\n return;\n } // Connections\n\n\n if (propName === 'C') {\n var connProps = propValue.split(',').slice(1);\n var from = parseInt(connProps[0]);\n var to = parseInt(connProps[1]);\n var rest = propValue.split(',').slice(3);\n rest = rest.map(function (elem) {\n return elem.trim().replace(/^\"/, '');\n });\n propName = 'connections';\n propValue = [from, to];\n append(propValue, rest);\n\n if (currentNode[propName] === undefined) {\n currentNode[propName] = [];\n }\n } // Node\n\n\n if (propName === 'Node') currentNode.id = propValue; // connections\n\n if (propName in currentNode && Array.isArray(currentNode[propName])) {\n currentNode[propName].push(propValue);\n } else {\n if (propName !== 'a') currentNode[propName] = propValue;else currentNode.a = propValue;\n }\n\n this.setCurrentProp(currentNode, propName); // convert string to array, unless it ends in ',' in which case more will be added to it\n\n if (propName === 'a' && propValue.slice(-1) !== ',') {\n currentNode.a = parseNumberArray(propValue);\n }\n },\n parseNodePropertyContinued: function parseNodePropertyContinued(line) {\n var currentNode = this.getCurrentNode();\n currentNode.a += line; // if the line doesn't end in ',' we have reached the end of the property value\n // so convert the string to an array\n\n if (line.slice(-1) !== ',') {\n currentNode.a = parseNumberArray(currentNode.a);\n }\n },\n // parse \"Property70\"\n parseNodeSpecialProperty: function parseNodeSpecialProperty(line, propName, propValue) {\n // split this\n // P: \"Lcl Scaling\", \"Lcl Scaling\", \"\", \"A\",1,1,1\n // into array like below\n // [\"Lcl Scaling\", \"Lcl Scaling\", \"\", \"A\", \"1,1,1\" ]\n var props = propValue.split('\",').map(function (prop) {\n return prop.trim().replace(/^\\\"/, '').replace(/\\s/, '_');\n });\n var innerPropName = props[0];\n var innerPropType1 = props[1];\n var innerPropType2 = props[2];\n var innerPropFlag = props[3];\n var innerPropValue = props[4]; // cast values where needed, otherwise leave as strings\n\n switch (innerPropType1) {\n case 'int':\n case 'enum':\n case 'bool':\n case 'ULongLong':\n case 'double':\n case 'Number':\n case 'FieldOfView':\n innerPropValue = parseFloat(innerPropValue);\n break;\n\n case 'Color':\n case 'ColorRGB':\n case 'Vector3D':\n case 'Lcl_Translation':\n case 'Lcl_Rotation':\n case 'Lcl_Scaling':\n innerPropValue = parseNumberArray(innerPropValue);\n break;\n } // CAUTION: these props must append to parent's parent\n\n\n this.getPrevNode()[innerPropName] = {\n 'type': innerPropType1,\n 'type2': innerPropType2,\n 'flag': innerPropFlag,\n 'value': innerPropValue\n };\n this.setCurrentProp(this.getPrevNode(), innerPropName);\n }\n }; // Parse an FBX file in Binary format\n\n function BinaryParser() {}\n\n BinaryParser.prototype = {\n constructor: BinaryParser,\n parse: function parse(buffer) {\n var reader = new BinaryReader(buffer);\n reader.skip(23); // skip magic 23 bytes\n\n var version = reader.getUint32();\n console.log('THREE.FBXLoader: FBX binary version: ' + version);\n var allNodes = new FBXTree();\n\n while (!this.endOfContent(reader)) {\n var node = this.parseNode(reader, version);\n if (node !== null) allNodes.add(node.name, node);\n }\n\n return allNodes;\n },\n // Check if reader has reached the end of content.\n endOfContent: function endOfContent(reader) {\n // footer size: 160bytes + 16-byte alignment padding\n // - 16bytes: magic\n // - padding til 16-byte alignment (at least 1byte?)\n //\t(seems like some exporters embed fixed 15 or 16bytes?)\n // - 4bytes: magic\n // - 4bytes: version\n // - 120bytes: zero\n // - 16bytes: magic\n if (reader.size() % 16 === 0) {\n return (reader.getOffset() + 160 + 16 & ~0xf) >= reader.size();\n } else {\n return reader.getOffset() + 160 + 16 >= reader.size();\n }\n },\n // recursively parse nodes until the end of the file is reached\n parseNode: function parseNode(reader, version) {\n var node = {}; // The first three data sizes depends on version.\n\n var endOffset = version >= 7500 ? reader.getUint64() : reader.getUint32();\n var numProperties = version >= 7500 ? reader.getUint64() : reader.getUint32(); // note: do not remove this even if you get a linter warning as it moves the buffer forward\n\n var propertyListLen = version >= 7500 ? reader.getUint64() : reader.getUint32();\n var nameLen = reader.getUint8();\n var name = reader.getString(nameLen); // Regards this node as NULL-record if endOffset is zero\n\n if (endOffset === 0) return null;\n var propertyList = [];\n\n for (var i = 0; i < numProperties; i++) {\n propertyList.push(this.parseProperty(reader));\n } // Regards the first three elements in propertyList as id, attrName, and attrType\n\n\n var id = propertyList.length > 0 ? propertyList[0] : '';\n var attrName = propertyList.length > 1 ? propertyList[1] : '';\n var attrType = propertyList.length > 2 ? propertyList[2] : ''; // check if this node represents just a single property\n // like (name, 0) set or (name2, [0, 1, 2]) set of {name: 0, name2: [0, 1, 2]}\n\n node.singleProperty = numProperties === 1 && reader.getOffset() === endOffset ? true : false;\n\n while (endOffset > reader.getOffset()) {\n var subNode = this.parseNode(reader, version);\n if (subNode !== null) this.parseSubNode(name, node, subNode);\n }\n\n node.propertyList = propertyList; // raw property list used by parent\n\n if (typeof id === 'number') node.id = id;\n if (attrName !== '') node.attrName = attrName;\n if (attrType !== '') node.attrType = attrType;\n if (name !== '') node.name = name;\n return node;\n },\n parseSubNode: function parseSubNode(name, node, subNode) {\n // special case: child node is single property\n if (subNode.singleProperty === true) {\n var value = subNode.propertyList[0];\n\n if (Array.isArray(value)) {\n node[subNode.name] = subNode;\n subNode.a = value;\n } else {\n node[subNode.name] = value;\n }\n } else if (name === 'Connections' && subNode.name === 'C') {\n var array = [];\n subNode.propertyList.forEach(function (property, i) {\n // first Connection is FBX type (OO, OP, etc.). We'll discard these\n if (i !== 0) array.push(property);\n });\n\n if (node.connections === undefined) {\n node.connections = [];\n }\n\n node.connections.push(array);\n } else if (subNode.name === 'Properties70') {\n var keys = Object.keys(subNode);\n keys.forEach(function (key) {\n node[key] = subNode[key];\n });\n } else if (name === 'Properties70' && subNode.name === 'P') {\n var innerPropName = subNode.propertyList[0];\n var innerPropType1 = subNode.propertyList[1];\n var innerPropType2 = subNode.propertyList[2];\n var innerPropFlag = subNode.propertyList[3];\n var innerPropValue;\n if (innerPropName.indexOf('Lcl ') === 0) innerPropName = innerPropName.replace('Lcl ', 'Lcl_');\n if (innerPropType1.indexOf('Lcl ') === 0) innerPropType1 = innerPropType1.replace('Lcl ', 'Lcl_');\n\n if (innerPropType1 === 'Color' || innerPropType1 === 'ColorRGB' || innerPropType1 === 'Vector' || innerPropType1 === 'Vector3D' || innerPropType1.indexOf('Lcl_') === 0) {\n innerPropValue = [subNode.propertyList[4], subNode.propertyList[5], subNode.propertyList[6]];\n } else {\n innerPropValue = subNode.propertyList[4];\n } // this will be copied to parent, see above\n\n\n node[innerPropName] = {\n 'type': innerPropType1,\n 'type2': innerPropType2,\n 'flag': innerPropFlag,\n 'value': innerPropValue\n };\n } else if (node[subNode.name] === undefined) {\n if (typeof subNode.id === 'number') {\n node[subNode.name] = {};\n node[subNode.name][subNode.id] = subNode;\n } else {\n node[subNode.name] = subNode;\n }\n } else {\n if (subNode.name === 'PoseNode') {\n if (!Array.isArray(node[subNode.name])) {\n node[subNode.name] = [node[subNode.name]];\n }\n\n node[subNode.name].push(subNode);\n } else if (node[subNode.name][subNode.id] === undefined) {\n node[subNode.name][subNode.id] = subNode;\n }\n }\n },\n parseProperty: function parseProperty(reader) {\n var type = reader.getString(1);\n\n switch (type) {\n case 'C':\n return reader.getBoolean();\n\n case 'D':\n return reader.getFloat64();\n\n case 'F':\n return reader.getFloat32();\n\n case 'I':\n return reader.getInt32();\n\n case 'L':\n return reader.getInt64();\n\n case 'R':\n var length = reader.getUint32();\n return reader.getArrayBuffer(length);\n\n case 'S':\n var length = reader.getUint32();\n return reader.getString(length);\n\n case 'Y':\n return reader.getInt16();\n\n case 'b':\n case 'c':\n case 'd':\n case 'f':\n case 'i':\n case 'l':\n var arrayLength = reader.getUint32();\n var encoding = reader.getUint32(); // 0: non-compressed, 1: compressed\n\n var compressedLength = reader.getUint32();\n\n if (encoding === 0) {\n switch (type) {\n case 'b':\n case 'c':\n return reader.getBooleanArray(arrayLength);\n\n case 'd':\n return reader.getFloat64Array(arrayLength);\n\n case 'f':\n return reader.getFloat32Array(arrayLength);\n\n case 'i':\n return reader.getInt32Array(arrayLength);\n\n case 'l':\n return reader.getInt64Array(arrayLength);\n }\n }\n\n if (typeof Zlib === 'undefined') {\n console.error('THREE.FBXLoader: External library Inflate.min.js required, obtain or import from https://github.com/imaya/zlib.js');\n }\n\n var inflate = new Zlib.Inflate(new Uint8Array(reader.getArrayBuffer(compressedLength))); // eslint-disable-line no-undef\n\n var reader2 = new BinaryReader(inflate.decompress().buffer);\n\n switch (type) {\n case 'b':\n case 'c':\n return reader2.getBooleanArray(arrayLength);\n\n case 'd':\n return reader2.getFloat64Array(arrayLength);\n\n case 'f':\n return reader2.getFloat32Array(arrayLength);\n\n case 'i':\n return reader2.getInt32Array(arrayLength);\n\n case 'l':\n return reader2.getInt64Array(arrayLength);\n }\n\n default:\n throw new Error('THREE.FBXLoader: Unknown property type ' + type);\n }\n }\n };\n\n function BinaryReader(buffer, littleEndian) {\n this.dv = new DataView(buffer);\n this.offset = 0;\n this.littleEndian = littleEndian !== undefined ? littleEndian : true;\n }\n\n BinaryReader.prototype = {\n constructor: BinaryReader,\n getOffset: function getOffset() {\n return this.offset;\n },\n size: function size() {\n return this.dv.buffer.byteLength;\n },\n skip: function skip(length) {\n this.offset += length;\n },\n // seems like true/false representation depends on exporter.\n // true: 1 or 'Y'(=0x59), false: 0 or 'T'(=0x54)\n // then sees LSB.\n getBoolean: function getBoolean() {\n return (this.getUint8() & 1) === 1;\n },\n getBooleanArray: function getBooleanArray(size) {\n var a = [];\n\n for (var i = 0; i < size; i++) {\n a.push(this.getBoolean());\n }\n\n return a;\n },\n getUint8: function getUint8() {\n var value = this.dv.getUint8(this.offset);\n this.offset += 1;\n return value;\n },\n getInt16: function getInt16() {\n var value = this.dv.getInt16(this.offset, this.littleEndian);\n this.offset += 2;\n return value;\n },\n getInt32: function getInt32() {\n var value = this.dv.getInt32(this.offset, this.littleEndian);\n this.offset += 4;\n return value;\n },\n getInt32Array: function getInt32Array(size) {\n var a = [];\n\n for (var i = 0; i < size; i++) {\n a.push(this.getInt32());\n }\n\n return a;\n },\n getUint32: function getUint32() {\n var value = this.dv.getUint32(this.offset, this.littleEndian);\n this.offset += 4;\n return value;\n },\n // JavaScript doesn't support 64-bit integer so calculate this here\n // 1 << 32 will return 1 so using multiply operation instead here.\n // There's a possibility that this method returns wrong value if the value\n // is out of the range between Number.MAX_SAFE_INTEGER and Number.MIN_SAFE_INTEGER.\n // TODO: safely handle 64-bit integer\n getInt64: function getInt64() {\n var low, high;\n\n if (this.littleEndian) {\n low = this.getUint32();\n high = this.getUint32();\n } else {\n high = this.getUint32();\n low = this.getUint32();\n } // calculate negative value\n\n\n if (high & 0x80000000) {\n high = ~high & 0xFFFFFFFF;\n low = ~low & 0xFFFFFFFF;\n if (low === 0xFFFFFFFF) high = high + 1 & 0xFFFFFFFF;\n low = low + 1 & 0xFFFFFFFF;\n return -(high * 0x100000000 + low);\n }\n\n return high * 0x100000000 + low;\n },\n getInt64Array: function getInt64Array(size) {\n var a = [];\n\n for (var i = 0; i < size; i++) {\n a.push(this.getInt64());\n }\n\n return a;\n },\n // Note: see getInt64() comment\n getUint64: function getUint64() {\n var low, high;\n\n if (this.littleEndian) {\n low = this.getUint32();\n high = this.getUint32();\n } else {\n high = this.getUint32();\n low = this.getUint32();\n }\n\n return high * 0x100000000 + low;\n },\n getFloat32: function getFloat32() {\n var value = this.dv.getFloat32(this.offset, this.littleEndian);\n this.offset += 4;\n return value;\n },\n getFloat32Array: function getFloat32Array(size) {\n var a = [];\n\n for (var i = 0; i < size; i++) {\n a.push(this.getFloat32());\n }\n\n return a;\n },\n getFloat64: function getFloat64() {\n var value = this.dv.getFloat64(this.offset, this.littleEndian);\n this.offset += 8;\n return value;\n },\n getFloat64Array: function getFloat64Array(size) {\n var a = [];\n\n for (var i = 0; i < size; i++) {\n a.push(this.getFloat64());\n }\n\n return a;\n },\n getArrayBuffer: function getArrayBuffer(size) {\n var value = this.dv.buffer.slice(this.offset, this.offset + size);\n this.offset += size;\n return value;\n },\n getString: function getString(size) {\n // note: safari 9 doesn't support Uint8Array.indexOf; create intermediate array instead\n var a = [];\n\n for (var i = 0; i < size; i++) {\n a[i] = this.getUint8();\n }\n\n var nullByte = a.indexOf(0);\n if (nullByte >= 0) a = a.slice(0, nullByte);\n return LoaderUtils.decodeText(new Uint8Array(a));\n }\n }; // FBXTree holds a representation of the FBX data, returned by the TextParser ( FBX ASCII format)\n // and BinaryParser( FBX Binary format)\n\n function FBXTree() {}\n\n FBXTree.prototype = {\n constructor: FBXTree,\n add: function add(key, val) {\n this[key] = val;\n }\n }; // ************** UTILITY FUNCTIONS **************\n\n function isFbxFormatBinary(buffer) {\n var CORRECT = 'Kaydara FBX Binary \\0';\n return buffer.byteLength >= CORRECT.length && CORRECT === convertArrayBufferToString(buffer, 0, CORRECT.length);\n }\n\n function isFbxFormatASCII(text) {\n var CORRECT = ['K', 'a', 'y', 'd', 'a', 'r', 'a', '\\\\', 'F', 'B', 'X', '\\\\', 'B', 'i', 'n', 'a', 'r', 'y', '\\\\', '\\\\'];\n var cursor = 0;\n\n function read(offset) {\n var result = text[offset - 1];\n text = text.slice(cursor + offset);\n cursor++;\n return result;\n }\n\n for (var i = 0; i < CORRECT.length; ++i) {\n var num = read(1);\n\n if (num === CORRECT[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n function getFbxVersion(text) {\n var versionRegExp = /FBXVersion: (\\d+)/;\n var match = text.match(versionRegExp);\n\n if (match) {\n var version = parseInt(match[1]);\n return version;\n }\n\n throw new Error('THREE.FBXLoader: Cannot find the version number for the file given.');\n } // Converts FBX ticks into real time seconds.\n\n\n function convertFBXTimeToSeconds(time) {\n return time / 46186158000;\n }\n\n var dataArray = []; // extracts the data from the correct position in the FBX array based on indexing type\n\n function getData(polygonVertexIndex, polygonIndex, vertexIndex, infoObject) {\n var index;\n\n switch (infoObject.mappingType) {\n case 'ByPolygonVertex':\n index = polygonVertexIndex;\n break;\n\n case 'ByPolygon':\n index = polygonIndex;\n break;\n\n case 'ByVertice':\n index = vertexIndex;\n break;\n\n case 'AllSame':\n index = infoObject.indices[0];\n break;\n\n default:\n console.warn('THREE.FBXLoader: unknown attribute mapping type ' + infoObject.mappingType);\n }\n\n if (infoObject.referenceType === 'IndexToDirect') index = infoObject.indices[index];\n var from = index * infoObject.dataSize;\n var to = from + infoObject.dataSize;\n return slice(dataArray, infoObject.buffer, from, to);\n }\n\n var tempEuler = new Euler();\n var tempVec = new Vector3(); // generate transformation from FBX transform data\n // ref: https://help.autodesk.com/view/FBX/2017/ENU/?guid=__files_GUID_10CDD63C_79C1_4F2D_BB28_AD2BE65A02ED_htm\n // ref: http://docs.autodesk.com/FBX/2014/ENU/FBX-SDK-Documentation/index.html?url=cpp_ref/_transformations_2main_8cxx-example.html,topicNumber=cpp_ref__transformations_2main_8cxx_example_htmlfc10a1e1-b18d-4e72-9dc0-70d0f1959f5e\n\n function generateTransform(transformData) {\n var lTranslationM = new Matrix4();\n var lPreRotationM = new Matrix4();\n var lRotationM = new Matrix4();\n var lPostRotationM = new Matrix4();\n var lScalingM = new Matrix4();\n var lScalingPivotM = new Matrix4();\n var lScalingOffsetM = new Matrix4();\n var lRotationOffsetM = new Matrix4();\n var lRotationPivotM = new Matrix4();\n var lParentGX = new Matrix4();\n var lGlobalT = new Matrix4();\n var inheritType = transformData.inheritType ? transformData.inheritType : 0;\n if (transformData.translation) lTranslationM.setPosition(tempVec.fromArray(transformData.translation));\n\n if (transformData.preRotation) {\n var array = transformData.preRotation.map(_Math.degToRad);\n array.push(transformData.eulerOrder);\n lPreRotationM.makeRotationFromEuler(tempEuler.fromArray(array));\n }\n\n if (transformData.rotation) {\n var array = transformData.rotation.map(_Math.degToRad);\n array.push(transformData.eulerOrder);\n lRotationM.makeRotationFromEuler(tempEuler.fromArray(array));\n }\n\n if (transformData.postRotation) {\n var array = transformData.postRotation.map(_Math.degToRad);\n array.push(transformData.eulerOrder);\n lPostRotationM.makeRotationFromEuler(tempEuler.fromArray(array));\n }\n\n if (transformData.scale) lScalingM.scale(tempVec.fromArray(transformData.scale)); // Pivots and offsets\n\n if (transformData.scalingOffset) lScalingOffsetM.setPosition(tempVec.fromArray(transformData.scalingOffset));\n if (transformData.scalingPivot) lScalingPivotM.setPosition(tempVec.fromArray(transformData.scalingPivot));\n if (transformData.rotationOffset) lRotationOffsetM.setPosition(tempVec.fromArray(transformData.rotationOffset));\n if (transformData.rotationPivot) lRotationPivotM.setPosition(tempVec.fromArray(transformData.rotationPivot)); // parent transform\n\n if (transformData.parentMatrixWorld) lParentGX = transformData.parentMatrixWorld; // Global Rotation\n\n var lLRM = lPreRotationM.multiply(lRotationM).multiply(lPostRotationM);\n var lParentGRM = new Matrix4();\n lParentGX.extractRotation(lParentGRM); // Global Shear*Scaling\n\n var lParentTM = new Matrix4();\n var lLSM;\n var lParentGSM;\n var lParentGRSM;\n lParentTM.copyPosition(lParentGX);\n lParentGRSM = lParentTM.getInverse(lParentTM).multiply(lParentGX);\n lParentGSM = lParentGRM.getInverse(lParentGRM).multiply(lParentGRSM);\n lLSM = lScalingM;\n var lGlobalRS;\n\n if (inheritType === 0) {\n lGlobalRS = lParentGRM.multiply(lLRM).multiply(lParentGSM).multiply(lLSM);\n } else if (inheritType === 1) {\n lGlobalRS = lParentGRM.multiply(lParentGSM).multiply(lLRM).multiply(lLSM);\n } else {\n var lParentLSM = new Matrix4().copy(lScalingM);\n var lParentGSM_noLocal = lParentGSM.multiply(lParentLSM.getInverse(lParentLSM));\n lGlobalRS = lParentGRM.multiply(lLRM).multiply(lParentGSM_noLocal).multiply(lLSM);\n } // Calculate the local transform matrix\n\n\n var lTransform = lTranslationM.multiply(lRotationOffsetM).multiply(lRotationPivotM).multiply(lPreRotationM).multiply(lRotationM).multiply(lPostRotationM).multiply(lRotationPivotM.getInverse(lRotationPivotM)).multiply(lScalingOffsetM).multiply(lScalingPivotM).multiply(lScalingM).multiply(lScalingPivotM.getInverse(lScalingPivotM));\n var lLocalTWithAllPivotAndOffsetInfo = new Matrix4().copyPosition(lTransform);\n var lGlobalTranslation = lParentGX.multiply(lLocalTWithAllPivotAndOffsetInfo);\n lGlobalT.copyPosition(lGlobalTranslation);\n lTransform = lGlobalT.multiply(lGlobalRS);\n return lTransform;\n } // Returns the three.js intrinsic Euler order corresponding to FBX extrinsic Euler order\n // ref: http://help.autodesk.com/view/FBX/2017/ENU/?guid=__cpp_ref_class_fbx_euler_html\n\n\n function getEulerOrder(order) {\n order = order || 0;\n var enums = ['ZYX', // -> XYZ extrinsic\n 'YZX', // -> XZY extrinsic\n 'XZY', // -> YZX extrinsic\n 'ZXY', // -> YXZ extrinsic\n 'YXZ', // -> ZXY extrinsic\n 'XYZ' // -> ZYX extrinsic\n //'SphericXYZ', // not possible to support\n ];\n\n if (order === 6) {\n console.warn('THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect.');\n return enums[0];\n }\n\n return enums[order];\n } // Parses comma separated list of numbers and returns them an array.\n // Used internally by the TextParser\n\n\n function parseNumberArray(value) {\n var array = value.split(',').map(function (val) {\n return parseFloat(val);\n });\n return array;\n }\n\n function convertArrayBufferToString(buffer, from, to) {\n if (from === undefined) from = 0;\n if (to === undefined) to = buffer.byteLength;\n return LoaderUtils.decodeText(new Uint8Array(buffer, from, to));\n }\n\n function append(a, b) {\n for (var i = 0, j = a.length, l = b.length; i < l; i++, j++) {\n a[j] = b[i];\n }\n }\n\n function slice(a, b, from, to) {\n for (var i = from, j = 0; i < to; i++, j++) {\n a[j] = b[i];\n }\n\n return a;\n } // inject array a2 into array a1 at index\n\n\n function inject(a1, index, a2) {\n return a1.slice(0, index).concat(a2).concat(a1.slice(index));\n }\n\n return FBXLoader;\n}();\n\nexport { FBXLoader };","var isObject = require('../internals/is-object'); // `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\n\n\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};","var defineProperty = require('../internals/object-define-property').f;\n\nvar has = require('../internals/has');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, {\n configurable: true,\n value: TAG\n });\n }\n};","var IS_PURE = require('../internals/is-pure');\n\nvar getIterator = require('../internals/get-iterator');\n\nmodule.exports = IS_PURE ? getIterator : function (it) {\n // eslint-disable-next-line no-undef\n return Map.prototype.entries.call(it);\n};","var freeGlobal = require('./_freeGlobal');\n/** Detect free variable `self`. */\n\n\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\nmodule.exports = root;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.red = exports.getContrastingColor = exports.isValidHex = exports.toState = exports.simpleCheckForValidColor = undefined;\n\nvar _each = require('lodash/each');\n\nvar _each2 = _interopRequireDefault(_each);\n\nvar _tinycolor = require('tinycolor2');\n\nvar _tinycolor2 = _interopRequireDefault(_tinycolor);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar simpleCheckForValidColor = exports.simpleCheckForValidColor = function simpleCheckForValidColor(data) {\n var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];\n var checked = 0;\n var passed = 0;\n (0, _each2.default)(keysToCheck, function (letter) {\n if (data[letter]) {\n checked += 1;\n\n if (!isNaN(data[letter])) {\n passed += 1;\n }\n\n if (letter === 's' || letter === 'l') {\n var percentPatt = /^\\d+%$/;\n\n if (percentPatt.test(data[letter])) {\n passed += 1;\n }\n }\n }\n });\n return checked === passed ? data : false;\n};\n\nvar toState = exports.toState = function toState(data, oldHue) {\n var color = data.hex ? (0, _tinycolor2.default)(data.hex) : (0, _tinycolor2.default)(data);\n var hsl = color.toHsl();\n var hsv = color.toHsv();\n var rgb = color.toRgb();\n var hex = color.toHex();\n\n if (hsl.s === 0) {\n hsl.h = oldHue || 0;\n hsv.h = oldHue || 0;\n }\n\n var transparent = hex === '000000' && rgb.a === 0;\n return {\n hsl: hsl,\n hex: transparent ? 'transparent' : '#' + hex,\n rgb: rgb,\n hsv: hsv,\n oldHue: data.h || oldHue || hsl.h,\n source: data.source\n };\n};\n\nvar isValidHex = exports.isValidHex = function isValidHex(hex) {\n // disable hex4 and hex8\n var lh = String(hex).charAt(0) === '#' ? 1 : 0;\n return hex.length !== 4 + lh && hex.length < 7 + lh && (0, _tinycolor2.default)(hex).isValid();\n};\n\nvar getContrastingColor = exports.getContrastingColor = function getContrastingColor(data) {\n if (!data) {\n return '#fff';\n }\n\n var col = toState(data);\n\n if (col.hex === 'transparent') {\n return 'rgba(0,0,0,0.4)';\n }\n\n var yiq = (col.rgb.r * 299 + col.rgb.g * 587 + col.rgb.b * 114) / 1000;\n return yiq >= 128 ? '#000' : '#fff';\n};\n\nvar red = exports.red = {\n hsl: {\n a: 1,\n h: 0,\n l: 0.5,\n s: 1\n },\n hex: '#ff0000',\n rgb: {\n r: 255,\n g: 0,\n b: 0,\n a: 1\n },\n hsv: {\n h: 0,\n s: 1,\n v: 1,\n a: 1\n }\n};\nexports.default = exports;","import _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport createContext from 'create-react-context';\nexport var ManagerReferenceNodeContext = createContext();\nexport var ManagerReferenceNodeSetterContext = createContext();\n\nvar Manager = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Manager, _React$Component);\n\n function Manager() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"referenceNode\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"setReferenceNode\", function (newReferenceNode) {\n if (newReferenceNode && _this.referenceNode !== newReferenceNode) {\n _this.referenceNode = newReferenceNode;\n\n _this.forceUpdate();\n }\n });\n\n return _this;\n }\n\n var _proto = Manager.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.referenceNode = null;\n };\n\n _proto.render = function render() {\n return React.createElement(ManagerReferenceNodeContext.Provider, {\n value: this.referenceNode\n }, React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: this.setReferenceNode\n }, this.props.children));\n };\n\n return Manager;\n}(React.Component);\n\nexport { Manager as default };","/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === \"function\") {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Does a shallow equality check of two objects by comparing the reference\n * equality of each value.\n */\n\nexport var shallowEqual = function shallowEqual(objA, objB) {\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n\n if (bKeys.length !== aKeys.length) {\n return false;\n }\n\n for (var i = 0; i < bKeys.length; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key]) {\n return false;\n }\n }\n\n return true;\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === \"function\") {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport warning from 'warning';\nimport { ManagerReferenceNodeSetterContext } from './Manager';\nimport { safeInvoke, unwrapArray, setRef } from './utils';\n\nvar InnerReference = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InnerReference, _React$Component);\n\n function InnerReference() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"refHandler\", function (node) {\n setRef(_this.props.innerRef, node);\n safeInvoke(_this.props.setReferenceNode, node);\n });\n\n return _this;\n }\n\n var _proto = InnerReference.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n setRef(this.props.innerRef, null);\n };\n\n _proto.render = function render() {\n warning(Boolean(this.props.setReferenceNode), '`Reference` should not be used outside of a `Manager` component.');\n return unwrapArray(this.props.children)({\n ref: this.refHandler\n });\n };\n\n return InnerReference;\n}(React.Component);\n\nexport default function Reference(props) {\n return React.createElement(ManagerReferenceNodeSetterContext.Consumer, null, function (setReferenceNode) {\n return React.createElement(InnerReference, _extends({\n setReferenceNode: setReferenceNode\n }, props));\n });\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport deepEqual from \"deep-equal\";\nimport * as React from 'react';\nimport PopperJS from 'popper.js';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef, shallowEqual } from './utils';\nvar initialStyle = {\n position: 'absolute',\n top: 0,\n left: 0,\n opacity: 0,\n pointerEvents: 'none'\n};\nvar initialArrowStyle = {};\nexport var InnerPopper = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InnerPopper, _React$Component);\n\n function InnerPopper() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n data: undefined,\n placement: undefined\n });\n\n _defineProperty(_assertThisInitialized(_this), \"popperInstance\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"popperNode\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"arrowNode\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"setPopperNode\", function (popperNode) {\n if (!popperNode || _this.popperNode === popperNode) return;\n setRef(_this.props.innerRef, popperNode);\n _this.popperNode = popperNode;\n\n _this.updatePopperInstance();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setArrowNode\", function (arrowNode) {\n _this.arrowNode = arrowNode;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateStateModifier\", {\n enabled: true,\n order: 900,\n fn: function fn(data) {\n var placement = data.placement;\n\n _this.setState({\n data: data,\n placement: placement\n });\n\n return data;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getOptions\", function () {\n return {\n placement: _this.props.placement,\n eventsEnabled: _this.props.eventsEnabled,\n positionFixed: _this.props.positionFixed,\n modifiers: _extends({}, _this.props.modifiers, {\n arrow: _extends({}, _this.props.modifiers && _this.props.modifiers.arrow, {\n enabled: !!_this.arrowNode,\n element: _this.arrowNode\n }),\n applyStyle: {\n enabled: false\n },\n updateStateModifier: _this.updateStateModifier\n })\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getPopperStyle\", function () {\n return !_this.popperNode || !_this.state.data ? initialStyle : _extends({\n position: _this.state.data.offsets.popper.position\n }, _this.state.data.styles);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getPopperPlacement\", function () {\n return !_this.state.data ? undefined : _this.state.placement;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getArrowStyle\", function () {\n return !_this.arrowNode || !_this.state.data ? initialArrowStyle : _this.state.data.arrowStyles;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getOutOfBoundariesState\", function () {\n return _this.state.data ? _this.state.data.hide : undefined;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"destroyPopperInstance\", function () {\n if (!_this.popperInstance) return;\n\n _this.popperInstance.destroy();\n\n _this.popperInstance = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updatePopperInstance\", function () {\n _this.destroyPopperInstance();\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n popperNode = _assertThisInitialize.popperNode;\n\n var referenceElement = _this.props.referenceElement;\n if (!referenceElement || !popperNode) return;\n _this.popperInstance = new PopperJS(referenceElement, popperNode, _this.getOptions());\n });\n\n _defineProperty(_assertThisInitialized(_this), \"scheduleUpdate\", function () {\n if (_this.popperInstance) {\n _this.popperInstance.scheduleUpdate();\n }\n });\n\n return _this;\n }\n\n var _proto = InnerPopper.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // If the Popper.js options have changed, update the instance (destroy + create)\n if (this.props.placement !== prevProps.placement || this.props.referenceElement !== prevProps.referenceElement || this.props.positionFixed !== prevProps.positionFixed || !deepEqual(this.props.modifiers, prevProps.modifiers, {\n strict: true\n })) {\n // develop only check that modifiers isn't being updated needlessly\n if (process.env.NODE_ENV === \"development\") {\n if (this.props.modifiers !== prevProps.modifiers && this.props.modifiers != null && prevProps.modifiers != null && shallowEqual(this.props.modifiers, prevProps.modifiers)) {\n console.warn(\"'modifiers' prop reference updated even though all values appear the same.\\nConsider memoizing the 'modifiers' object to avoid needless rendering.\");\n }\n }\n\n this.updatePopperInstance();\n } else if (this.props.eventsEnabled !== prevProps.eventsEnabled && this.popperInstance) {\n this.props.eventsEnabled ? this.popperInstance.enableEventListeners() : this.popperInstance.disableEventListeners();\n } // A placement difference in state means popper determined a new placement\n // apart from the props value. By the time the popper element is rendered with\n // the new position Popper has already measured it, if the place change triggers\n // a size change it will result in a misaligned popper. So we schedule an update to be sure.\n\n\n if (prevState.placement !== this.state.placement) {\n this.scheduleUpdate();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n setRef(this.props.innerRef, null);\n this.destroyPopperInstance();\n };\n\n _proto.render = function render() {\n return unwrapArray(this.props.children)({\n ref: this.setPopperNode,\n style: this.getPopperStyle(),\n placement: this.getPopperPlacement(),\n outOfBoundaries: this.getOutOfBoundariesState(),\n scheduleUpdate: this.scheduleUpdate,\n arrowProps: {\n ref: this.setArrowNode,\n style: this.getArrowStyle()\n }\n });\n };\n\n return InnerPopper;\n}(React.Component);\n\n_defineProperty(InnerPopper, \"defaultProps\", {\n placement: 'bottom',\n eventsEnabled: true,\n referenceElement: undefined,\n positionFixed: false\n});\n\nvar placements = PopperJS.placements;\nexport { placements };\nexport default function Popper(_ref) {\n var referenceElement = _ref.referenceElement,\n props = _objectWithoutPropertiesLoose(_ref, [\"referenceElement\"]);\n\n return React.createElement(ManagerReferenceNodeContext.Consumer, null, function (referenceNode) {\n return React.createElement(InnerPopper, _extends({\n referenceElement: referenceElement !== undefined ? referenceElement : referenceNode\n }, props));\n });\n}","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Popper placement utils\n// ======================\n\n/** Converts a full placement to one of the four positions by stripping text after the `-`. */\nexport function getPosition(placement) {\n return placement.split(\"-\")[0];\n}\n/** Returns true if position is left or right. */\n\nexport function isVerticalPosition(side) {\n return [\"left\", \"right\"].indexOf(side) !== -1;\n}\n/** Returns the opposite position. */\n\nexport function getOppositePosition(side) {\n switch (side) {\n case \"top\":\n return \"bottom\";\n\n case \"left\":\n return \"right\";\n\n case \"bottom\":\n return \"top\";\n\n default:\n return \"left\";\n }\n}\n/** Returns the CSS alignment keyword corresponding to given placement. */\n\nexport function getAlignment(placement) {\n var align = placement.split(\"-\")[1];\n\n switch (align) {\n case \"start\":\n return \"left\";\n\n case \"end\":\n return \"right\";\n\n default:\n return \"center\";\n }\n} // Popper modifiers\n// ================\n\n/** Modifier helper function to compute popper transform-origin based on arrow position */\n\nexport function getTransformOrigin(data) {\n var position = getPosition(data.placement);\n\n if (data.arrowElement == null) {\n return isVerticalPosition(position) ? getOppositePosition(position) + \" \" + getAlignment(position) : getAlignment(position) + \" \" + getOppositePosition(position);\n } else {\n var arrowSizeShift = data.arrowElement.clientHeight / 2;\n var arrow = data.offsets.arrow; // can use keyword for dimension without the arrow, to ease computation burden.\n // move origin by half arrow's height to keep it centered.\n\n return isVerticalPosition(position) ? getOppositePosition(position) + \" \" + (arrow.top + arrowSizeShift) + \"px\" : arrow.left + arrowSizeShift + \"px \" + getOppositePosition(position);\n }\n} // additional space between arrow and edge of target\n\nvar ARROW_SPACING = 4;\n/** Popper modifier that offsets popper and arrow so arrow points out of the correct side */\n\nexport var arrowOffsetModifier = function arrowOffsetModifier(data) {\n if (data.arrowElement == null) {\n return data;\n } // our arrows have equal width and height\n\n\n var arrowSize = data.arrowElement.clientWidth; // this logic borrowed from original Popper arrow modifier itself\n\n var position = getPosition(data.placement);\n var isVertical = isVerticalPosition(position);\n var len = isVertical ? \"width\" : \"height\";\n var offsetSide = isVertical ? \"left\" : \"top\";\n var arrowOffsetSize = Math.round(arrowSize / 2 / Math.sqrt(2)); // offset popover by arrow size, offset arrow in the opposite direction\n\n if (position === \"top\" || position === \"left\") {\n // the \"up & back\" directions require negative popper offsets\n data.offsets.popper[offsetSide] -= arrowOffsetSize + ARROW_SPACING; // can only use left/top on arrow so gotta get clever with 100% + X\n\n data.offsets.arrow[offsetSide] = data.offsets.popper[len] - arrowSize + arrowOffsetSize;\n } else {\n data.offsets.popper[offsetSide] += arrowOffsetSize + ARROW_SPACING;\n data.offsets.arrow[offsetSide] = -arrowOffsetSize;\n }\n\n return data;\n};","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport * as React from \"react\";\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { getPosition } from \"./popperUtils\"; // these paths come from the Core Kit Sketch file\n// https://github.com/palantir/blueprint/blob/develop/resources/sketch/Core%20Kit.sketch\n\nvar SVG_SHADOW_PATH = \"M8.11 6.302c1.015-.936 1.887-2.922 1.887-4.297v26c0-1.378\" + \"-.868-3.357-1.888-4.297L.925 17.09c-1.237-1.14-1.233-3.034 0-4.17L8.11 6.302z\";\nvar SVG_ARROW_PATH = \"M8.787 7.036c1.22-1.125 2.21-3.376 2.21-5.03V0v30-2.005\" + \"c0-1.654-.983-3.9-2.21-5.03l-7.183-6.616c-.81-.746-.802-1.96 0-2.7l7.183-6.614z\";\n/** Modifier helper function to compute arrow rotate() transform */\n\nfunction getArrowAngle(placement) {\n if (placement == null) {\n return 0;\n } // can only be top/left/bottom/right - auto is resolved internally\n\n\n switch (getPosition(placement)) {\n case \"top\":\n return -90;\n\n case \"left\":\n return 180;\n\n case \"bottom\":\n return 90;\n\n default:\n return 0;\n }\n}\n\nexport var PopoverArrow = function PopoverArrow(_a) {\n var _b = _a.arrowProps,\n ref = _b.ref,\n style = _b.style,\n placement = _a.placement;\n return React.createElement(\"div\", {\n className: Classes.POPOVER_ARROW,\n ref: ref,\n style: isNaN(+style.left) ? {} : style\n }, React.createElement(\"svg\", {\n viewBox: \"0 0 30 30\",\n style: {\n transform: \"rotate(\" + getArrowAngle(placement) + \"deg)\"\n }\n }, React.createElement(\"path\", {\n className: Classes.POPOVER_ARROW + \"-border\",\n d: SVG_SHADOW_PATH\n }), React.createElement(\"path\", {\n className: Classes.POPOVER_ARROW + \"-fill\",\n d: SVG_ARROW_PATH\n })));\n};\nPopoverArrow.displayName = DISPLAYNAME_PREFIX + \".PopoverArrow\";","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Position } from \"../../common/position\";\n/**\n * Convert a position to a placement.\n * @param position the position to convert\n */\n\nexport function positionToPlacement(position) {\n /* istanbul ignore next */\n switch (position) {\n case Position.TOP_LEFT:\n return \"top-start\";\n\n case Position.TOP:\n return \"top\";\n\n case Position.TOP_RIGHT:\n return \"top-end\";\n\n case Position.RIGHT_TOP:\n return \"right-start\";\n\n case Position.RIGHT:\n return \"right\";\n\n case Position.RIGHT_BOTTOM:\n return \"right-end\";\n\n case Position.BOTTOM_RIGHT:\n return \"bottom-end\";\n\n case Position.BOTTOM:\n return \"bottom\";\n\n case Position.BOTTOM_LEFT:\n return \"bottom-start\";\n\n case Position.LEFT_BOTTOM:\n return \"left-end\";\n\n case Position.LEFT:\n return \"left\";\n\n case Position.LEFT_TOP:\n return \"left-start\";\n\n case \"auto\":\n case \"auto-start\":\n case \"auto-end\":\n // Return the string unchanged.\n return position;\n\n default:\n return assertNever(position);\n }\n}\n/* istanbul ignore next */\n\nfunction assertNever(x) {\n throw new Error(\"Unexpected position: \" + x);\n}","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { Manager, Popper, Reference } from \"react-popper\";\nimport { AbstractPureComponent2, Classes } from \"../../common\";\nimport * as Errors from \"../../common/errors\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport * as Utils from \"../../common/utils\";\nimport { Overlay } from \"../overlay/overlay\";\nimport { ResizeSensor } from \"../resize-sensor/resizeSensor\"; // eslint-disable-next-line import/no-cycle\n\nimport { Tooltip } from \"../tooltip/tooltip\";\nimport { PopoverArrow } from \"./popoverArrow\";\nimport { positionToPlacement } from \"./popoverMigrationUtils\";\nimport { arrowOffsetModifier, getTransformOrigin } from \"./popperUtils\";\nexport var PopoverInteractionKind = {\n CLICK: \"click\",\n CLICK_TARGET_ONLY: \"click-target\",\n HOVER: \"hover\",\n HOVER_TARGET_ONLY: \"hover-target\"\n};\n\nvar Popover =\n/** @class */\nfunction (_super) {\n __extends(Popover, _super);\n\n function Popover() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n hasDarkParent: false,\n isOpen: _this.getIsOpen(_this.props),\n transformOrigin: \"\"\n }; // a flag that lets us detect mouse movement between the target and popover,\n // now that mouseleave is triggered when you cross the gap between the two.\n\n _this.isMouseInTargetOrPopover = false; // a flag that indicates whether the target previously lost focus to another\n // element on the same page.\n\n _this.lostFocusOnSamePage = true;\n _this.refHandlers = {\n popover: function popover(ref) {\n _this.popoverElement = ref;\n Utils.safeInvoke(_this.props.popoverRef, ref);\n },\n target: function target(ref) {\n return _this.targetElement = ref;\n }\n };\n /**\n * Instance method to instruct the `Popover` to recompute its position.\n *\n * This method should only be used if you are updating the target in a way\n * that does not cause it to re-render, such as changing its _position_\n * without changing its _size_ (since `Popover` already repositions when it\n * detects a resize).\n */\n\n _this.reposition = function () {\n return Utils.safeInvoke(_this.popperScheduleUpdate);\n };\n\n _this.renderPopover = function (popperProps) {\n var _a;\n\n var _b = _this.props,\n usePortal = _b.usePortal,\n interactionKind = _b.interactionKind;\n var transformOrigin = _this.state.transformOrigin; // Need to update our reference to this on every render as it will change.\n\n _this.popperScheduleUpdate = popperProps.scheduleUpdate;\n var popoverHandlers = {\n // always check popover clicks for dismiss class\n onClick: _this.handlePopoverClick\n };\n\n if (interactionKind === PopoverInteractionKind.HOVER || !usePortal && interactionKind === PopoverInteractionKind.HOVER_TARGET_ONLY) {\n popoverHandlers.onMouseEnter = _this.handleMouseEnter;\n popoverHandlers.onMouseLeave = _this.handleMouseLeave;\n }\n\n var popoverClasses = classNames(Classes.POPOVER, (_a = {}, _a[Classes.DARK] = _this.props.inheritDarkTheme && _this.state.hasDarkParent, _a[Classes.MINIMAL] = _this.props.minimal, _a), _this.props.popoverClassName);\n return React.createElement(\"div\", {\n className: Classes.TRANSITION_CONTAINER,\n ref: popperProps.ref,\n style: popperProps.style\n }, React.createElement(ResizeSensor, {\n onResize: _this.reposition\n }, React.createElement(\"div\", __assign({\n className: popoverClasses,\n style: {\n transformOrigin: transformOrigin\n }\n }, popoverHandlers), _this.isArrowEnabled() && React.createElement(PopoverArrow, {\n arrowProps: popperProps.arrowProps,\n placement: popperProps.placement\n }), React.createElement(\"div\", {\n className: Classes.POPOVER_CONTENT\n }, _this.understandChildren().content))));\n };\n\n _this.renderTarget = function (referenceProps) {\n var _a, _b;\n\n var _c = _this.props,\n fill = _c.fill,\n openOnTargetFocus = _c.openOnTargetFocus,\n targetClassName = _c.targetClassName,\n _d = _c.targetProps,\n targetProps = _d === void 0 ? {} : _d;\n var isOpen = _this.state.isOpen;\n\n var isControlled = _this.isControlled();\n\n var isHoverInteractionKind = _this.isHoverInteractionKind();\n\n var targetTagName = _this.props.targetTagName;\n\n if (fill) {\n targetTagName = \"div\";\n }\n\n var finalTargetProps = isHoverInteractionKind ? {\n // HOVER handlers\n onBlur: _this.handleTargetBlur,\n onFocus: _this.handleTargetFocus,\n onMouseEnter: _this.handleMouseEnter,\n onMouseLeave: _this.handleMouseLeave\n } : {\n // CLICK needs only one handler\n onClick: _this.handleTargetClick\n };\n finalTargetProps.className = classNames(Classes.POPOVER_TARGET, (_a = {}, _a[Classes.POPOVER_OPEN] = isOpen, _a), targetProps.className, targetClassName);\n finalTargetProps.ref = referenceProps.ref;\n var rawTarget = Utils.ensureElement(_this.understandChildren().target);\n var rawTabIndex = rawTarget.props.tabIndex; // ensure target is focusable if relevant prop enabled\n\n var tabIndex = rawTabIndex == null && openOnTargetFocus && isHoverInteractionKind ? 0 : rawTabIndex;\n var clonedTarget = React.cloneElement(rawTarget, {\n className: classNames(rawTarget.props.className, (_b = {}, // this class is mainly useful for button targets; we should only apply it for uncontrolled popovers\n // when they are opened by a user interaction\n _b[Classes.ACTIVE] = isOpen && !isControlled && !isHoverInteractionKind, _b)),\n // force disable single Tooltip child when popover is open (BLUEPRINT-552)\n disabled: isOpen && Utils.isElementOfType(rawTarget, Tooltip) ? true : rawTarget.props.disabled,\n tabIndex: tabIndex\n });\n var target = React.createElement(targetTagName, __assign(__assign({}, targetProps), finalTargetProps), clonedTarget);\n return React.createElement(ResizeSensor, {\n onResize: _this.reposition\n }, target);\n };\n\n _this.isControlled = function () {\n return _this.props.isOpen !== undefined;\n };\n\n _this.handleTargetFocus = function (e) {\n if (_this.props.openOnTargetFocus && _this.isHoverInteractionKind()) {\n if (e.relatedTarget == null && !_this.lostFocusOnSamePage) {\n // ignore this focus event -- the target was already focused but the page itself\n // lost focus (e.g. due to switching tabs).\n return;\n }\n\n _this.handleMouseEnter(e);\n }\n\n Utils.safeInvokeMember(_this.props.targetProps, \"onFocus\", e);\n };\n\n _this.handleTargetBlur = function (e) {\n if (_this.props.openOnTargetFocus && _this.isHoverInteractionKind()) {\n // if the next element to receive focus is within the popover, we'll want to leave the\n // popover open. e.relatedTarget ought to tell us the next element to receive focus, but if the user just\n // clicked on an element which is not focusable (either by default or with a tabIndex attribute),\n // it won't be set. So, we filter those out here and assume that a click handler somewhere else will\n // close the popover if necessary.\n if (e.relatedTarget != null && !_this.isElementInPopover(e.relatedTarget)) {\n _this.handleMouseLeave(e);\n }\n }\n\n _this.lostFocusOnSamePage = e.relatedTarget != null;\n Utils.safeInvokeMember(_this.props.targetProps, \"onBlur\", e);\n };\n\n _this.handleMouseEnter = function (e) {\n _this.isMouseInTargetOrPopover = true; // if we're entering the popover, and the mode is set to be HOVER_TARGET_ONLY, we want to manually\n // trigger the mouse leave event, as hovering over the popover shouldn't count.\n\n if (!_this.props.usePortal && _this.isElementInPopover(e.target) && _this.props.interactionKind === PopoverInteractionKind.HOVER_TARGET_ONLY && !_this.props.openOnTargetFocus) {\n _this.handleMouseLeave(e);\n } else if (!_this.props.disabled) {\n // only begin opening popover when it is enabled\n _this.setOpenState(true, e, _this.props.hoverOpenDelay);\n }\n\n Utils.safeInvokeMember(_this.props.targetProps, \"onMouseEnter\", e);\n };\n\n _this.handleMouseLeave = function (e) {\n _this.isMouseInTargetOrPopover = false; // wait until the event queue is flushed, because we want to leave the\n // popover open if the mouse entered the popover immediately after\n // leaving the target (or vice versa).\n\n _this.setTimeout(function () {\n if (_this.isMouseInTargetOrPopover) {\n return;\n } // user-configurable closing delay is helpful when moving mouse from target to popover\n\n\n _this.setOpenState(false, e, _this.props.hoverCloseDelay);\n });\n\n Utils.safeInvokeMember(_this.props.targetProps, \"onMouseLeave\", e);\n };\n\n _this.handlePopoverClick = function (e) {\n var eventTarget = e.target; // an OVERRIDE inside a DISMISS does not dismiss, and a DISMISS inside an OVERRIDE will dismiss.\n\n var dismissElement = eventTarget.closest(\".\" + Classes.POPOVER_DISMISS + \", .\" + Classes.POPOVER_DISMISS_OVERRIDE);\n var shouldDismiss = dismissElement != null && dismissElement.classList.contains(Classes.POPOVER_DISMISS);\n var isDisabled = eventTarget.closest(\":disabled, .\" + Classes.DISABLED) != null;\n\n if (shouldDismiss && !isDisabled && !e.isDefaultPrevented()) {\n _this.setOpenState(false, e);\n\n if (_this.props.captureDismiss) {\n e.preventDefault();\n }\n }\n };\n\n _this.handleOverlayClose = function (e) {\n var eventTarget = e.target; // if click was in target, target event listener will handle things, so don't close\n\n if (!Utils.elementIsOrContains(_this.targetElement, eventTarget) || e.nativeEvent instanceof KeyboardEvent) {\n _this.setOpenState(false, e);\n }\n };\n\n _this.handleTargetClick = function (e) {\n // ensure click did not originate from within inline popover before closing\n if (!_this.props.disabled && !_this.isElementInPopover(e.target)) {\n if (_this.props.isOpen == null) {\n _this.setState(function (prevState) {\n return {\n isOpen: !prevState.isOpen\n };\n });\n } else {\n _this.setOpenState(!_this.props.isOpen, e);\n }\n }\n\n Utils.safeInvokeMember(_this.props.targetProps, \"onClick\", e);\n };\n /** Popper modifier that updates React state (for style properties) based on latest data. */\n\n\n _this.updatePopoverState = function (data) {\n // always set string; let shouldComponentUpdate determine if update is necessary\n _this.setState({\n transformOrigin: getTransformOrigin(data)\n });\n\n return data;\n };\n\n return _this;\n }\n\n Popover.prototype.render = function () {\n var _a; // rename wrapper tag to begin with uppercase letter so it's recognized\n // as JSX component instead of intrinsic element. but because of its\n // type, tsc actually recognizes that it is _any_ intrinsic element, so\n // it can typecheck the HTML props!!\n\n\n var _b = this.props,\n className = _b.className,\n disabled = _b.disabled,\n fill = _b.fill;\n var isOpen = this.state.isOpen;\n var wrapperTagName = this.props.wrapperTagName;\n\n if (fill) {\n wrapperTagName = \"div\";\n }\n\n var isContentEmpty = Utils.ensureElement(this.understandChildren().content) == null; // need to do this check in render(), because `isOpen` is derived from\n // state, and state can't necessarily be accessed in validateProps.\n\n if (isContentEmpty && !disabled && isOpen !== false && !Utils.isNodeEnv(\"production\")) {\n console.warn(Errors.POPOVER_WARN_EMPTY_CONTENT);\n }\n\n var wrapperClasses = classNames(Classes.POPOVER_WRAPPER, className, (_a = {}, _a[Classes.FILL] = fill, _a));\n var wrapper = React.createElement(wrapperTagName, {\n className: wrapperClasses\n }, React.createElement(Reference, {\n innerRef: this.refHandlers.target\n }, this.renderTarget), React.createElement(Overlay, {\n autoFocus: this.props.autoFocus,\n backdropClassName: Classes.POPOVER_BACKDROP,\n backdropProps: this.props.backdropProps,\n canEscapeKeyClose: this.props.canEscapeKeyClose,\n canOutsideClickClose: this.props.interactionKind === PopoverInteractionKind.CLICK,\n className: this.props.portalClassName,\n enforceFocus: this.props.enforceFocus,\n hasBackdrop: this.props.hasBackdrop,\n isOpen: isOpen && !isContentEmpty,\n onClose: this.handleOverlayClose,\n onClosed: this.props.onClosed,\n onClosing: this.props.onClosing,\n onOpened: this.props.onOpened,\n onOpening: this.props.onOpening,\n transitionDuration: this.props.transitionDuration,\n transitionName: Classes.POPOVER,\n usePortal: this.props.usePortal,\n portalContainer: this.props.portalContainer\n }, React.createElement(Popper, {\n innerRef: this.refHandlers.popover,\n placement: positionToPlacement(this.props.position),\n modifiers: this.getPopperModifiers()\n }, this.renderPopover)));\n return React.createElement(Manager, null, wrapper);\n };\n\n Popover.prototype.componentDidMount = function () {\n this.updateDarkParent();\n };\n\n Popover.prototype.componentDidUpdate = function (props, state) {\n _super.prototype.componentDidUpdate.call(this, props, state);\n\n this.updateDarkParent();\n var nextIsOpen = this.getIsOpen(this.props);\n\n if (this.props.isOpen != null && nextIsOpen !== this.state.isOpen) {\n this.setOpenState(nextIsOpen); // tricky: setOpenState calls setState only if this.props.isOpen is\n // not controlled, so we need to invoke setState manually here.\n\n this.setState({\n isOpen: nextIsOpen\n });\n } else if (this.props.disabled && this.state.isOpen && this.props.isOpen == null) {\n // special case: close an uncontrolled popover when disabled is set to true\n this.setOpenState(false);\n }\n };\n\n Popover.prototype.validateProps = function (props) {\n if (props.isOpen == null && props.onInteraction != null) {\n console.warn(Errors.POPOVER_WARN_UNCONTROLLED_ONINTERACTION);\n }\n\n if (props.hasBackdrop && !props.usePortal) {\n console.warn(Errors.POPOVER_WARN_HAS_BACKDROP_INLINE);\n }\n\n if (props.hasBackdrop && props.interactionKind !== PopoverInteractionKind.CLICK) {\n throw new Error(Errors.POPOVER_HAS_BACKDROP_INTERACTION);\n }\n\n var childrenCount = React.Children.count(props.children);\n var hasContentProp = props.content !== undefined;\n var hasTargetProp = props.target !== undefined;\n\n if (childrenCount === 0 && !hasTargetProp) {\n throw new Error(Errors.POPOVER_REQUIRES_TARGET);\n }\n\n if (childrenCount > 2) {\n console.warn(Errors.POPOVER_WARN_TOO_MANY_CHILDREN);\n }\n\n if (childrenCount > 0 && hasTargetProp) {\n console.warn(Errors.POPOVER_WARN_DOUBLE_TARGET);\n }\n\n if (childrenCount === 2 && hasContentProp) {\n console.warn(Errors.POPOVER_WARN_DOUBLE_CONTENT);\n }\n };\n\n Popover.prototype.updateDarkParent = function () {\n if (this.props.usePortal && this.state.isOpen) {\n var hasDarkParent = this.targetElement != null && this.targetElement.closest(\".\" + Classes.DARK) != null;\n this.setState({\n hasDarkParent: hasDarkParent\n });\n }\n }; // content and target can be specified as props or as children. this method\n // normalizes the two approaches, preferring child over prop.\n\n\n Popover.prototype.understandChildren = function () {\n var _a = this.props,\n children = _a.children,\n contentProp = _a.content,\n targetProp = _a.target; // #validateProps asserts that 1 <= children.length <= 2 so content is optional\n\n var _b = React.Children.toArray(children),\n targetChild = _b[0],\n contentChild = _b[1];\n\n return {\n content: contentChild == null ? contentProp : contentChild,\n target: targetChild == null ? targetProp : targetChild\n };\n };\n\n Popover.prototype.getIsOpen = function (props) {\n // disabled popovers should never be allowed to open.\n if (props.disabled) {\n return false;\n } else if (props.isOpen != null) {\n return props.isOpen;\n } else {\n return props.defaultIsOpen;\n }\n };\n\n Popover.prototype.getPopperModifiers = function () {\n var _a = this.props,\n boundary = _a.boundary,\n modifiers = _a.modifiers;\n var _b = modifiers.flip,\n flip = _b === void 0 ? {} : _b,\n _c = modifiers.preventOverflow,\n preventOverflow = _c === void 0 ? {} : _c;\n return __assign(__assign({}, modifiers), {\n arrowOffset: {\n enabled: this.isArrowEnabled(),\n fn: arrowOffsetModifier,\n order: 510\n },\n flip: __assign({\n boundariesElement: boundary\n }, flip),\n preventOverflow: __assign({\n boundariesElement: boundary\n }, preventOverflow),\n updatePopoverState: {\n enabled: true,\n fn: this.updatePopoverState,\n order: 900\n }\n });\n }; // a wrapper around setState({isOpen}) that will call props.onInteraction instead when in controlled mode.\n // starts a timeout to delay changing the state if a non-zero duration is provided.\n\n\n Popover.prototype.setOpenState = function (isOpen, e, timeout) {\n var _this = this; // cancel any existing timeout because we have new state\n\n\n Utils.safeInvoke(this.cancelOpenTimeout);\n\n if (timeout > 0) {\n this.cancelOpenTimeout = this.setTimeout(function () {\n return _this.setOpenState(isOpen, e);\n }, timeout);\n } else {\n if (this.props.isOpen == null) {\n this.setState({\n isOpen: isOpen\n });\n } else {\n Utils.safeInvoke(this.props.onInteraction, isOpen, e);\n }\n\n if (!isOpen) {\n Utils.safeInvoke(this.props.onClose, e);\n }\n }\n };\n\n Popover.prototype.isArrowEnabled = function () {\n var _a = this.props,\n minimal = _a.minimal,\n arrow = _a.modifiers.arrow; // omitting `arrow` from `modifiers` uses Popper default, which does show an arrow.\n\n return !minimal && (arrow == null || arrow.enabled);\n };\n\n Popover.prototype.isElementInPopover = function (element) {\n return this.popoverElement != null && this.popoverElement.contains(element);\n };\n\n Popover.prototype.isHoverInteractionKind = function () {\n return this.props.interactionKind === PopoverInteractionKind.HOVER || this.props.interactionKind === PopoverInteractionKind.HOVER_TARGET_ONLY;\n };\n\n Popover.displayName = DISPLAYNAME_PREFIX + \".Popover\";\n Popover.defaultProps = {\n boundary: \"scrollParent\",\n captureDismiss: false,\n defaultIsOpen: false,\n disabled: false,\n fill: false,\n hasBackdrop: false,\n hoverCloseDelay: 300,\n hoverOpenDelay: 150,\n inheritDarkTheme: true,\n interactionKind: PopoverInteractionKind.CLICK,\n minimal: false,\n modifiers: {},\n openOnTargetFocus: true,\n position: \"auto\",\n targetTagName: \"span\",\n transitionDuration: 300,\n usePortal: true,\n wrapperTagName: \"span\"\n };\n Popover = __decorate([polyfill], Popover);\n return Popover;\n}(AbstractPureComponent2);\n\nexport { Popover };","import { deserializerMiddleware } from \"./deserializerMiddleware\";\nimport { serializerMiddleware } from \"./serializerMiddleware\";\nexport var deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true\n};\nexport var serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true\n};\nexport function getSerdePlugin(config, serializer, deserializer) {\n return {\n applyToStack: function applyToStack(commandStack) {\n commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption);\n commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption);\n }\n };\n}","import { __awaiter, __generator } from \"tslib\";\nexport var deserializerMiddleware = function deserializerMiddleware(options, deserializer) {\n return function (next, context) {\n return function (args) {\n return __awaiter(void 0, void 0, void 0, function () {\n var response, parsed;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , next(args)];\n\n case 1:\n response = _a.sent().response;\n return [4\n /*yield*/\n , deserializer(response, options)];\n\n case 2:\n parsed = _a.sent();\n return [2\n /*return*/\n , {\n response: response,\n output: parsed\n }];\n }\n });\n });\n };\n };\n};","import { __assign, __awaiter, __generator } from \"tslib\";\nexport var serializerMiddleware = function serializerMiddleware(options, serializer) {\n return function (next, context) {\n return function (args) {\n return __awaiter(void 0, void 0, void 0, function () {\n var request;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , serializer(args.input, options)];\n\n case 1:\n request = _a.sent();\n return [2\n /*return*/\n , next(__assign(__assign({}, args), {\n request: request\n }))];\n }\n });\n });\n };\n };\n};","export * from \"./deserializerMiddleware\";\nexport * from \"./serializerMiddleware\";\nexport * from \"./serdePlugin\";","'use strict';\n\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () {\n throw 1;\n }, 1);\n });\n};","'use strict';\n\nvar $ = require('../internals/export');\n\nvar global = require('../internals/global');\n\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\n\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar ArrayBufferModule = require('../internals/array-buffer');\n\nvar anInstance = require('../internals/an-instance');\n\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar toLength = require('../internals/to-length');\n\nvar toIndex = require('../internals/to-index');\n\nvar toOffset = require('../internals/to-offset');\n\nvar toPrimitive = require('../internals/to-primitive');\n\nvar has = require('../internals/has');\n\nvar classof = require('../internals/classof');\n\nvar isObject = require('../internals/is-object');\n\nvar create = require('../internals/object-create');\n\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar typedArrayFrom = require('../internals/typed-array-from');\n\nvar forEach = require('../internals/array-iteration').forEach;\n\nvar setSpecies = require('../internals/set-species');\n\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\n\nvar InternalStateModule = require('../internals/internal-state');\n\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_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 fromList(C, list) {\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n\n while (length > index) {\n result[index] = list[index++];\n }\n\n return result;\n};\n\nvar addGetter = function addGetter(it, key) {\n nativeDefineProperty(it, key, {\n get: function get() {\n return getInternalState(this)[key];\n }\n });\n};\n\nvar isArrayBuffer = function isArrayBuffer(it) {\n var klass;\n return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function isTypedArrayIndex(target, key) {\n return isTypedArray(target) && typeof key != 'symbol' && key in target && String(+key) == String(key);\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n return isTypedArrayIndex(target, key = toPrimitive(key, true)) ? createPropertyDescriptor(2, target[key]) : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n if (isTypedArrayIndex(target, key = toPrimitive(key, true)) && isObject(descriptor) && has(descriptor, 'value') && !has(descriptor, 'get') && !has(descriptor, 'set') // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable && (!has(descriptor, 'writable') || descriptor.writable) && (!has(descriptor, 'enumerable') || descriptor.enumerable)) {\n target[key] = descriptor.value;\n return target;\n }\n\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 $({\n target: 'Object',\n stat: true,\n forced: !NATIVE_ARRAY_BUFFER_VIEWS\n }, {\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 getter(that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function setter(that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function addElement(that, index) {\n nativeDefineProperty(that, index, {\n get: function get() {\n return getter(this, index);\n },\n set: function set(value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n\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\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\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }\n\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n\n while (index < length) {\n addElement(that, index++);\n }\n });\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length) : typedArrayOffset !== undefined ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES)) : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\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 if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n $({\n global: true,\n forced: TypedArrayConstructor != NativeTypedArrayConstructor,\n sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () {\n /* empty */\n};","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;","/*\n * JavaScript Load Image\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, webkitURL, module */\n;\n\n(function ($) {\n 'use strict';\n /**\n * Loads an image for a given File object.\n * Invokes the callback with an img or optional canvas element\n * (if supported by the browser) as parameter:.\n *\n * @param {File|Blob|string} file File or Blob object or image URL\n * @param {Function} [callback] Image load event callback\n * @param {object} [options] Options object\n * @returns {HTMLImageElement|HTMLCanvasElement|FileReader} image object\n */\n\n function loadImage(file, callback, options) {\n var img = document.createElement('img');\n var url;\n /**\n * Callback for the fetchBlob call.\n *\n * @param {Blob} blob Blob object\n * @param {Error} err Error object\n */\n\n function fetchBlobCallback(blob, err) {\n if (err) console.log(err); // eslint-disable-line no-console\n\n if (blob && loadImage.isInstanceOf('Blob', blob)) {\n // eslint-disable-next-line no-param-reassign\n file = blob;\n url = loadImage.createObjectURL(file);\n } else {\n url = file;\n\n if (options && options.crossOrigin) {\n img.crossOrigin = options.crossOrigin;\n }\n }\n\n img.src = url;\n }\n\n img.onerror = function (event) {\n return loadImage.onerror(img, event, file, url, callback, options);\n };\n\n img.onload = function (event) {\n return loadImage.onload(img, event, file, url, callback, options);\n };\n\n if (typeof file === 'string') {\n if (loadImage.hasMetaOption(options)) {\n loadImage.fetchBlob(file, fetchBlobCallback, options);\n } else {\n fetchBlobCallback();\n }\n\n return img;\n } else if (loadImage.isInstanceOf('Blob', file) || // Files are also Blob instances, but some browsers\n // (Firefox 3.6) support the File API but not Blobs:\n loadImage.isInstanceOf('File', file)) {\n url = loadImage.createObjectURL(file);\n\n if (url) {\n img.src = url;\n return img;\n }\n\n return loadImage.readFile(file, function (e) {\n var target = e.target;\n\n if (target && target.result) {\n img.src = target.result;\n } else if (callback) {\n callback(e);\n }\n });\n }\n } // The check for URL.revokeObjectURL fixes an issue with Opera 12,\n // which provides URL.createObjectURL but doesn't properly implement it:\n\n\n var urlAPI = $.createObjectURL && $ || $.URL && URL.revokeObjectURL && URL || $.webkitURL && webkitURL;\n /**\n * Helper function to revoke an object URL\n *\n * @param {string} url Blob Object URL\n * @param {object} [options] Options object\n */\n\n function revokeHelper(url, options) {\n if (url && url.slice(0, 5) === 'blob:' && !(options && options.noRevoke)) {\n loadImage.revokeObjectURL(url);\n }\n } // Determines if meta data should be loaded automatically.\n // Requires the load image meta extension to load meta data.\n\n\n loadImage.hasMetaOption = function (options) {\n return options && options.meta;\n }; // If the callback given to this function returns a blob, it is used as image\n // source instead of the original url and overrides the file argument used in\n // the onload and onerror event callbacks:\n\n\n loadImage.fetchBlob = function (url, callback) {\n callback();\n };\n\n loadImage.isInstanceOf = function (type, obj) {\n // Cross-frame instanceof check\n return Object.prototype.toString.call(obj) === '[object ' + type + ']';\n };\n\n loadImage.transform = function (img, options, callback, file, data) {\n callback(img, data);\n };\n\n loadImage.onerror = function (img, event, file, url, callback, options) {\n revokeHelper(url, options);\n\n if (callback) {\n callback.call(img, event);\n }\n };\n\n loadImage.onload = function (img, event, file, url, callback, options) {\n revokeHelper(url, options);\n\n if (callback) {\n loadImage.transform(img, options, callback, file, {\n originalWidth: img.naturalWidth || img.width,\n originalHeight: img.naturalHeight || img.height\n });\n }\n };\n\n loadImage.createObjectURL = function (file) {\n return urlAPI ? urlAPI.createObjectURL(file) : false;\n };\n\n loadImage.revokeObjectURL = function (url) {\n return urlAPI ? urlAPI.revokeObjectURL(url) : false;\n }; // Loads a given File object via FileReader interface,\n // invokes the callback with the event object (load or error).\n // The result can be read via event.target.result:\n\n\n loadImage.readFile = function (file, callback, method) {\n if ($.FileReader) {\n var fileReader = new FileReader();\n fileReader.onload = fileReader.onerror = callback; // eslint-disable-next-line no-param-reassign\n\n method = method || 'readAsDataURL';\n\n if (fileReader[method]) {\n fileReader[method](file);\n return fileReader;\n }\n }\n\n return false;\n };\n\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return loadImage;\n });\n } else if (typeof module === 'object' && module.exports) {\n module.exports = loadImage;\n } else {\n $.loadImage = loadImage;\n }\n})(typeof window !== 'undefined' && window || this);","'use strict';\n\nvar nameStartChar = \":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\nvar nameChar = nameStartChar + \"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\nvar nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*';\nvar regexName = new RegExp('^' + nameRegexp + '$');\n\nvar getAllMatches = function getAllMatches(string, regex) {\n var matches = [];\n var match = regex.exec(string);\n\n while (match) {\n var allmatches = [];\n var len = match.length;\n\n for (var index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n\n matches.push(allmatches);\n match = regex.exec(string);\n }\n\n return matches;\n};\n\nvar isName = function isName(string) {\n var match = regexName.exec(string);\n return !(match === null || typeof match === 'undefined');\n};\n\nexports.isExist = function (v) {\n return typeof v !== 'undefined';\n};\n\nexports.isEmptyObject = function (obj) {\n return Object.keys(obj).length === 0;\n};\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\n\n\nexports.merge = function (target, a, arrayMode) {\n if (a) {\n var keys = Object.keys(a); // will return an array of own properties\n\n var len = keys.length; //don't make it inline\n\n for (var i = 0; i < len; i++) {\n if (arrayMode === 'strict') {\n target[keys[i]] = [a[keys[i]]];\n } else {\n target[keys[i]] = a[keys[i]];\n }\n }\n }\n};\n/* exports.merge =function (b,a){\n return Object.assign(b,a);\n} */\n\n\nexports.getValue = function (v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return '';\n }\n}; // const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};\n\n\nexports.buildOptions = function (options, defaultOptions, props) {\n var newOptions = {};\n\n if (!options) {\n return defaultOptions; //if there are not options\n }\n\n for (var i = 0; i < props.length; i++) {\n if (options[props[i]] !== undefined) {\n newOptions[props[i]] = options[props[i]];\n } else {\n newOptions[props[i]] = defaultOptions[props[i]];\n }\n }\n\n return newOptions;\n};\n/**\n * Check if a tag name should be treated as array\n *\n * @param tagName the node tagname\n * @param arrayMode the array mode option\n * @param parentTagName the parent tag name\n * @returns {boolean} true if node should be parsed as array\n */\n\n\nexports.isTagNameInArrayMode = function (tagName, arrayMode, parentTagName) {\n if (arrayMode === false) {\n return false;\n } else if (arrayMode instanceof RegExp) {\n return arrayMode.test(tagName);\n } else if (typeof arrayMode === 'function') {\n return !!arrayMode(tagName, parentTagName);\n }\n\n return arrayMode === \"strict\";\n};\n\nexports.isName = isName;\nexports.getAllMatches = getAllMatches;\nexports.nameRegexp = nameRegexp;","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// tslint:disable:object-literal-sort-keys\nexport var Elevation = {\n ZERO: 0,\n ONE: 1,\n TWO: 2,\n THREE: 3,\n FOUR: 4\n};","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// tslint:disable:object-literal-sort-keys\n\n/**\n * The four basic intents.\n */\nexport var Intent = {\n NONE: \"none\",\n PRIMARY: \"primary\",\n SUCCESS: \"success\",\n WARNING: \"warning\",\n DANGER: \"danger\"\n};","import { __values } from \"tslib\";\nimport { escapeAttribute } from \"./escape-attribute\";\n/**\n * Represents an XML node.\n */\n\nvar XmlNode =\n/** @class */\nfunction () {\n function XmlNode(name, children) {\n if (children === void 0) {\n children = [];\n }\n\n this.name = name;\n this.children = children;\n this.attributes = {};\n }\n\n XmlNode.prototype.withName = function (name) {\n this.name = name;\n return this;\n };\n\n XmlNode.prototype.addAttribute = function (name, value) {\n this.attributes[name] = value;\n return this;\n };\n\n XmlNode.prototype.addChildNode = function (child) {\n this.children.push(child);\n return this;\n };\n\n XmlNode.prototype.removeAttribute = function (name) {\n delete this.attributes[name];\n return this;\n };\n\n XmlNode.prototype.toString = function () {\n var e_1, _a;\n\n var hasChildren = Boolean(this.children.length);\n var xmlText = \"<\" + this.name; // add attributes\n\n var attributes = this.attributes;\n\n try {\n for (var _b = __values(Object.keys(attributes)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var attributeName = _c.value;\n var attribute = attributes[attributeName];\n\n if (typeof attribute !== \"undefined\" && attribute !== null) {\n xmlText += \" \" + attributeName + \"=\\\"\" + escapeAttribute(\"\" + attribute) + \"\\\"\";\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return xmlText += !hasChildren ? \"/>\" : \">\" + this.children.map(function (c) {\n return c.toString();\n }).join(\"\") + \"\";\n };\n\n return XmlNode;\n}();\n\nexport { XmlNode };","/**\n * Escapes characters that can not be in an XML attribute.\n */\nexport function escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}","import { escapeElement } from \"./escape-element\";\n/**\n * Represents an XML text value.\n */\n\nvar XmlText =\n/** @class */\nfunction () {\n function XmlText(value) {\n this.value = value;\n }\n\n XmlText.prototype.toString = function () {\n return escapeElement(\"\" + this.value);\n };\n\n return XmlText;\n}();\n\nexport { XmlText };","/**\n * Escapes characters that can not be in an XML element.\n */\nexport function escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\").replace(/\\r/g, \" \").replace(/\\n/g, \" \").replace(/\\u0085/g, \"…\").replace(/\\u2028/, \"
\");\n}","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { AnalyticsFilter, LifecycleRuleFilter, MetricsFilter, ReplicationRuleFilter } from \"../models/models_0\";\nimport { HttpRequest as __HttpRequest, isValidHostname as __isValidHostname } from \"@aws-sdk/protocol-http\";\nimport { dateToUtcString as __dateToUtcString, expectString as __expectString, extendedEncodeURIComponent as __extendedEncodeURIComponent, getArrayIfSingleItem as __getArrayIfSingleItem, getValueFromTextNode as __getValueFromTextNode, parseBoolean as __parseBoolean } from \"@aws-sdk/smithy-client\";\nimport { XmlNode as __XmlNode, XmlText as __XmlText } from \"@aws-sdk/xml-builder\";\nimport { decodeHTML } from \"entities\";\nimport { parse as xmlParse } from \"fast-xml-parser\";\nexport var serializeAws_restXmlAbortMultipartUploadCommand = function serializeAws_restXmlAbortMultipartUploadCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign({}, isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = __assign({\n \"x-id\": \"AbortMultipartUpload\"\n }, input.UploadId !== undefined && {\n uploadId: input.UploadId\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlCompleteMultipartUploadCommand = function serializeAws_restXmlCompleteMultipartUploadCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = __assign({\n \"x-id\": \"CompleteMultipartUpload\"\n }, input.UploadId !== undefined && {\n uploadId: input.UploadId\n });\n\n if (input.MultipartUpload !== undefined) {\n body = serializeAws_restXmlCompletedMultipartUpload(input.MultipartUpload, context);\n }\n\n if (input.MultipartUpload !== undefined) {\n contents = serializeAws_restXmlCompletedMultipartUpload(input.MultipartUpload, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlCopyObjectCommand = function serializeAws_restXmlCopyObjectCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, isSerializableHeaderValue(input.ACL) && {\n \"x-amz-acl\": input.ACL\n }), isSerializableHeaderValue(input.CacheControl) && {\n \"cache-control\": input.CacheControl\n }), isSerializableHeaderValue(input.ContentDisposition) && {\n \"content-disposition\": input.ContentDisposition\n }), isSerializableHeaderValue(input.ContentEncoding) && {\n \"content-encoding\": input.ContentEncoding\n }), isSerializableHeaderValue(input.ContentLanguage) && {\n \"content-language\": input.ContentLanguage\n }), isSerializableHeaderValue(input.ContentType) && {\n \"content-type\": input.ContentType\n }), isSerializableHeaderValue(input.CopySource) && {\n \"x-amz-copy-source\": input.CopySource\n }), isSerializableHeaderValue(input.CopySourceIfMatch) && {\n \"x-amz-copy-source-if-match\": input.CopySourceIfMatch\n }), isSerializableHeaderValue(input.CopySourceIfModifiedSince) && {\n \"x-amz-copy-source-if-modified-since\": __dateToUtcString(input.CopySourceIfModifiedSince).toString()\n }), isSerializableHeaderValue(input.CopySourceIfNoneMatch) && {\n \"x-amz-copy-source-if-none-match\": input.CopySourceIfNoneMatch\n }), isSerializableHeaderValue(input.CopySourceIfUnmodifiedSince) && {\n \"x-amz-copy-source-if-unmodified-since\": __dateToUtcString(input.CopySourceIfUnmodifiedSince).toString()\n }), isSerializableHeaderValue(input.Expires) && {\n expires: __dateToUtcString(input.Expires).toString()\n }), isSerializableHeaderValue(input.GrantFullControl) && {\n \"x-amz-grant-full-control\": input.GrantFullControl\n }), isSerializableHeaderValue(input.GrantRead) && {\n \"x-amz-grant-read\": input.GrantRead\n }), isSerializableHeaderValue(input.GrantReadACP) && {\n \"x-amz-grant-read-acp\": input.GrantReadACP\n }), isSerializableHeaderValue(input.GrantWriteACP) && {\n \"x-amz-grant-write-acp\": input.GrantWriteACP\n }), isSerializableHeaderValue(input.MetadataDirective) && {\n \"x-amz-metadata-directive\": input.MetadataDirective\n }), isSerializableHeaderValue(input.TaggingDirective) && {\n \"x-amz-tagging-directive\": input.TaggingDirective\n }), isSerializableHeaderValue(input.ServerSideEncryption) && {\n \"x-amz-server-side-encryption\": input.ServerSideEncryption\n }), isSerializableHeaderValue(input.StorageClass) && {\n \"x-amz-storage-class\": input.StorageClass\n }), isSerializableHeaderValue(input.WebsiteRedirectLocation) && {\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation\n }), isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm\n }), isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey\n }), isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5\n }), isSerializableHeaderValue(input.SSEKMSKeyId) && {\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId\n }), isSerializableHeaderValue(input.SSEKMSEncryptionContext) && {\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext\n }), isSerializableHeaderValue(input.BucketKeyEnabled) && {\n \"x-amz-server-side-encryption-bucket-key-enabled\": input.BucketKeyEnabled.toString()\n }), isSerializableHeaderValue(input.CopySourceSSECustomerAlgorithm) && {\n \"x-amz-copy-source-server-side-encryption-customer-algorithm\": input.CopySourceSSECustomerAlgorithm\n }), isSerializableHeaderValue(input.CopySourceSSECustomerKey) && {\n \"x-amz-copy-source-server-side-encryption-customer-key\": input.CopySourceSSECustomerKey\n }), isSerializableHeaderValue(input.CopySourceSSECustomerKeyMD5) && {\n \"x-amz-copy-source-server-side-encryption-customer-key-md5\": input.CopySourceSSECustomerKeyMD5\n }), isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.Tagging) && {\n \"x-amz-tagging\": input.Tagging\n }), isSerializableHeaderValue(input.ObjectLockMode) && {\n \"x-amz-object-lock-mode\": input.ObjectLockMode\n }), isSerializableHeaderValue(input.ObjectLockRetainUntilDate) && {\n \"x-amz-object-lock-retain-until-date\": (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString()\n }), isSerializableHeaderValue(input.ObjectLockLegalHoldStatus) && {\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n }), isSerializableHeaderValue(input.ExpectedSourceBucketOwner) && {\n \"x-amz-source-expected-bucket-owner\": input.ExpectedSourceBucketOwner\n }), input.Metadata !== undefined && Object.keys(input.Metadata).reduce(function (acc, suffix) {\n var _a;\n\n return __assign(__assign({}, acc), (_a = {}, _a[\"x-amz-meta-\" + suffix.toLowerCase()] = input.Metadata[suffix], _a));\n }, {}));\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = {\n \"x-id\": \"CopyObject\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlCreateBucketCommand = function serializeAws_restXmlCreateBucketCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.ACL) && {\n \"x-amz-acl\": input.ACL\n }), isSerializableHeaderValue(input.GrantFullControl) && {\n \"x-amz-grant-full-control\": input.GrantFullControl\n }), isSerializableHeaderValue(input.GrantRead) && {\n \"x-amz-grant-read\": input.GrantRead\n }), isSerializableHeaderValue(input.GrantReadACP) && {\n \"x-amz-grant-read-acp\": input.GrantReadACP\n }), isSerializableHeaderValue(input.GrantWrite) && {\n \"x-amz-grant-write\": input.GrantWrite\n }), isSerializableHeaderValue(input.GrantWriteACP) && {\n \"x-amz-grant-write-acp\": input.GrantWriteACP\n }), isSerializableHeaderValue(input.ObjectLockEnabledForBucket) && {\n \"x-amz-bucket-object-lock-enabled\": input.ObjectLockEnabledForBucket.toString()\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.CreateBucketConfiguration !== undefined) {\n body = serializeAws_restXmlCreateBucketConfiguration(input.CreateBucketConfiguration, context);\n }\n\n if (input.CreateBucketConfiguration !== undefined) {\n contents = serializeAws_restXmlCreateBucketConfiguration(input.CreateBucketConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlCreateMultipartUploadCommand = function serializeAws_restXmlCreateMultipartUploadCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, isSerializableHeaderValue(input.ACL) && {\n \"x-amz-acl\": input.ACL\n }), isSerializableHeaderValue(input.CacheControl) && {\n \"cache-control\": input.CacheControl\n }), isSerializableHeaderValue(input.ContentDisposition) && {\n \"content-disposition\": input.ContentDisposition\n }), isSerializableHeaderValue(input.ContentEncoding) && {\n \"content-encoding\": input.ContentEncoding\n }), isSerializableHeaderValue(input.ContentLanguage) && {\n \"content-language\": input.ContentLanguage\n }), isSerializableHeaderValue(input.ContentType) && {\n \"content-type\": input.ContentType\n }), isSerializableHeaderValue(input.Expires) && {\n expires: __dateToUtcString(input.Expires).toString()\n }), isSerializableHeaderValue(input.GrantFullControl) && {\n \"x-amz-grant-full-control\": input.GrantFullControl\n }), isSerializableHeaderValue(input.GrantRead) && {\n \"x-amz-grant-read\": input.GrantRead\n }), isSerializableHeaderValue(input.GrantReadACP) && {\n \"x-amz-grant-read-acp\": input.GrantReadACP\n }), isSerializableHeaderValue(input.GrantWriteACP) && {\n \"x-amz-grant-write-acp\": input.GrantWriteACP\n }), isSerializableHeaderValue(input.ServerSideEncryption) && {\n \"x-amz-server-side-encryption\": input.ServerSideEncryption\n }), isSerializableHeaderValue(input.StorageClass) && {\n \"x-amz-storage-class\": input.StorageClass\n }), isSerializableHeaderValue(input.WebsiteRedirectLocation) && {\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation\n }), isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm\n }), isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey\n }), isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5\n }), isSerializableHeaderValue(input.SSEKMSKeyId) && {\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId\n }), isSerializableHeaderValue(input.SSEKMSEncryptionContext) && {\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext\n }), isSerializableHeaderValue(input.BucketKeyEnabled) && {\n \"x-amz-server-side-encryption-bucket-key-enabled\": input.BucketKeyEnabled.toString()\n }), isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.Tagging) && {\n \"x-amz-tagging\": input.Tagging\n }), isSerializableHeaderValue(input.ObjectLockMode) && {\n \"x-amz-object-lock-mode\": input.ObjectLockMode\n }), isSerializableHeaderValue(input.ObjectLockRetainUntilDate) && {\n \"x-amz-object-lock-retain-until-date\": (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString()\n }), isSerializableHeaderValue(input.ObjectLockLegalHoldStatus) && {\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n }), input.Metadata !== undefined && Object.keys(input.Metadata).reduce(function (acc, suffix) {\n var _a;\n\n return __assign(__assign({}, acc), (_a = {}, _a[\"x-amz-meta-\" + suffix.toLowerCase()] = input.Metadata[suffix], _a));\n }, {}));\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = {\n uploads: \"\",\n \"x-id\": \"CreateMultipartUpload\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlDeleteBucketCommand = function serializeAws_restXmlDeleteBucketCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand = function serializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = __assign({\n analytics: \"\"\n }, input.Id !== undefined && {\n id: input.Id\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlDeleteBucketCorsCommand = function serializeAws_restXmlDeleteBucketCorsCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n cors: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlDeleteBucketEncryptionCommand = function serializeAws_restXmlDeleteBucketEncryptionCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n encryption: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand = function serializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = {};\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = __assign({\n \"intelligent-tiering\": \"\"\n }, input.Id !== undefined && {\n id: input.Id\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlDeleteBucketInventoryConfigurationCommand = function serializeAws_restXmlDeleteBucketInventoryConfigurationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = __assign({\n inventory: \"\"\n }, input.Id !== undefined && {\n id: input.Id\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlDeleteBucketLifecycleCommand = function serializeAws_restXmlDeleteBucketLifecycleCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n lifecycle: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlDeleteBucketMetricsConfigurationCommand = function serializeAws_restXmlDeleteBucketMetricsConfigurationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = __assign({\n metrics: \"\"\n }, input.Id !== undefined && {\n id: input.Id\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlDeleteBucketOwnershipControlsCommand = function serializeAws_restXmlDeleteBucketOwnershipControlsCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n ownershipControls: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlDeleteBucketPolicyCommand = function serializeAws_restXmlDeleteBucketPolicyCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n policy: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlDeleteBucketReplicationCommand = function serializeAws_restXmlDeleteBucketReplicationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n replication: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlDeleteBucketTaggingCommand = function serializeAws_restXmlDeleteBucketTaggingCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n tagging: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlDeleteBucketWebsiteCommand = function serializeAws_restXmlDeleteBucketWebsiteCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n website: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlDeleteObjectCommand = function serializeAws_restXmlDeleteObjectCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign(__assign({}, isSerializableHeaderValue(input.MFA) && {\n \"x-amz-mfa\": input.MFA\n }), isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.BypassGovernanceRetention) && {\n \"x-amz-bypass-governance-retention\": input.BypassGovernanceRetention.toString()\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = __assign({\n \"x-id\": \"DeleteObject\"\n }, input.VersionId !== undefined && {\n versionId: input.VersionId\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlDeleteObjectsCommand = function serializeAws_restXmlDeleteObjectsCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.MFA) && {\n \"x-amz-mfa\": input.MFA\n }), isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.BypassGovernanceRetention) && {\n \"x-amz-bypass-governance-retention\": input.BypassGovernanceRetention.toString()\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n delete: \"\",\n \"x-id\": \"DeleteObjects\"\n };\n\n if (input.Delete !== undefined) {\n body = serializeAws_restXmlDelete(input.Delete, context);\n }\n\n if (input.Delete !== undefined) {\n contents = serializeAws_restXmlDelete(input.Delete, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlDeleteObjectTaggingCommand = function serializeAws_restXmlDeleteObjectTaggingCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = __assign({\n tagging: \"\"\n }, input.VersionId !== undefined && {\n versionId: input.VersionId\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlDeletePublicAccessBlockCommand = function serializeAws_restXmlDeletePublicAccessBlockCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n publicAccessBlock: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetBucketAccelerateConfigurationCommand = function serializeAws_restXmlGetBucketAccelerateConfigurationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n accelerate: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetBucketAclCommand = function serializeAws_restXmlGetBucketAclCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n acl: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetBucketAnalyticsConfigurationCommand = function serializeAws_restXmlGetBucketAnalyticsConfigurationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = __assign({\n analytics: \"\",\n \"x-id\": \"GetBucketAnalyticsConfiguration\"\n }, input.Id !== undefined && {\n id: input.Id\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetBucketCorsCommand = function serializeAws_restXmlGetBucketCorsCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n cors: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetBucketEncryptionCommand = function serializeAws_restXmlGetBucketEncryptionCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n encryption: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand = function serializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = {};\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = __assign({\n \"intelligent-tiering\": \"\",\n \"x-id\": \"GetBucketIntelligentTieringConfiguration\"\n }, input.Id !== undefined && {\n id: input.Id\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetBucketInventoryConfigurationCommand = function serializeAws_restXmlGetBucketInventoryConfigurationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = __assign({\n inventory: \"\",\n \"x-id\": \"GetBucketInventoryConfiguration\"\n }, input.Id !== undefined && {\n id: input.Id\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetBucketLifecycleConfigurationCommand = function serializeAws_restXmlGetBucketLifecycleConfigurationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n lifecycle: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetBucketLocationCommand = function serializeAws_restXmlGetBucketLocationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n location: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetBucketLoggingCommand = function serializeAws_restXmlGetBucketLoggingCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n logging: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetBucketMetricsConfigurationCommand = function serializeAws_restXmlGetBucketMetricsConfigurationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = __assign({\n metrics: \"\",\n \"x-id\": \"GetBucketMetricsConfiguration\"\n }, input.Id !== undefined && {\n id: input.Id\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetBucketNotificationConfigurationCommand = function serializeAws_restXmlGetBucketNotificationConfigurationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n notification: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetBucketOwnershipControlsCommand = function serializeAws_restXmlGetBucketOwnershipControlsCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n ownershipControls: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetBucketPolicyCommand = function serializeAws_restXmlGetBucketPolicyCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n policy: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetBucketPolicyStatusCommand = function serializeAws_restXmlGetBucketPolicyStatusCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n policyStatus: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetBucketReplicationCommand = function serializeAws_restXmlGetBucketReplicationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n replication: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetBucketRequestPaymentCommand = function serializeAws_restXmlGetBucketRequestPaymentCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n requestPayment: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetBucketTaggingCommand = function serializeAws_restXmlGetBucketTaggingCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n tagging: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetBucketVersioningCommand = function serializeAws_restXmlGetBucketVersioningCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n versioning: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetBucketWebsiteCommand = function serializeAws_restXmlGetBucketWebsiteCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n website: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetObjectCommand = function serializeAws_restXmlGetObjectCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, isSerializableHeaderValue(input.IfMatch) && {\n \"if-match\": input.IfMatch\n }), isSerializableHeaderValue(input.IfModifiedSince) && {\n \"if-modified-since\": __dateToUtcString(input.IfModifiedSince).toString()\n }), isSerializableHeaderValue(input.IfNoneMatch) && {\n \"if-none-match\": input.IfNoneMatch\n }), isSerializableHeaderValue(input.IfUnmodifiedSince) && {\n \"if-unmodified-since\": __dateToUtcString(input.IfUnmodifiedSince).toString()\n }), isSerializableHeaderValue(input.Range) && {\n range: input.Range\n }), isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm\n }), isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey\n }), isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5\n }), isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({\n \"x-id\": \"GetObject\"\n }, input.ResponseCacheControl !== undefined && {\n \"response-cache-control\": input.ResponseCacheControl\n }), input.ResponseContentDisposition !== undefined && {\n \"response-content-disposition\": input.ResponseContentDisposition\n }), input.ResponseContentEncoding !== undefined && {\n \"response-content-encoding\": input.ResponseContentEncoding\n }), input.ResponseContentLanguage !== undefined && {\n \"response-content-language\": input.ResponseContentLanguage\n }), input.ResponseContentType !== undefined && {\n \"response-content-type\": input.ResponseContentType\n }), input.ResponseExpires !== undefined && {\n \"response-expires\": __dateToUtcString(input.ResponseExpires).toString()\n }), input.VersionId !== undefined && {\n versionId: input.VersionId\n }), input.PartNumber !== undefined && {\n partNumber: input.PartNumber.toString()\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetObjectAclCommand = function serializeAws_restXmlGetObjectAclCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign({}, isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = __assign({\n acl: \"\"\n }, input.VersionId !== undefined && {\n versionId: input.VersionId\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetObjectLegalHoldCommand = function serializeAws_restXmlGetObjectLegalHoldCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign({}, isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = __assign({\n \"legal-hold\": \"\"\n }, input.VersionId !== undefined && {\n versionId: input.VersionId\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetObjectLockConfigurationCommand = function serializeAws_restXmlGetObjectLockConfigurationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n \"object-lock\": \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetObjectRetentionCommand = function serializeAws_restXmlGetObjectRetentionCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign({}, isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = __assign({\n retention: \"\"\n }, input.VersionId !== undefined && {\n versionId: input.VersionId\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetObjectTaggingCommand = function serializeAws_restXmlGetObjectTaggingCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n }), isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = __assign({\n tagging: \"\"\n }, input.VersionId !== undefined && {\n versionId: input.VersionId\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetObjectTorrentCommand = function serializeAws_restXmlGetObjectTorrentCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign({}, isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = {\n torrent: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlGetPublicAccessBlockCommand = function serializeAws_restXmlGetPublicAccessBlockCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n publicAccessBlock: \"\"\n };\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlHeadBucketCommand = function serializeAws_restXmlHeadBucketCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"HEAD\",\n headers: headers,\n path: resolvedPath,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlHeadObjectCommand = function serializeAws_restXmlHeadObjectCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, isSerializableHeaderValue(input.IfMatch) && {\n \"if-match\": input.IfMatch\n }), isSerializableHeaderValue(input.IfModifiedSince) && {\n \"if-modified-since\": __dateToUtcString(input.IfModifiedSince).toString()\n }), isSerializableHeaderValue(input.IfNoneMatch) && {\n \"if-none-match\": input.IfNoneMatch\n }), isSerializableHeaderValue(input.IfUnmodifiedSince) && {\n \"if-unmodified-since\": __dateToUtcString(input.IfUnmodifiedSince).toString()\n }), isSerializableHeaderValue(input.Range) && {\n range: input.Range\n }), isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm\n }), isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey\n }), isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5\n }), isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = __assign(__assign({}, input.VersionId !== undefined && {\n versionId: input.VersionId\n }), input.PartNumber !== undefined && {\n partNumber: input.PartNumber.toString()\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"HEAD\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlListBucketAnalyticsConfigurationsCommand = function serializeAws_restXmlListBucketAnalyticsConfigurationsCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = __assign({\n analytics: \"\",\n \"x-id\": \"ListBucketAnalyticsConfigurations\"\n }, input.ContinuationToken !== undefined && {\n \"continuation-token\": input.ContinuationToken\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand = function serializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = {};\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = __assign({\n \"intelligent-tiering\": \"\",\n \"x-id\": \"ListBucketIntelligentTieringConfigurations\"\n }, input.ContinuationToken !== undefined && {\n \"continuation-token\": input.ContinuationToken\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlListBucketInventoryConfigurationsCommand = function serializeAws_restXmlListBucketInventoryConfigurationsCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = __assign({\n inventory: \"\",\n \"x-id\": \"ListBucketInventoryConfigurations\"\n }, input.ContinuationToken !== undefined && {\n \"continuation-token\": input.ContinuationToken\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlListBucketMetricsConfigurationsCommand = function serializeAws_restXmlListBucketMetricsConfigurationsCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = __assign({\n metrics: \"\",\n \"x-id\": \"ListBucketMetricsConfigurations\"\n }, input.ContinuationToken !== undefined && {\n \"continuation-token\": input.ContinuationToken\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlListBucketsCommand = function serializeAws_restXmlListBucketsCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = {\n \"content-type\": \"application/xml\"\n };\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/\";\n body = \"\";\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlListMultipartUploadsCommand = function serializeAws_restXmlListMultipartUploadsCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = __assign(__assign(__assign(__assign(__assign(__assign({\n uploads: \"\"\n }, input.Delimiter !== undefined && {\n delimiter: input.Delimiter\n }), input.EncodingType !== undefined && {\n \"encoding-type\": input.EncodingType\n }), input.KeyMarker !== undefined && {\n \"key-marker\": input.KeyMarker\n }), input.MaxUploads !== undefined && {\n \"max-uploads\": input.MaxUploads.toString()\n }), input.Prefix !== undefined && {\n prefix: input.Prefix\n }), input.UploadIdMarker !== undefined && {\n \"upload-id-marker\": input.UploadIdMarker\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlListObjectsCommand = function serializeAws_restXmlListObjectsCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign({}, isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = __assign(__assign(__assign(__assign(__assign({}, input.Delimiter !== undefined && {\n delimiter: input.Delimiter\n }), input.EncodingType !== undefined && {\n \"encoding-type\": input.EncodingType\n }), input.Marker !== undefined && {\n marker: input.Marker\n }), input.MaxKeys !== undefined && {\n \"max-keys\": input.MaxKeys.toString()\n }), input.Prefix !== undefined && {\n prefix: input.Prefix\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlListObjectsV2Command = function serializeAws_restXmlListObjectsV2Command(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign({}, isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = __assign(__assign(__assign(__assign(__assign(__assign(__assign({\n \"list-type\": \"2\"\n }, input.Delimiter !== undefined && {\n delimiter: input.Delimiter\n }), input.EncodingType !== undefined && {\n \"encoding-type\": input.EncodingType\n }), input.MaxKeys !== undefined && {\n \"max-keys\": input.MaxKeys.toString()\n }), input.Prefix !== undefined && {\n prefix: input.Prefix\n }), input.ContinuationToken !== undefined && {\n \"continuation-token\": input.ContinuationToken\n }), input.FetchOwner !== undefined && {\n \"fetch-owner\": input.FetchOwner.toString()\n }), input.StartAfter !== undefined && {\n \"start-after\": input.StartAfter\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlListObjectVersionsCommand = function serializeAws_restXmlListObjectVersionsCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({}, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = __assign(__assign(__assign(__assign(__assign(__assign({\n versions: \"\"\n }, input.Delimiter !== undefined && {\n delimiter: input.Delimiter\n }), input.EncodingType !== undefined && {\n \"encoding-type\": input.EncodingType\n }), input.KeyMarker !== undefined && {\n \"key-marker\": input.KeyMarker\n }), input.MaxKeys !== undefined && {\n \"max-keys\": input.MaxKeys.toString()\n }), input.Prefix !== undefined && {\n prefix: input.Prefix\n }), input.VersionIdMarker !== undefined && {\n \"version-id-marker\": input.VersionIdMarker\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlListPartsCommand = function serializeAws_restXmlListPartsCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign({}, isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = __assign(__assign(__assign({\n \"x-id\": \"ListParts\"\n }, input.MaxParts !== undefined && {\n \"max-parts\": input.MaxParts.toString()\n }), input.PartNumberMarker !== undefined && {\n \"part-number-marker\": input.PartNumberMarker\n }), input.UploadId !== undefined && {\n uploadId: input.UploadId\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutBucketAccelerateConfigurationCommand = function serializeAws_restXmlPutBucketAccelerateConfigurationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n accelerate: \"\"\n };\n\n if (input.AccelerateConfiguration !== undefined) {\n body = serializeAws_restXmlAccelerateConfiguration(input.AccelerateConfiguration, context);\n }\n\n if (input.AccelerateConfiguration !== undefined) {\n contents = serializeAws_restXmlAccelerateConfiguration(input.AccelerateConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutBucketAclCommand = function serializeAws_restXmlPutBucketAclCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.ACL) && {\n \"x-amz-acl\": input.ACL\n }), isSerializableHeaderValue(input.ContentMD5) && {\n \"content-md5\": input.ContentMD5\n }), isSerializableHeaderValue(input.GrantFullControl) && {\n \"x-amz-grant-full-control\": input.GrantFullControl\n }), isSerializableHeaderValue(input.GrantRead) && {\n \"x-amz-grant-read\": input.GrantRead\n }), isSerializableHeaderValue(input.GrantReadACP) && {\n \"x-amz-grant-read-acp\": input.GrantReadACP\n }), isSerializableHeaderValue(input.GrantWrite) && {\n \"x-amz-grant-write\": input.GrantWrite\n }), isSerializableHeaderValue(input.GrantWriteACP) && {\n \"x-amz-grant-write-acp\": input.GrantWriteACP\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n acl: \"\"\n };\n\n if (input.AccessControlPolicy !== undefined) {\n body = serializeAws_restXmlAccessControlPolicy(input.AccessControlPolicy, context);\n }\n\n if (input.AccessControlPolicy !== undefined) {\n contents = serializeAws_restXmlAccessControlPolicy(input.AccessControlPolicy, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutBucketAnalyticsConfigurationCommand = function serializeAws_restXmlPutBucketAnalyticsConfigurationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = __assign({\n analytics: \"\"\n }, input.Id !== undefined && {\n id: input.Id\n });\n\n if (input.AnalyticsConfiguration !== undefined) {\n body = serializeAws_restXmlAnalyticsConfiguration(input.AnalyticsConfiguration, context);\n }\n\n if (input.AnalyticsConfiguration !== undefined) {\n contents = serializeAws_restXmlAnalyticsConfiguration(input.AnalyticsConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutBucketCorsCommand = function serializeAws_restXmlPutBucketCorsCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.ContentMD5) && {\n \"content-md5\": input.ContentMD5\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n cors: \"\"\n };\n\n if (input.CORSConfiguration !== undefined) {\n body = serializeAws_restXmlCORSConfiguration(input.CORSConfiguration, context);\n }\n\n if (input.CORSConfiguration !== undefined) {\n contents = serializeAws_restXmlCORSConfiguration(input.CORSConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutBucketEncryptionCommand = function serializeAws_restXmlPutBucketEncryptionCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.ContentMD5) && {\n \"content-md5\": input.ContentMD5\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n encryption: \"\"\n };\n\n if (input.ServerSideEncryptionConfiguration !== undefined) {\n body = serializeAws_restXmlServerSideEncryptionConfiguration(input.ServerSideEncryptionConfiguration, context);\n }\n\n if (input.ServerSideEncryptionConfiguration !== undefined) {\n contents = serializeAws_restXmlServerSideEncryptionConfiguration(input.ServerSideEncryptionConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand = function serializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = {\n \"content-type\": \"application/xml\"\n };\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = __assign({\n \"intelligent-tiering\": \"\"\n }, input.Id !== undefined && {\n id: input.Id\n });\n\n if (input.IntelligentTieringConfiguration !== undefined) {\n body = serializeAws_restXmlIntelligentTieringConfiguration(input.IntelligentTieringConfiguration, context);\n }\n\n if (input.IntelligentTieringConfiguration !== undefined) {\n contents = serializeAws_restXmlIntelligentTieringConfiguration(input.IntelligentTieringConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutBucketInventoryConfigurationCommand = function serializeAws_restXmlPutBucketInventoryConfigurationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = __assign({\n inventory: \"\"\n }, input.Id !== undefined && {\n id: input.Id\n });\n\n if (input.InventoryConfiguration !== undefined) {\n body = serializeAws_restXmlInventoryConfiguration(input.InventoryConfiguration, context);\n }\n\n if (input.InventoryConfiguration !== undefined) {\n contents = serializeAws_restXmlInventoryConfiguration(input.InventoryConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutBucketLifecycleConfigurationCommand = function serializeAws_restXmlPutBucketLifecycleConfigurationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n lifecycle: \"\"\n };\n\n if (input.LifecycleConfiguration !== undefined) {\n body = serializeAws_restXmlBucketLifecycleConfiguration(input.LifecycleConfiguration, context);\n }\n\n if (input.LifecycleConfiguration !== undefined) {\n contents = serializeAws_restXmlBucketLifecycleConfiguration(input.LifecycleConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutBucketLoggingCommand = function serializeAws_restXmlPutBucketLoggingCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.ContentMD5) && {\n \"content-md5\": input.ContentMD5\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n logging: \"\"\n };\n\n if (input.BucketLoggingStatus !== undefined) {\n body = serializeAws_restXmlBucketLoggingStatus(input.BucketLoggingStatus, context);\n }\n\n if (input.BucketLoggingStatus !== undefined) {\n contents = serializeAws_restXmlBucketLoggingStatus(input.BucketLoggingStatus, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutBucketMetricsConfigurationCommand = function serializeAws_restXmlPutBucketMetricsConfigurationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = __assign({\n metrics: \"\"\n }, input.Id !== undefined && {\n id: input.Id\n });\n\n if (input.MetricsConfiguration !== undefined) {\n body = serializeAws_restXmlMetricsConfiguration(input.MetricsConfiguration, context);\n }\n\n if (input.MetricsConfiguration !== undefined) {\n contents = serializeAws_restXmlMetricsConfiguration(input.MetricsConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutBucketNotificationConfigurationCommand = function serializeAws_restXmlPutBucketNotificationConfigurationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n notification: \"\"\n };\n\n if (input.NotificationConfiguration !== undefined) {\n body = serializeAws_restXmlNotificationConfiguration(input.NotificationConfiguration, context);\n }\n\n if (input.NotificationConfiguration !== undefined) {\n contents = serializeAws_restXmlNotificationConfiguration(input.NotificationConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutBucketOwnershipControlsCommand = function serializeAws_restXmlPutBucketOwnershipControlsCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.ContentMD5) && {\n \"content-md5\": input.ContentMD5\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n ownershipControls: \"\"\n };\n\n if (input.OwnershipControls !== undefined) {\n body = serializeAws_restXmlOwnershipControls(input.OwnershipControls, context);\n }\n\n if (input.OwnershipControls !== undefined) {\n contents = serializeAws_restXmlOwnershipControls(input.OwnershipControls, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutBucketPolicyCommand = function serializeAws_restXmlPutBucketPolicyCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign({\n \"content-type\": \"text/plain\"\n }, isSerializableHeaderValue(input.ContentMD5) && {\n \"content-md5\": input.ContentMD5\n }), isSerializableHeaderValue(input.ConfirmRemoveSelfBucketAccess) && {\n \"x-amz-confirm-remove-self-bucket-access\": input.ConfirmRemoveSelfBucketAccess.toString()\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n policy: \"\"\n };\n\n if (input.Policy !== undefined) {\n body = input.Policy;\n }\n\n if (input.Policy !== undefined) {\n contents = input.Policy;\n body = contents;\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutBucketReplicationCommand = function serializeAws_restXmlPutBucketReplicationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.ContentMD5) && {\n \"content-md5\": input.ContentMD5\n }), isSerializableHeaderValue(input.Token) && {\n \"x-amz-bucket-object-lock-token\": input.Token\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n replication: \"\"\n };\n\n if (input.ReplicationConfiguration !== undefined) {\n body = serializeAws_restXmlReplicationConfiguration(input.ReplicationConfiguration, context);\n }\n\n if (input.ReplicationConfiguration !== undefined) {\n contents = serializeAws_restXmlReplicationConfiguration(input.ReplicationConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutBucketRequestPaymentCommand = function serializeAws_restXmlPutBucketRequestPaymentCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.ContentMD5) && {\n \"content-md5\": input.ContentMD5\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n requestPayment: \"\"\n };\n\n if (input.RequestPaymentConfiguration !== undefined) {\n body = serializeAws_restXmlRequestPaymentConfiguration(input.RequestPaymentConfiguration, context);\n }\n\n if (input.RequestPaymentConfiguration !== undefined) {\n contents = serializeAws_restXmlRequestPaymentConfiguration(input.RequestPaymentConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutBucketTaggingCommand = function serializeAws_restXmlPutBucketTaggingCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.ContentMD5) && {\n \"content-md5\": input.ContentMD5\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n tagging: \"\"\n };\n\n if (input.Tagging !== undefined) {\n body = serializeAws_restXmlTagging(input.Tagging, context);\n }\n\n if (input.Tagging !== undefined) {\n contents = serializeAws_restXmlTagging(input.Tagging, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutBucketVersioningCommand = function serializeAws_restXmlPutBucketVersioningCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.ContentMD5) && {\n \"content-md5\": input.ContentMD5\n }), isSerializableHeaderValue(input.MFA) && {\n \"x-amz-mfa\": input.MFA\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n versioning: \"\"\n };\n\n if (input.VersioningConfiguration !== undefined) {\n body = serializeAws_restXmlVersioningConfiguration(input.VersioningConfiguration, context);\n }\n\n if (input.VersioningConfiguration !== undefined) {\n contents = serializeAws_restXmlVersioningConfiguration(input.VersioningConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutBucketWebsiteCommand = function serializeAws_restXmlPutBucketWebsiteCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.ContentMD5) && {\n \"content-md5\": input.ContentMD5\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n website: \"\"\n };\n\n if (input.WebsiteConfiguration !== undefined) {\n body = serializeAws_restXmlWebsiteConfiguration(input.WebsiteConfiguration, context);\n }\n\n if (input.WebsiteConfiguration !== undefined) {\n contents = serializeAws_restXmlWebsiteConfiguration(input.WebsiteConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutObjectCommand = function serializeAws_restXmlPutObjectCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({\n \"content-type\": \"application/octet-stream\"\n }, isSerializableHeaderValue(input.ACL) && {\n \"x-amz-acl\": input.ACL\n }), isSerializableHeaderValue(input.CacheControl) && {\n \"cache-control\": input.CacheControl\n }), isSerializableHeaderValue(input.ContentDisposition) && {\n \"content-disposition\": input.ContentDisposition\n }), isSerializableHeaderValue(input.ContentEncoding) && {\n \"content-encoding\": input.ContentEncoding\n }), isSerializableHeaderValue(input.ContentLanguage) && {\n \"content-language\": input.ContentLanguage\n }), isSerializableHeaderValue(input.ContentLength) && {\n \"content-length\": input.ContentLength.toString()\n }), isSerializableHeaderValue(input.ContentMD5) && {\n \"content-md5\": input.ContentMD5\n }), isSerializableHeaderValue(input.ContentType) && {\n \"content-type\": input.ContentType\n }), isSerializableHeaderValue(input.Expires) && {\n expires: __dateToUtcString(input.Expires).toString()\n }), isSerializableHeaderValue(input.GrantFullControl) && {\n \"x-amz-grant-full-control\": input.GrantFullControl\n }), isSerializableHeaderValue(input.GrantRead) && {\n \"x-amz-grant-read\": input.GrantRead\n }), isSerializableHeaderValue(input.GrantReadACP) && {\n \"x-amz-grant-read-acp\": input.GrantReadACP\n }), isSerializableHeaderValue(input.GrantWriteACP) && {\n \"x-amz-grant-write-acp\": input.GrantWriteACP\n }), isSerializableHeaderValue(input.ServerSideEncryption) && {\n \"x-amz-server-side-encryption\": input.ServerSideEncryption\n }), isSerializableHeaderValue(input.StorageClass) && {\n \"x-amz-storage-class\": input.StorageClass\n }), isSerializableHeaderValue(input.WebsiteRedirectLocation) && {\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation\n }), isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm\n }), isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey\n }), isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5\n }), isSerializableHeaderValue(input.SSEKMSKeyId) && {\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId\n }), isSerializableHeaderValue(input.SSEKMSEncryptionContext) && {\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext\n }), isSerializableHeaderValue(input.BucketKeyEnabled) && {\n \"x-amz-server-side-encryption-bucket-key-enabled\": input.BucketKeyEnabled.toString()\n }), isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.Tagging) && {\n \"x-amz-tagging\": input.Tagging\n }), isSerializableHeaderValue(input.ObjectLockMode) && {\n \"x-amz-object-lock-mode\": input.ObjectLockMode\n }), isSerializableHeaderValue(input.ObjectLockRetainUntilDate) && {\n \"x-amz-object-lock-retain-until-date\": (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString()\n }), isSerializableHeaderValue(input.ObjectLockLegalHoldStatus) && {\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n }), input.Metadata !== undefined && Object.keys(input.Metadata).reduce(function (acc, suffix) {\n var _a;\n\n return __assign(__assign({}, acc), (_a = {}, _a[\"x-amz-meta-\" + suffix.toLowerCase()] = input.Metadata[suffix], _a));\n }, {}));\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = {\n \"x-id\": \"PutObject\"\n };\n\n if (input.Body !== undefined) {\n body = input.Body;\n }\n\n if (input.Body !== undefined) {\n contents = input.Body;\n body = contents;\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutObjectAclCommand = function serializeAws_restXmlPutObjectAclCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.ACL) && {\n \"x-amz-acl\": input.ACL\n }), isSerializableHeaderValue(input.ContentMD5) && {\n \"content-md5\": input.ContentMD5\n }), isSerializableHeaderValue(input.GrantFullControl) && {\n \"x-amz-grant-full-control\": input.GrantFullControl\n }), isSerializableHeaderValue(input.GrantRead) && {\n \"x-amz-grant-read\": input.GrantRead\n }), isSerializableHeaderValue(input.GrantReadACP) && {\n \"x-amz-grant-read-acp\": input.GrantReadACP\n }), isSerializableHeaderValue(input.GrantWrite) && {\n \"x-amz-grant-write\": input.GrantWrite\n }), isSerializableHeaderValue(input.GrantWriteACP) && {\n \"x-amz-grant-write-acp\": input.GrantWriteACP\n }), isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = __assign({\n acl: \"\"\n }, input.VersionId !== undefined && {\n versionId: input.VersionId\n });\n\n if (input.AccessControlPolicy !== undefined) {\n body = serializeAws_restXmlAccessControlPolicy(input.AccessControlPolicy, context);\n }\n\n if (input.AccessControlPolicy !== undefined) {\n contents = serializeAws_restXmlAccessControlPolicy(input.AccessControlPolicy, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutObjectLegalHoldCommand = function serializeAws_restXmlPutObjectLegalHoldCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.ContentMD5) && {\n \"content-md5\": input.ContentMD5\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = __assign({\n \"legal-hold\": \"\"\n }, input.VersionId !== undefined && {\n versionId: input.VersionId\n });\n\n if (input.LegalHold !== undefined) {\n body = serializeAws_restXmlObjectLockLegalHold(input.LegalHold, context);\n }\n\n if (input.LegalHold !== undefined) {\n contents = serializeAws_restXmlObjectLockLegalHold(input.LegalHold, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutObjectLockConfigurationCommand = function serializeAws_restXmlPutObjectLockConfigurationCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.Token) && {\n \"x-amz-bucket-object-lock-token\": input.Token\n }), isSerializableHeaderValue(input.ContentMD5) && {\n \"content-md5\": input.ContentMD5\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n \"object-lock\": \"\"\n };\n\n if (input.ObjectLockConfiguration !== undefined) {\n body = serializeAws_restXmlObjectLockConfiguration(input.ObjectLockConfiguration, context);\n }\n\n if (input.ObjectLockConfiguration !== undefined) {\n contents = serializeAws_restXmlObjectLockConfiguration(input.ObjectLockConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutObjectRetentionCommand = function serializeAws_restXmlPutObjectRetentionCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.BypassGovernanceRetention) && {\n \"x-amz-bypass-governance-retention\": input.BypassGovernanceRetention.toString()\n }), isSerializableHeaderValue(input.ContentMD5) && {\n \"content-md5\": input.ContentMD5\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = __assign({\n retention: \"\"\n }, input.VersionId !== undefined && {\n versionId: input.VersionId\n });\n\n if (input.Retention !== undefined) {\n body = serializeAws_restXmlObjectLockRetention(input.Retention, context);\n }\n\n if (input.Retention !== undefined) {\n contents = serializeAws_restXmlObjectLockRetention(input.Retention, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutObjectTaggingCommand = function serializeAws_restXmlPutObjectTaggingCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.ContentMD5) && {\n \"content-md5\": input.ContentMD5\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n }), isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = __assign({\n tagging: \"\"\n }, input.VersionId !== undefined && {\n versionId: input.VersionId\n });\n\n if (input.Tagging !== undefined) {\n body = serializeAws_restXmlTagging(input.Tagging, context);\n }\n\n if (input.Tagging !== undefined) {\n contents = serializeAws_restXmlTagging(input.Tagging, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlPutPublicAccessBlockCommand = function serializeAws_restXmlPutPublicAccessBlockCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.ContentMD5) && {\n \"content-md5\": input.ContentMD5\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n query = {\n publicAccessBlock: \"\"\n };\n\n if (input.PublicAccessBlockConfiguration !== undefined) {\n body = serializeAws_restXmlPublicAccessBlockConfiguration(input.PublicAccessBlockConfiguration, context);\n }\n\n if (input.PublicAccessBlockConfiguration !== undefined) {\n contents = serializeAws_restXmlPublicAccessBlockConfiguration(input.PublicAccessBlockConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlRestoreObjectCommand = function serializeAws_restXmlRestoreObjectCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = __assign({\n restore: \"\",\n \"x-id\": \"RestoreObject\"\n }, input.VersionId !== undefined && {\n versionId: input.VersionId\n });\n\n if (input.RestoreRequest !== undefined) {\n body = serializeAws_restXmlRestoreRequest(input.RestoreRequest, context);\n }\n\n if (input.RestoreRequest !== undefined) {\n contents = serializeAws_restXmlRestoreRequest(input.RestoreRequest, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlSelectObjectContentCommand = function serializeAws_restXmlSelectObjectContentCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body, bodyNode, node, node, node, node, node, node;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign(__assign({\n \"content-type\": \"application/xml\"\n }, isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm\n }), isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey\n }), isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = {\n select: \"\",\n \"select-type\": \"2\",\n \"x-id\": \"SelectObjectContent\"\n };\n body = '';\n bodyNode = new __XmlNode(\"SelectObjectContentRequest\");\n bodyNode.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n\n if (input.Expression !== undefined) {\n node = new __XmlNode(\"Expression\").addChildNode(new __XmlText(input.Expression)).withName(\"Expression\");\n bodyNode.addChildNode(node);\n }\n\n if (input.ExpressionType !== undefined) {\n node = new __XmlNode(\"ExpressionType\").addChildNode(new __XmlText(input.ExpressionType)).withName(\"ExpressionType\");\n bodyNode.addChildNode(node);\n }\n\n if (input.InputSerialization !== undefined) {\n node = serializeAws_restXmlInputSerialization(input.InputSerialization, context).withName(\"InputSerialization\");\n bodyNode.addChildNode(node);\n }\n\n if (input.OutputSerialization !== undefined) {\n node = serializeAws_restXmlOutputSerialization(input.OutputSerialization, context).withName(\"OutputSerialization\");\n bodyNode.addChildNode(node);\n }\n\n if (input.RequestProgress !== undefined) {\n node = serializeAws_restXmlRequestProgress(input.RequestProgress, context).withName(\"RequestProgress\");\n bodyNode.addChildNode(node);\n }\n\n if (input.ScanRange !== undefined) {\n node = serializeAws_restXmlScanRange(input.ScanRange, context).withName(\"ScanRange\");\n bodyNode.addChildNode(node);\n }\n\n body += bodyNode.toString();\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlUploadPartCommand = function serializeAws_restXmlUploadPartCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body, contents;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign({\n \"content-type\": \"application/octet-stream\"\n }, isSerializableHeaderValue(input.ContentLength) && {\n \"content-length\": input.ContentLength.toString()\n }), isSerializableHeaderValue(input.ContentMD5) && {\n \"content-md5\": input.ContentMD5\n }), isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm\n }), isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey\n }), isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5\n }), isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = __assign(__assign({\n \"x-id\": \"UploadPart\"\n }, input.PartNumber !== undefined && {\n partNumber: input.PartNumber.toString()\n }), input.UploadId !== undefined && {\n uploadId: input.UploadId\n });\n\n if (input.Body !== undefined) {\n body = input.Body;\n }\n\n if (input.Body !== undefined) {\n contents = input.Body;\n body = contents;\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlUploadPartCopyCommand = function serializeAws_restXmlUploadPartCopyCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, labelValue, labelValue, query, body;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, isSerializableHeaderValue(input.CopySource) && {\n \"x-amz-copy-source\": input.CopySource\n }), isSerializableHeaderValue(input.CopySourceIfMatch) && {\n \"x-amz-copy-source-if-match\": input.CopySourceIfMatch\n }), isSerializableHeaderValue(input.CopySourceIfModifiedSince) && {\n \"x-amz-copy-source-if-modified-since\": __dateToUtcString(input.CopySourceIfModifiedSince).toString()\n }), isSerializableHeaderValue(input.CopySourceIfNoneMatch) && {\n \"x-amz-copy-source-if-none-match\": input.CopySourceIfNoneMatch\n }), isSerializableHeaderValue(input.CopySourceIfUnmodifiedSince) && {\n \"x-amz-copy-source-if-unmodified-since\": __dateToUtcString(input.CopySourceIfUnmodifiedSince).toString()\n }), isSerializableHeaderValue(input.CopySourceRange) && {\n \"x-amz-copy-source-range\": input.CopySourceRange\n }), isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm\n }), isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey\n }), isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5\n }), isSerializableHeaderValue(input.CopySourceSSECustomerAlgorithm) && {\n \"x-amz-copy-source-server-side-encryption-customer-algorithm\": input.CopySourceSSECustomerAlgorithm\n }), isSerializableHeaderValue(input.CopySourceSSECustomerKey) && {\n \"x-amz-copy-source-server-side-encryption-customer-key\": input.CopySourceSSECustomerKey\n }), isSerializableHeaderValue(input.CopySourceSSECustomerKeyMD5) && {\n \"x-amz-copy-source-server-side-encryption-customer-key-md5\": input.CopySourceSSECustomerKeyMD5\n }), isSerializableHeaderValue(input.RequestPayer) && {\n \"x-amz-request-payer\": input.RequestPayer\n }), isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner\n }), isSerializableHeaderValue(input.ExpectedSourceBucketOwner) && {\n \"x-amz-source-expected-bucket-owner\": input.ExpectedSourceBucketOwner\n });\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/{Bucket}/{Key+}\";\n\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n } else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n\n if (input.Key !== undefined) {\n labelValue = input.Key;\n\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue.split(\"/\").map(function (segment) {\n return __extendedEncodeURIComponent(segment);\n }).join(\"/\"));\n } else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n\n query = __assign(__assign({\n \"x-id\": \"UploadPartCopy\"\n }, input.PartNumber !== undefined && {\n partNumber: input.PartNumber.toString()\n }), input.UploadId !== undefined && {\n uploadId: input.UploadId\n });\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var serializeAws_restXmlWriteGetObjectResponseCommand = function serializeAws_restXmlWriteGetObjectResponseCommand(input, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, query, body, contents, resolvedHostname;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({\n \"content-type\": \"application/octet-stream\",\n \"x-amz-content-sha256\": \"UNSIGNED-PAYLOAD\"\n }, isSerializableHeaderValue(input.RequestRoute) && {\n \"x-amz-request-route\": input.RequestRoute\n }), isSerializableHeaderValue(input.RequestToken) && {\n \"x-amz-request-token\": input.RequestToken\n }), isSerializableHeaderValue(input.StatusCode) && {\n \"x-amz-fwd-status\": input.StatusCode.toString()\n }), isSerializableHeaderValue(input.ErrorCode) && {\n \"x-amz-fwd-error-code\": input.ErrorCode\n }), isSerializableHeaderValue(input.ErrorMessage) && {\n \"x-amz-fwd-error-message\": input.ErrorMessage\n }), isSerializableHeaderValue(input.AcceptRanges) && {\n \"x-amz-fwd-header-accept-ranges\": input.AcceptRanges\n }), isSerializableHeaderValue(input.CacheControl) && {\n \"x-amz-fwd-header-cache-control\": input.CacheControl\n }), isSerializableHeaderValue(input.ContentDisposition) && {\n \"x-amz-fwd-header-content-disposition\": input.ContentDisposition\n }), isSerializableHeaderValue(input.ContentEncoding) && {\n \"x-amz-fwd-header-content-encoding\": input.ContentEncoding\n }), isSerializableHeaderValue(input.ContentLanguage) && {\n \"x-amz-fwd-header-content-language\": input.ContentLanguage\n }), isSerializableHeaderValue(input.ContentLength) && {\n \"content-length\": input.ContentLength.toString()\n }), isSerializableHeaderValue(input.ContentRange) && {\n \"x-amz-fwd-header-content-range\": input.ContentRange\n }), isSerializableHeaderValue(input.ContentType) && {\n \"x-amz-fwd-header-content-type\": input.ContentType\n }), isSerializableHeaderValue(input.DeleteMarker) && {\n \"x-amz-fwd-header-x-amz-delete-marker\": input.DeleteMarker.toString()\n }), isSerializableHeaderValue(input.ETag) && {\n \"x-amz-fwd-header-etag\": input.ETag\n }), isSerializableHeaderValue(input.Expires) && {\n \"x-amz-fwd-header-expires\": __dateToUtcString(input.Expires).toString()\n }), isSerializableHeaderValue(input.Expiration) && {\n \"x-amz-fwd-header-x-amz-expiration\": input.Expiration\n }), isSerializableHeaderValue(input.LastModified) && {\n \"x-amz-fwd-header-last-modified\": __dateToUtcString(input.LastModified).toString()\n }), isSerializableHeaderValue(input.MissingMeta) && {\n \"x-amz-fwd-header-x-amz-missing-meta\": input.MissingMeta.toString()\n }), isSerializableHeaderValue(input.ObjectLockMode) && {\n \"x-amz-fwd-header-x-amz-object-lock-mode\": input.ObjectLockMode\n }), isSerializableHeaderValue(input.ObjectLockLegalHoldStatus) && {\n \"x-amz-fwd-header-x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus\n }), isSerializableHeaderValue(input.ObjectLockRetainUntilDate) && {\n \"x-amz-fwd-header-x-amz-object-lock-retain-until-date\": (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString()\n }), isSerializableHeaderValue(input.PartsCount) && {\n \"x-amz-fwd-header-x-amz-mp-parts-count\": input.PartsCount.toString()\n }), isSerializableHeaderValue(input.ReplicationStatus) && {\n \"x-amz-fwd-header-x-amz-replication-status\": input.ReplicationStatus\n }), isSerializableHeaderValue(input.RequestCharged) && {\n \"x-amz-fwd-header-x-amz-request-charged\": input.RequestCharged\n }), isSerializableHeaderValue(input.Restore) && {\n \"x-amz-fwd-header-x-amz-restore\": input.Restore\n }), isSerializableHeaderValue(input.ServerSideEncryption) && {\n \"x-amz-fwd-header-x-amz-server-side-encryption\": input.ServerSideEncryption\n }), isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-fwd-header-x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm\n }), isSerializableHeaderValue(input.SSEKMSKeyId) && {\n \"x-amz-fwd-header-x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId\n }), isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-fwd-header-x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5\n }), isSerializableHeaderValue(input.StorageClass) && {\n \"x-amz-fwd-header-x-amz-storage-class\": input.StorageClass\n }), isSerializableHeaderValue(input.TagCount) && {\n \"x-amz-fwd-header-x-amz-tagging-count\": input.TagCount.toString()\n }), isSerializableHeaderValue(input.VersionId) && {\n \"x-amz-fwd-header-x-amz-version-id\": input.VersionId\n }), isSerializableHeaderValue(input.BucketKeyEnabled) && {\n \"x-amz-fwd-header-x-amz-server-side-encryption-bucket-key-enabled\": input.BucketKeyEnabled.toString()\n }), input.Metadata !== undefined && Object.keys(input.Metadata).reduce(function (acc, suffix) {\n var _a;\n\n return __assign(__assign({}, acc), (_a = {}, _a[\"x-amz-meta-\" + suffix.toLowerCase()] = input.Metadata[suffix], _a));\n }, {}));\n resolvedPath = \"\" + ((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") + \"/WriteGetObjectResponse\";\n query = {\n \"x-id\": \"WriteGetObjectResponse\"\n };\n\n if (input.Body !== undefined) {\n body = input.Body;\n }\n\n if (input.Body !== undefined) {\n contents = input.Body;\n body = contents;\n }\n\n return [4\n /*yield*/\n , context.endpoint()];\n\n case 2:\n resolvedHostname = _c.sent().hostname;\n\n if (context.disableHostPrefix !== true) {\n resolvedHostname = \"{RequestRoute}.\" + resolvedHostname;\n\n if (input.RequestRoute === undefined) {\n throw new Error(\"Empty value provided for input host prefix: RequestRoute.\");\n }\n\n resolvedHostname = resolvedHostname.replace(\"{RequestRoute}\", input.RequestRoute);\n\n if (!__isValidHostname(resolvedHostname)) {\n throw new Error(\"ValidationError: prefixed hostname must be hostname compatible.\");\n }\n }\n\n return [2\n /*return*/\n , new __HttpRequest({\n protocol: protocol,\n hostname: resolvedHostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body\n })];\n }\n });\n });\n};\nexport var deserializeAws_restXmlAbortMultipartUploadCommand = function deserializeAws_restXmlAbortMultipartUploadCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlAbortMultipartUploadCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined\n };\n\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlAbortMultipartUploadCommandError = function deserializeAws_restXmlAbortMultipartUploadCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n\n var _d;\n\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n\n switch (_b) {\n case \"NoSuchUpload\":\n return [3\n /*break*/\n , 2];\n\n case \"com.amazonaws.s3#NoSuchUpload\":\n return [3\n /*break*/\n , 2];\n }\n\n return [3\n /*break*/\n , 4];\n\n case 2:\n _c = [{}];\n return [4\n /*yield*/\n , deserializeAws_restXmlNoSuchUploadResponse(parsedOutput, context)];\n\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([_e.sent()])), {\n name: errorCode,\n $metadata: deserializeMetadata(output)\n }]);\n return [3\n /*break*/\n , 5];\n\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n _e.label = 5;\n\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlCompleteMultipartUploadCommand = function deserializeAws_restXmlCompleteMultipartUploadCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlCompleteMultipartUploadCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n Bucket: undefined,\n BucketKeyEnabled: undefined,\n ETag: undefined,\n Expiration: undefined,\n Key: undefined,\n Location: undefined,\n RequestCharged: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n VersionId: undefined\n };\n\n if (output.headers[\"x-amz-expiration\"] !== undefined) {\n contents.Expiration = output.headers[\"x-amz-expiration\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]);\n }\n\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(data[\"Bucket\"]);\n }\n\n if (data[\"ETag\"] !== undefined) {\n contents.ETag = __expectString(data[\"ETag\"]);\n }\n\n if (data[\"Key\"] !== undefined) {\n contents.Key = __expectString(data[\"Key\"]);\n }\n\n if (data[\"Location\"] !== undefined) {\n contents.Location = __expectString(data[\"Location\"]);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlCompleteMultipartUploadCommandError = function deserializeAws_restXmlCompleteMultipartUploadCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlCopyObjectCommand = function deserializeAws_restXmlCopyObjectCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlCopyObjectCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n BucketKeyEnabled: undefined,\n CopyObjectResult: undefined,\n CopySourceVersionId: undefined,\n Expiration: undefined,\n RequestCharged: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSEncryptionContext: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n VersionId: undefined\n };\n\n if (output.headers[\"x-amz-expiration\"] !== undefined) {\n contents.Expiration = output.headers[\"x-amz-expiration\"];\n }\n\n if (output.headers[\"x-amz-copy-source-version-id\"] !== undefined) {\n contents.CopySourceVersionId = output.headers[\"x-amz-copy-source-version-id\"];\n }\n\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-context\"] !== undefined) {\n contents.SSEKMSEncryptionContext = output.headers[\"x-amz-server-side-encryption-context\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]);\n }\n\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n contents.CopyObjectResult = deserializeAws_restXmlCopyObjectResult(data, context);\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlCopyObjectCommandError = function deserializeAws_restXmlCopyObjectCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n\n var _d;\n\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n\n switch (_b) {\n case \"ObjectNotInActiveTierError\":\n return [3\n /*break*/\n , 2];\n\n case \"com.amazonaws.s3#ObjectNotInActiveTierError\":\n return [3\n /*break*/\n , 2];\n }\n\n return [3\n /*break*/\n , 4];\n\n case 2:\n _c = [{}];\n return [4\n /*yield*/\n , deserializeAws_restXmlObjectNotInActiveTierErrorResponse(parsedOutput, context)];\n\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([_e.sent()])), {\n name: errorCode,\n $metadata: deserializeMetadata(output)\n }]);\n return [3\n /*break*/\n , 5];\n\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n _e.label = 5;\n\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlCreateBucketCommand = function deserializeAws_restXmlCreateBucketCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlCreateBucketCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n Location: undefined\n };\n\n if (output.headers[\"location\"] !== undefined) {\n contents.Location = output.headers[\"location\"];\n }\n\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlCreateBucketCommandError = function deserializeAws_restXmlCreateBucketCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, parsedBody, message;\n\n var _e;\n\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n _a = [__assign({}, output)];\n _e = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_e.body = _f.sent(), _e)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n\n switch (_b) {\n case \"BucketAlreadyExists\":\n return [3\n /*break*/\n , 2];\n\n case \"com.amazonaws.s3#BucketAlreadyExists\":\n return [3\n /*break*/\n , 2];\n\n case \"BucketAlreadyOwnedByYou\":\n return [3\n /*break*/\n , 4];\n\n case \"com.amazonaws.s3#BucketAlreadyOwnedByYou\":\n return [3\n /*break*/\n , 4];\n }\n\n return [3\n /*break*/\n , 6];\n\n case 2:\n _c = [{}];\n return [4\n /*yield*/\n , deserializeAws_restXmlBucketAlreadyExistsResponse(parsedOutput, context)];\n\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([_f.sent()])), {\n name: errorCode,\n $metadata: deserializeMetadata(output)\n }]);\n return [3\n /*break*/\n , 7];\n\n case 4:\n _d = [{}];\n return [4\n /*yield*/\n , deserializeAws_restXmlBucketAlreadyOwnedByYouResponse(parsedOutput, context)];\n\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([_f.sent()])), {\n name: errorCode,\n $metadata: deserializeMetadata(output)\n }]);\n return [3\n /*break*/\n , 7];\n\n case 6:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n _f.label = 7;\n\n case 7:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlCreateMultipartUploadCommand = function deserializeAws_restXmlCreateMultipartUploadCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlCreateMultipartUploadCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n AbortDate: undefined,\n AbortRuleId: undefined,\n Bucket: undefined,\n BucketKeyEnabled: undefined,\n Key: undefined,\n RequestCharged: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSEncryptionContext: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n UploadId: undefined\n };\n\n if (output.headers[\"x-amz-abort-date\"] !== undefined) {\n contents.AbortDate = new Date(output.headers[\"x-amz-abort-date\"]);\n }\n\n if (output.headers[\"x-amz-abort-rule-id\"] !== undefined) {\n contents.AbortRuleId = output.headers[\"x-amz-abort-rule-id\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-context\"] !== undefined) {\n contents.SSEKMSEncryptionContext = output.headers[\"x-amz-server-side-encryption-context\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]);\n }\n\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(data[\"Bucket\"]);\n }\n\n if (data[\"Key\"] !== undefined) {\n contents.Key = __expectString(data[\"Key\"]);\n }\n\n if (data[\"UploadId\"] !== undefined) {\n contents.UploadId = __expectString(data[\"UploadId\"]);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlCreateMultipartUploadCommandError = function deserializeAws_restXmlCreateMultipartUploadCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlDeleteBucketCommand = function deserializeAws_restXmlDeleteBucketCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlDeleteBucketCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlDeleteBucketCommandError = function deserializeAws_restXmlDeleteBucketCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand = function deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommandError = function deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlDeleteBucketCorsCommand = function deserializeAws_restXmlDeleteBucketCorsCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlDeleteBucketCorsCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlDeleteBucketCorsCommandError = function deserializeAws_restXmlDeleteBucketCorsCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlDeleteBucketEncryptionCommand = function deserializeAws_restXmlDeleteBucketEncryptionCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlDeleteBucketEncryptionCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlDeleteBucketEncryptionCommandError = function deserializeAws_restXmlDeleteBucketEncryptionCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand = function deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommandError = function deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlDeleteBucketInventoryConfigurationCommand = function deserializeAws_restXmlDeleteBucketInventoryConfigurationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlDeleteBucketInventoryConfigurationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlDeleteBucketInventoryConfigurationCommandError = function deserializeAws_restXmlDeleteBucketInventoryConfigurationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlDeleteBucketLifecycleCommand = function deserializeAws_restXmlDeleteBucketLifecycleCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlDeleteBucketLifecycleCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlDeleteBucketLifecycleCommandError = function deserializeAws_restXmlDeleteBucketLifecycleCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlDeleteBucketMetricsConfigurationCommand = function deserializeAws_restXmlDeleteBucketMetricsConfigurationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlDeleteBucketMetricsConfigurationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlDeleteBucketMetricsConfigurationCommandError = function deserializeAws_restXmlDeleteBucketMetricsConfigurationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlDeleteBucketOwnershipControlsCommand = function deserializeAws_restXmlDeleteBucketOwnershipControlsCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlDeleteBucketOwnershipControlsCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlDeleteBucketOwnershipControlsCommandError = function deserializeAws_restXmlDeleteBucketOwnershipControlsCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlDeleteBucketPolicyCommand = function deserializeAws_restXmlDeleteBucketPolicyCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlDeleteBucketPolicyCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlDeleteBucketPolicyCommandError = function deserializeAws_restXmlDeleteBucketPolicyCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlDeleteBucketReplicationCommand = function deserializeAws_restXmlDeleteBucketReplicationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlDeleteBucketReplicationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlDeleteBucketReplicationCommandError = function deserializeAws_restXmlDeleteBucketReplicationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlDeleteBucketTaggingCommand = function deserializeAws_restXmlDeleteBucketTaggingCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlDeleteBucketTaggingCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlDeleteBucketTaggingCommandError = function deserializeAws_restXmlDeleteBucketTaggingCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlDeleteBucketWebsiteCommand = function deserializeAws_restXmlDeleteBucketWebsiteCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlDeleteBucketWebsiteCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlDeleteBucketWebsiteCommandError = function deserializeAws_restXmlDeleteBucketWebsiteCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlDeleteObjectCommand = function deserializeAws_restXmlDeleteObjectCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlDeleteObjectCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n DeleteMarker: undefined,\n RequestCharged: undefined,\n VersionId: undefined\n };\n\n if (output.headers[\"x-amz-delete-marker\"] !== undefined) {\n contents.DeleteMarker = __parseBoolean(output.headers[\"x-amz-delete-marker\"]);\n }\n\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlDeleteObjectCommandError = function deserializeAws_restXmlDeleteObjectCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlDeleteObjectsCommand = function deserializeAws_restXmlDeleteObjectsCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlDeleteObjectsCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n Deleted: undefined,\n Errors: undefined,\n RequestCharged: undefined\n };\n\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data.Deleted === \"\") {\n contents.Deleted = [];\n }\n\n if (data[\"Deleted\"] !== undefined) {\n contents.Deleted = deserializeAws_restXmlDeletedObjects(__getArrayIfSingleItem(data[\"Deleted\"]), context);\n }\n\n if (data.Error === \"\") {\n contents.Errors = [];\n }\n\n if (data[\"Error\"] !== undefined) {\n contents.Errors = deserializeAws_restXmlErrors(__getArrayIfSingleItem(data[\"Error\"]), context);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlDeleteObjectsCommandError = function deserializeAws_restXmlDeleteObjectsCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlDeleteObjectTaggingCommand = function deserializeAws_restXmlDeleteObjectTaggingCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlDeleteObjectTaggingCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n VersionId: undefined\n };\n\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlDeleteObjectTaggingCommandError = function deserializeAws_restXmlDeleteObjectTaggingCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlDeletePublicAccessBlockCommand = function deserializeAws_restXmlDeletePublicAccessBlockCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlDeletePublicAccessBlockCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlDeletePublicAccessBlockCommandError = function deserializeAws_restXmlDeletePublicAccessBlockCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetBucketAccelerateConfigurationCommand = function deserializeAws_restXmlGetBucketAccelerateConfigurationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetBucketAccelerateConfigurationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n Status: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data[\"Status\"] !== undefined) {\n contents.Status = __expectString(data[\"Status\"]);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetBucketAccelerateConfigurationCommandError = function deserializeAws_restXmlGetBucketAccelerateConfigurationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetBucketAclCommand = function deserializeAws_restXmlGetBucketAclCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetBucketAclCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n Grants: undefined,\n Owner: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data.AccessControlList === \"\") {\n contents.Grants = [];\n }\n\n if (data[\"AccessControlList\"] !== undefined && data[\"AccessControlList\"][\"Grant\"] !== undefined) {\n contents.Grants = deserializeAws_restXmlGrants(__getArrayIfSingleItem(data[\"AccessControlList\"][\"Grant\"]), context);\n }\n\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(data[\"Owner\"], context);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetBucketAclCommandError = function deserializeAws_restXmlGetBucketAclCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetBucketAnalyticsConfigurationCommand = function deserializeAws_restXmlGetBucketAnalyticsConfigurationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetBucketAnalyticsConfigurationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n AnalyticsConfiguration: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n contents.AnalyticsConfiguration = deserializeAws_restXmlAnalyticsConfiguration(data, context);\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetBucketAnalyticsConfigurationCommandError = function deserializeAws_restXmlGetBucketAnalyticsConfigurationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetBucketCorsCommand = function deserializeAws_restXmlGetBucketCorsCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetBucketCorsCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n CORSRules: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data.CORSRule === \"\") {\n contents.CORSRules = [];\n }\n\n if (data[\"CORSRule\"] !== undefined) {\n contents.CORSRules = deserializeAws_restXmlCORSRules(__getArrayIfSingleItem(data[\"CORSRule\"]), context);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetBucketCorsCommandError = function deserializeAws_restXmlGetBucketCorsCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetBucketEncryptionCommand = function deserializeAws_restXmlGetBucketEncryptionCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetBucketEncryptionCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n ServerSideEncryptionConfiguration: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n contents.ServerSideEncryptionConfiguration = deserializeAws_restXmlServerSideEncryptionConfiguration(data, context);\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetBucketEncryptionCommandError = function deserializeAws_restXmlGetBucketEncryptionCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand = function deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n IntelligentTieringConfiguration: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n contents.IntelligentTieringConfiguration = deserializeAws_restXmlIntelligentTieringConfiguration(data, context);\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommandError = function deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetBucketInventoryConfigurationCommand = function deserializeAws_restXmlGetBucketInventoryConfigurationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetBucketInventoryConfigurationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n InventoryConfiguration: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n contents.InventoryConfiguration = deserializeAws_restXmlInventoryConfiguration(data, context);\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetBucketInventoryConfigurationCommandError = function deserializeAws_restXmlGetBucketInventoryConfigurationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetBucketLifecycleConfigurationCommand = function deserializeAws_restXmlGetBucketLifecycleConfigurationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetBucketLifecycleConfigurationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n Rules: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data.Rule === \"\") {\n contents.Rules = [];\n }\n\n if (data[\"Rule\"] !== undefined) {\n contents.Rules = deserializeAws_restXmlLifecycleRules(__getArrayIfSingleItem(data[\"Rule\"]), context);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetBucketLifecycleConfigurationCommandError = function deserializeAws_restXmlGetBucketLifecycleConfigurationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetBucketLocationCommand = function deserializeAws_restXmlGetBucketLocationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetBucketLocationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n LocationConstraint: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data[\"LocationConstraint\"] !== undefined) {\n contents.LocationConstraint = __expectString(data[\"LocationConstraint\"]);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetBucketLocationCommandError = function deserializeAws_restXmlGetBucketLocationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetBucketLoggingCommand = function deserializeAws_restXmlGetBucketLoggingCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetBucketLoggingCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n LoggingEnabled: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data[\"LoggingEnabled\"] !== undefined) {\n contents.LoggingEnabled = deserializeAws_restXmlLoggingEnabled(data[\"LoggingEnabled\"], context);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetBucketLoggingCommandError = function deserializeAws_restXmlGetBucketLoggingCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetBucketMetricsConfigurationCommand = function deserializeAws_restXmlGetBucketMetricsConfigurationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetBucketMetricsConfigurationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n MetricsConfiguration: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n contents.MetricsConfiguration = deserializeAws_restXmlMetricsConfiguration(data, context);\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetBucketMetricsConfigurationCommandError = function deserializeAws_restXmlGetBucketMetricsConfigurationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetBucketNotificationConfigurationCommand = function deserializeAws_restXmlGetBucketNotificationConfigurationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetBucketNotificationConfigurationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n LambdaFunctionConfigurations: undefined,\n QueueConfigurations: undefined,\n TopicConfigurations: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data.CloudFunctionConfiguration === \"\") {\n contents.LambdaFunctionConfigurations = [];\n }\n\n if (data[\"CloudFunctionConfiguration\"] !== undefined) {\n contents.LambdaFunctionConfigurations = deserializeAws_restXmlLambdaFunctionConfigurationList(__getArrayIfSingleItem(data[\"CloudFunctionConfiguration\"]), context);\n }\n\n if (data.QueueConfiguration === \"\") {\n contents.QueueConfigurations = [];\n }\n\n if (data[\"QueueConfiguration\"] !== undefined) {\n contents.QueueConfigurations = deserializeAws_restXmlQueueConfigurationList(__getArrayIfSingleItem(data[\"QueueConfiguration\"]), context);\n }\n\n if (data.TopicConfiguration === \"\") {\n contents.TopicConfigurations = [];\n }\n\n if (data[\"TopicConfiguration\"] !== undefined) {\n contents.TopicConfigurations = deserializeAws_restXmlTopicConfigurationList(__getArrayIfSingleItem(data[\"TopicConfiguration\"]), context);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetBucketNotificationConfigurationCommandError = function deserializeAws_restXmlGetBucketNotificationConfigurationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetBucketOwnershipControlsCommand = function deserializeAws_restXmlGetBucketOwnershipControlsCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetBucketOwnershipControlsCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n OwnershipControls: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n contents.OwnershipControls = deserializeAws_restXmlOwnershipControls(data, context);\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetBucketOwnershipControlsCommandError = function deserializeAws_restXmlGetBucketOwnershipControlsCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetBucketPolicyCommand = function deserializeAws_restXmlGetBucketPolicyCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetBucketPolicyCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n Policy: undefined\n };\n return [4\n /*yield*/\n , collectBodyString(output.body, context)];\n\n case 1:\n data = _a.sent();\n contents.Policy = __expectString(data);\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetBucketPolicyCommandError = function deserializeAws_restXmlGetBucketPolicyCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetBucketPolicyStatusCommand = function deserializeAws_restXmlGetBucketPolicyStatusCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetBucketPolicyStatusCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n PolicyStatus: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n contents.PolicyStatus = deserializeAws_restXmlPolicyStatus(data, context);\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetBucketPolicyStatusCommandError = function deserializeAws_restXmlGetBucketPolicyStatusCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetBucketReplicationCommand = function deserializeAws_restXmlGetBucketReplicationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetBucketReplicationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n ReplicationConfiguration: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n contents.ReplicationConfiguration = deserializeAws_restXmlReplicationConfiguration(data, context);\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetBucketReplicationCommandError = function deserializeAws_restXmlGetBucketReplicationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetBucketRequestPaymentCommand = function deserializeAws_restXmlGetBucketRequestPaymentCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetBucketRequestPaymentCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n Payer: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data[\"Payer\"] !== undefined) {\n contents.Payer = __expectString(data[\"Payer\"]);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetBucketRequestPaymentCommandError = function deserializeAws_restXmlGetBucketRequestPaymentCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetBucketTaggingCommand = function deserializeAws_restXmlGetBucketTaggingCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetBucketTaggingCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n TagSet: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data.TagSet === \"\") {\n contents.TagSet = [];\n }\n\n if (data[\"TagSet\"] !== undefined && data[\"TagSet\"][\"Tag\"] !== undefined) {\n contents.TagSet = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(data[\"TagSet\"][\"Tag\"]), context);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetBucketTaggingCommandError = function deserializeAws_restXmlGetBucketTaggingCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetBucketVersioningCommand = function deserializeAws_restXmlGetBucketVersioningCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetBucketVersioningCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n MFADelete: undefined,\n Status: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data[\"MfaDelete\"] !== undefined) {\n contents.MFADelete = __expectString(data[\"MfaDelete\"]);\n }\n\n if (data[\"Status\"] !== undefined) {\n contents.Status = __expectString(data[\"Status\"]);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetBucketVersioningCommandError = function deserializeAws_restXmlGetBucketVersioningCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetBucketWebsiteCommand = function deserializeAws_restXmlGetBucketWebsiteCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetBucketWebsiteCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n ErrorDocument: undefined,\n IndexDocument: undefined,\n RedirectAllRequestsTo: undefined,\n RoutingRules: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data[\"ErrorDocument\"] !== undefined) {\n contents.ErrorDocument = deserializeAws_restXmlErrorDocument(data[\"ErrorDocument\"], context);\n }\n\n if (data[\"IndexDocument\"] !== undefined) {\n contents.IndexDocument = deserializeAws_restXmlIndexDocument(data[\"IndexDocument\"], context);\n }\n\n if (data[\"RedirectAllRequestsTo\"] !== undefined) {\n contents.RedirectAllRequestsTo = deserializeAws_restXmlRedirectAllRequestsTo(data[\"RedirectAllRequestsTo\"], context);\n }\n\n if (data.RoutingRules === \"\") {\n contents.RoutingRules = [];\n }\n\n if (data[\"RoutingRules\"] !== undefined && data[\"RoutingRules\"][\"RoutingRule\"] !== undefined) {\n contents.RoutingRules = deserializeAws_restXmlRoutingRules(__getArrayIfSingleItem(data[\"RoutingRules\"][\"RoutingRule\"]), context);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetBucketWebsiteCommandError = function deserializeAws_restXmlGetBucketWebsiteCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetObjectCommand = function deserializeAws_restXmlGetObjectCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetObjectCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n AcceptRanges: undefined,\n Body: undefined,\n BucketKeyEnabled: undefined,\n CacheControl: undefined,\n ContentDisposition: undefined,\n ContentEncoding: undefined,\n ContentLanguage: undefined,\n ContentLength: undefined,\n ContentRange: undefined,\n ContentType: undefined,\n DeleteMarker: undefined,\n ETag: undefined,\n Expiration: undefined,\n Expires: undefined,\n LastModified: undefined,\n Metadata: undefined,\n MissingMeta: undefined,\n ObjectLockLegalHoldStatus: undefined,\n ObjectLockMode: undefined,\n ObjectLockRetainUntilDate: undefined,\n PartsCount: undefined,\n ReplicationStatus: undefined,\n RequestCharged: undefined,\n Restore: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n StorageClass: undefined,\n TagCount: undefined,\n VersionId: undefined,\n WebsiteRedirectLocation: undefined\n };\n\n if (output.headers[\"x-amz-delete-marker\"] !== undefined) {\n contents.DeleteMarker = __parseBoolean(output.headers[\"x-amz-delete-marker\"]);\n }\n\n if (output.headers[\"accept-ranges\"] !== undefined) {\n contents.AcceptRanges = output.headers[\"accept-ranges\"];\n }\n\n if (output.headers[\"x-amz-expiration\"] !== undefined) {\n contents.Expiration = output.headers[\"x-amz-expiration\"];\n }\n\n if (output.headers[\"x-amz-restore\"] !== undefined) {\n contents.Restore = output.headers[\"x-amz-restore\"];\n }\n\n if (output.headers[\"last-modified\"] !== undefined) {\n contents.LastModified = new Date(output.headers[\"last-modified\"]);\n }\n\n if (output.headers[\"content-length\"] !== undefined) {\n contents.ContentLength = parseInt(output.headers[\"content-length\"], 10);\n }\n\n if (output.headers[\"etag\"] !== undefined) {\n contents.ETag = output.headers[\"etag\"];\n }\n\n if (output.headers[\"x-amz-missing-meta\"] !== undefined) {\n contents.MissingMeta = parseInt(output.headers[\"x-amz-missing-meta\"], 10);\n }\n\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n\n if (output.headers[\"cache-control\"] !== undefined) {\n contents.CacheControl = output.headers[\"cache-control\"];\n }\n\n if (output.headers[\"content-disposition\"] !== undefined) {\n contents.ContentDisposition = output.headers[\"content-disposition\"];\n }\n\n if (output.headers[\"content-encoding\"] !== undefined) {\n contents.ContentEncoding = output.headers[\"content-encoding\"];\n }\n\n if (output.headers[\"content-language\"] !== undefined) {\n contents.ContentLanguage = output.headers[\"content-language\"];\n }\n\n if (output.headers[\"content-range\"] !== undefined) {\n contents.ContentRange = output.headers[\"content-range\"];\n }\n\n if (output.headers[\"content-type\"] !== undefined) {\n contents.ContentType = output.headers[\"content-type\"];\n }\n\n if (output.headers[\"expires\"] !== undefined) {\n contents.Expires = new Date(output.headers[\"expires\"]);\n }\n\n if (output.headers[\"x-amz-website-redirect-location\"] !== undefined) {\n contents.WebsiteRedirectLocation = output.headers[\"x-amz-website-redirect-location\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]);\n }\n\n if (output.headers[\"x-amz-storage-class\"] !== undefined) {\n contents.StorageClass = output.headers[\"x-amz-storage-class\"];\n }\n\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n\n if (output.headers[\"x-amz-replication-status\"] !== undefined) {\n contents.ReplicationStatus = output.headers[\"x-amz-replication-status\"];\n }\n\n if (output.headers[\"x-amz-mp-parts-count\"] !== undefined) {\n contents.PartsCount = parseInt(output.headers[\"x-amz-mp-parts-count\"], 10);\n }\n\n if (output.headers[\"x-amz-tagging-count\"] !== undefined) {\n contents.TagCount = parseInt(output.headers[\"x-amz-tagging-count\"], 10);\n }\n\n if (output.headers[\"x-amz-object-lock-mode\"] !== undefined) {\n contents.ObjectLockMode = output.headers[\"x-amz-object-lock-mode\"];\n }\n\n if (output.headers[\"x-amz-object-lock-retain-until-date\"] !== undefined) {\n contents.ObjectLockRetainUntilDate = new Date(output.headers[\"x-amz-object-lock-retain-until-date\"]);\n }\n\n if (output.headers[\"x-amz-object-lock-legal-hold\"] !== undefined) {\n contents.ObjectLockLegalHoldStatus = output.headers[\"x-amz-object-lock-legal-hold\"];\n }\n\n Object.keys(output.headers).forEach(function (header) {\n if (contents.Metadata === undefined) {\n contents.Metadata = {};\n }\n\n if (header.startsWith(\"x-amz-meta-\")) {\n contents.Metadata[header.substring(11)] = output.headers[header];\n }\n });\n data = output.body;\n contents.Body = data;\n return [2\n /*return*/\n , Promise.resolve(contents)];\n });\n });\n};\n\nvar deserializeAws_restXmlGetObjectCommandError = function deserializeAws_restXmlGetObjectCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, parsedBody, message;\n\n var _e;\n\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n _a = [__assign({}, output)];\n _e = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_e.body = _f.sent(), _e)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n\n switch (_b) {\n case \"InvalidObjectState\":\n return [3\n /*break*/\n , 2];\n\n case \"com.amazonaws.s3#InvalidObjectState\":\n return [3\n /*break*/\n , 2];\n\n case \"NoSuchKey\":\n return [3\n /*break*/\n , 4];\n\n case \"com.amazonaws.s3#NoSuchKey\":\n return [3\n /*break*/\n , 4];\n }\n\n return [3\n /*break*/\n , 6];\n\n case 2:\n _c = [{}];\n return [4\n /*yield*/\n , deserializeAws_restXmlInvalidObjectStateResponse(parsedOutput, context)];\n\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([_f.sent()])), {\n name: errorCode,\n $metadata: deserializeMetadata(output)\n }]);\n return [3\n /*break*/\n , 7];\n\n case 4:\n _d = [{}];\n return [4\n /*yield*/\n , deserializeAws_restXmlNoSuchKeyResponse(parsedOutput, context)];\n\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([_f.sent()])), {\n name: errorCode,\n $metadata: deserializeMetadata(output)\n }]);\n return [3\n /*break*/\n , 7];\n\n case 6:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n _f.label = 7;\n\n case 7:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetObjectAclCommand = function deserializeAws_restXmlGetObjectAclCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetObjectAclCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n Grants: undefined,\n Owner: undefined,\n RequestCharged: undefined\n };\n\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data.AccessControlList === \"\") {\n contents.Grants = [];\n }\n\n if (data[\"AccessControlList\"] !== undefined && data[\"AccessControlList\"][\"Grant\"] !== undefined) {\n contents.Grants = deserializeAws_restXmlGrants(__getArrayIfSingleItem(data[\"AccessControlList\"][\"Grant\"]), context);\n }\n\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(data[\"Owner\"], context);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetObjectAclCommandError = function deserializeAws_restXmlGetObjectAclCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n\n var _d;\n\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n\n switch (_b) {\n case \"NoSuchKey\":\n return [3\n /*break*/\n , 2];\n\n case \"com.amazonaws.s3#NoSuchKey\":\n return [3\n /*break*/\n , 2];\n }\n\n return [3\n /*break*/\n , 4];\n\n case 2:\n _c = [{}];\n return [4\n /*yield*/\n , deserializeAws_restXmlNoSuchKeyResponse(parsedOutput, context)];\n\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([_e.sent()])), {\n name: errorCode,\n $metadata: deserializeMetadata(output)\n }]);\n return [3\n /*break*/\n , 5];\n\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n _e.label = 5;\n\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetObjectLegalHoldCommand = function deserializeAws_restXmlGetObjectLegalHoldCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetObjectLegalHoldCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n LegalHold: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n contents.LegalHold = deserializeAws_restXmlObjectLockLegalHold(data, context);\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetObjectLegalHoldCommandError = function deserializeAws_restXmlGetObjectLegalHoldCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetObjectLockConfigurationCommand = function deserializeAws_restXmlGetObjectLockConfigurationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetObjectLockConfigurationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n ObjectLockConfiguration: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n contents.ObjectLockConfiguration = deserializeAws_restXmlObjectLockConfiguration(data, context);\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetObjectLockConfigurationCommandError = function deserializeAws_restXmlGetObjectLockConfigurationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetObjectRetentionCommand = function deserializeAws_restXmlGetObjectRetentionCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetObjectRetentionCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n Retention: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n contents.Retention = deserializeAws_restXmlObjectLockRetention(data, context);\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetObjectRetentionCommandError = function deserializeAws_restXmlGetObjectRetentionCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetObjectTaggingCommand = function deserializeAws_restXmlGetObjectTaggingCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetObjectTaggingCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n TagSet: undefined,\n VersionId: undefined\n };\n\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data.TagSet === \"\") {\n contents.TagSet = [];\n }\n\n if (data[\"TagSet\"] !== undefined && data[\"TagSet\"][\"Tag\"] !== undefined) {\n contents.TagSet = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(data[\"TagSet\"][\"Tag\"]), context);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetObjectTaggingCommandError = function deserializeAws_restXmlGetObjectTaggingCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetObjectTorrentCommand = function deserializeAws_restXmlGetObjectTorrentCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetObjectTorrentCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n Body: undefined,\n RequestCharged: undefined\n };\n\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n\n data = output.body;\n contents.Body = data;\n return [2\n /*return*/\n , Promise.resolve(contents)];\n });\n });\n};\n\nvar deserializeAws_restXmlGetObjectTorrentCommandError = function deserializeAws_restXmlGetObjectTorrentCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlGetPublicAccessBlockCommand = function deserializeAws_restXmlGetPublicAccessBlockCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlGetPublicAccessBlockCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n PublicAccessBlockConfiguration: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n contents.PublicAccessBlockConfiguration = deserializeAws_restXmlPublicAccessBlockConfiguration(data, context);\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlGetPublicAccessBlockCommandError = function deserializeAws_restXmlGetPublicAccessBlockCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlHeadBucketCommand = function deserializeAws_restXmlHeadBucketCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlHeadBucketCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlHeadBucketCommandError = function deserializeAws_restXmlHeadBucketCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n\n var _d;\n\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n\n switch (_b) {\n case \"NotFound\":\n return [3\n /*break*/\n , 2];\n\n case \"com.amazonaws.s3#NotFound\":\n return [3\n /*break*/\n , 2];\n }\n\n return [3\n /*break*/\n , 4];\n\n case 2:\n _c = [{}];\n return [4\n /*yield*/\n , deserializeAws_restXmlNotFoundResponse(parsedOutput, context)];\n\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([_e.sent()])), {\n name: errorCode,\n $metadata: deserializeMetadata(output)\n }]);\n return [3\n /*break*/\n , 5];\n\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n _e.label = 5;\n\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlHeadObjectCommand = function deserializeAws_restXmlHeadObjectCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlHeadObjectCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n AcceptRanges: undefined,\n ArchiveStatus: undefined,\n BucketKeyEnabled: undefined,\n CacheControl: undefined,\n ContentDisposition: undefined,\n ContentEncoding: undefined,\n ContentLanguage: undefined,\n ContentLength: undefined,\n ContentType: undefined,\n DeleteMarker: undefined,\n ETag: undefined,\n Expiration: undefined,\n Expires: undefined,\n LastModified: undefined,\n Metadata: undefined,\n MissingMeta: undefined,\n ObjectLockLegalHoldStatus: undefined,\n ObjectLockMode: undefined,\n ObjectLockRetainUntilDate: undefined,\n PartsCount: undefined,\n ReplicationStatus: undefined,\n RequestCharged: undefined,\n Restore: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n StorageClass: undefined,\n VersionId: undefined,\n WebsiteRedirectLocation: undefined\n };\n\n if (output.headers[\"x-amz-delete-marker\"] !== undefined) {\n contents.DeleteMarker = __parseBoolean(output.headers[\"x-amz-delete-marker\"]);\n }\n\n if (output.headers[\"accept-ranges\"] !== undefined) {\n contents.AcceptRanges = output.headers[\"accept-ranges\"];\n }\n\n if (output.headers[\"x-amz-expiration\"] !== undefined) {\n contents.Expiration = output.headers[\"x-amz-expiration\"];\n }\n\n if (output.headers[\"x-amz-restore\"] !== undefined) {\n contents.Restore = output.headers[\"x-amz-restore\"];\n }\n\n if (output.headers[\"x-amz-archive-status\"] !== undefined) {\n contents.ArchiveStatus = output.headers[\"x-amz-archive-status\"];\n }\n\n if (output.headers[\"last-modified\"] !== undefined) {\n contents.LastModified = new Date(output.headers[\"last-modified\"]);\n }\n\n if (output.headers[\"content-length\"] !== undefined) {\n contents.ContentLength = parseInt(output.headers[\"content-length\"], 10);\n }\n\n if (output.headers[\"etag\"] !== undefined) {\n contents.ETag = output.headers[\"etag\"];\n }\n\n if (output.headers[\"x-amz-missing-meta\"] !== undefined) {\n contents.MissingMeta = parseInt(output.headers[\"x-amz-missing-meta\"], 10);\n }\n\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n\n if (output.headers[\"cache-control\"] !== undefined) {\n contents.CacheControl = output.headers[\"cache-control\"];\n }\n\n if (output.headers[\"content-disposition\"] !== undefined) {\n contents.ContentDisposition = output.headers[\"content-disposition\"];\n }\n\n if (output.headers[\"content-encoding\"] !== undefined) {\n contents.ContentEncoding = output.headers[\"content-encoding\"];\n }\n\n if (output.headers[\"content-language\"] !== undefined) {\n contents.ContentLanguage = output.headers[\"content-language\"];\n }\n\n if (output.headers[\"content-type\"] !== undefined) {\n contents.ContentType = output.headers[\"content-type\"];\n }\n\n if (output.headers[\"expires\"] !== undefined) {\n contents.Expires = new Date(output.headers[\"expires\"]);\n }\n\n if (output.headers[\"x-amz-website-redirect-location\"] !== undefined) {\n contents.WebsiteRedirectLocation = output.headers[\"x-amz-website-redirect-location\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]);\n }\n\n if (output.headers[\"x-amz-storage-class\"] !== undefined) {\n contents.StorageClass = output.headers[\"x-amz-storage-class\"];\n }\n\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n\n if (output.headers[\"x-amz-replication-status\"] !== undefined) {\n contents.ReplicationStatus = output.headers[\"x-amz-replication-status\"];\n }\n\n if (output.headers[\"x-amz-mp-parts-count\"] !== undefined) {\n contents.PartsCount = parseInt(output.headers[\"x-amz-mp-parts-count\"], 10);\n }\n\n if (output.headers[\"x-amz-object-lock-mode\"] !== undefined) {\n contents.ObjectLockMode = output.headers[\"x-amz-object-lock-mode\"];\n }\n\n if (output.headers[\"x-amz-object-lock-retain-until-date\"] !== undefined) {\n contents.ObjectLockRetainUntilDate = new Date(output.headers[\"x-amz-object-lock-retain-until-date\"]);\n }\n\n if (output.headers[\"x-amz-object-lock-legal-hold\"] !== undefined) {\n contents.ObjectLockLegalHoldStatus = output.headers[\"x-amz-object-lock-legal-hold\"];\n }\n\n Object.keys(output.headers).forEach(function (header) {\n if (contents.Metadata === undefined) {\n contents.Metadata = {};\n }\n\n if (header.startsWith(\"x-amz-meta-\")) {\n contents.Metadata[header.substring(11)] = output.headers[header];\n }\n });\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlHeadObjectCommandError = function deserializeAws_restXmlHeadObjectCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n\n var _d;\n\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n\n switch (_b) {\n case \"NotFound\":\n return [3\n /*break*/\n , 2];\n\n case \"com.amazonaws.s3#NotFound\":\n return [3\n /*break*/\n , 2];\n }\n\n return [3\n /*break*/\n , 4];\n\n case 2:\n _c = [{}];\n return [4\n /*yield*/\n , deserializeAws_restXmlNotFoundResponse(parsedOutput, context)];\n\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([_e.sent()])), {\n name: errorCode,\n $metadata: deserializeMetadata(output)\n }]);\n return [3\n /*break*/\n , 5];\n\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n _e.label = 5;\n\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlListBucketAnalyticsConfigurationsCommand = function deserializeAws_restXmlListBucketAnalyticsConfigurationsCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlListBucketAnalyticsConfigurationsCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n AnalyticsConfigurationList: undefined,\n ContinuationToken: undefined,\n IsTruncated: undefined,\n NextContinuationToken: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data.AnalyticsConfiguration === \"\") {\n contents.AnalyticsConfigurationList = [];\n }\n\n if (data[\"AnalyticsConfiguration\"] !== undefined) {\n contents.AnalyticsConfigurationList = deserializeAws_restXmlAnalyticsConfigurationList(__getArrayIfSingleItem(data[\"AnalyticsConfiguration\"]), context);\n }\n\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = __expectString(data[\"ContinuationToken\"]);\n }\n\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = __expectString(data[\"NextContinuationToken\"]);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlListBucketAnalyticsConfigurationsCommandError = function deserializeAws_restXmlListBucketAnalyticsConfigurationsCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand = function deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n ContinuationToken: undefined,\n IntelligentTieringConfigurationList: undefined,\n IsTruncated: undefined,\n NextContinuationToken: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = __expectString(data[\"ContinuationToken\"]);\n }\n\n if (data.IntelligentTieringConfiguration === \"\") {\n contents.IntelligentTieringConfigurationList = [];\n }\n\n if (data[\"IntelligentTieringConfiguration\"] !== undefined) {\n contents.IntelligentTieringConfigurationList = deserializeAws_restXmlIntelligentTieringConfigurationList(__getArrayIfSingleItem(data[\"IntelligentTieringConfiguration\"]), context);\n }\n\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = __expectString(data[\"NextContinuationToken\"]);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommandError = function deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlListBucketInventoryConfigurationsCommand = function deserializeAws_restXmlListBucketInventoryConfigurationsCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlListBucketInventoryConfigurationsCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n ContinuationToken: undefined,\n InventoryConfigurationList: undefined,\n IsTruncated: undefined,\n NextContinuationToken: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = __expectString(data[\"ContinuationToken\"]);\n }\n\n if (data.InventoryConfiguration === \"\") {\n contents.InventoryConfigurationList = [];\n }\n\n if (data[\"InventoryConfiguration\"] !== undefined) {\n contents.InventoryConfigurationList = deserializeAws_restXmlInventoryConfigurationList(__getArrayIfSingleItem(data[\"InventoryConfiguration\"]), context);\n }\n\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = __expectString(data[\"NextContinuationToken\"]);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlListBucketInventoryConfigurationsCommandError = function deserializeAws_restXmlListBucketInventoryConfigurationsCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlListBucketMetricsConfigurationsCommand = function deserializeAws_restXmlListBucketMetricsConfigurationsCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlListBucketMetricsConfigurationsCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n ContinuationToken: undefined,\n IsTruncated: undefined,\n MetricsConfigurationList: undefined,\n NextContinuationToken: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = __expectString(data[\"ContinuationToken\"]);\n }\n\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n\n if (data.MetricsConfiguration === \"\") {\n contents.MetricsConfigurationList = [];\n }\n\n if (data[\"MetricsConfiguration\"] !== undefined) {\n contents.MetricsConfigurationList = deserializeAws_restXmlMetricsConfigurationList(__getArrayIfSingleItem(data[\"MetricsConfiguration\"]), context);\n }\n\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = __expectString(data[\"NextContinuationToken\"]);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlListBucketMetricsConfigurationsCommandError = function deserializeAws_restXmlListBucketMetricsConfigurationsCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlListBucketsCommand = function deserializeAws_restXmlListBucketsCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlListBucketsCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n Buckets: undefined,\n Owner: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data.Buckets === \"\") {\n contents.Buckets = [];\n }\n\n if (data[\"Buckets\"] !== undefined && data[\"Buckets\"][\"Bucket\"] !== undefined) {\n contents.Buckets = deserializeAws_restXmlBuckets(__getArrayIfSingleItem(data[\"Buckets\"][\"Bucket\"]), context);\n }\n\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(data[\"Owner\"], context);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlListBucketsCommandError = function deserializeAws_restXmlListBucketsCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlListMultipartUploadsCommand = function deserializeAws_restXmlListMultipartUploadsCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlListMultipartUploadsCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n Bucket: undefined,\n CommonPrefixes: undefined,\n Delimiter: undefined,\n EncodingType: undefined,\n IsTruncated: undefined,\n KeyMarker: undefined,\n MaxUploads: undefined,\n NextKeyMarker: undefined,\n NextUploadIdMarker: undefined,\n Prefix: undefined,\n UploadIdMarker: undefined,\n Uploads: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(data[\"Bucket\"]);\n }\n\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n\n if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = deserializeAws_restXmlCommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = __expectString(data[\"Delimiter\"]);\n }\n\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = __expectString(data[\"EncodingType\"]);\n }\n\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n\n if (data[\"KeyMarker\"] !== undefined) {\n contents.KeyMarker = __expectString(data[\"KeyMarker\"]);\n }\n\n if (data[\"MaxUploads\"] !== undefined) {\n contents.MaxUploads = parseInt(data[\"MaxUploads\"]);\n }\n\n if (data[\"NextKeyMarker\"] !== undefined) {\n contents.NextKeyMarker = __expectString(data[\"NextKeyMarker\"]);\n }\n\n if (data[\"NextUploadIdMarker\"] !== undefined) {\n contents.NextUploadIdMarker = __expectString(data[\"NextUploadIdMarker\"]);\n }\n\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(data[\"Prefix\"]);\n }\n\n if (data[\"UploadIdMarker\"] !== undefined) {\n contents.UploadIdMarker = __expectString(data[\"UploadIdMarker\"]);\n }\n\n if (data.Upload === \"\") {\n contents.Uploads = [];\n }\n\n if (data[\"Upload\"] !== undefined) {\n contents.Uploads = deserializeAws_restXmlMultipartUploadList(__getArrayIfSingleItem(data[\"Upload\"]), context);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlListMultipartUploadsCommandError = function deserializeAws_restXmlListMultipartUploadsCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlListObjectsCommand = function deserializeAws_restXmlListObjectsCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlListObjectsCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n CommonPrefixes: undefined,\n Contents: undefined,\n Delimiter: undefined,\n EncodingType: undefined,\n IsTruncated: undefined,\n Marker: undefined,\n MaxKeys: undefined,\n Name: undefined,\n NextMarker: undefined,\n Prefix: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n\n if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = deserializeAws_restXmlCommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n\n if (data.Contents === \"\") {\n contents.Contents = [];\n }\n\n if (data[\"Contents\"] !== undefined) {\n contents.Contents = deserializeAws_restXmlObjectList(__getArrayIfSingleItem(data[\"Contents\"]), context);\n }\n\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = __expectString(data[\"Delimiter\"]);\n }\n\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = __expectString(data[\"EncodingType\"]);\n }\n\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n\n if (data[\"Marker\"] !== undefined) {\n contents.Marker = __expectString(data[\"Marker\"]);\n }\n\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = parseInt(data[\"MaxKeys\"]);\n }\n\n if (data[\"Name\"] !== undefined) {\n contents.Name = __expectString(data[\"Name\"]);\n }\n\n if (data[\"NextMarker\"] !== undefined) {\n contents.NextMarker = __expectString(data[\"NextMarker\"]);\n }\n\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(data[\"Prefix\"]);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlListObjectsCommandError = function deserializeAws_restXmlListObjectsCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n\n var _d;\n\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n\n switch (_b) {\n case \"NoSuchBucket\":\n return [3\n /*break*/\n , 2];\n\n case \"com.amazonaws.s3#NoSuchBucket\":\n return [3\n /*break*/\n , 2];\n }\n\n return [3\n /*break*/\n , 4];\n\n case 2:\n _c = [{}];\n return [4\n /*yield*/\n , deserializeAws_restXmlNoSuchBucketResponse(parsedOutput, context)];\n\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([_e.sent()])), {\n name: errorCode,\n $metadata: deserializeMetadata(output)\n }]);\n return [3\n /*break*/\n , 5];\n\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n _e.label = 5;\n\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlListObjectsV2Command = function deserializeAws_restXmlListObjectsV2Command(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlListObjectsV2CommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n CommonPrefixes: undefined,\n Contents: undefined,\n ContinuationToken: undefined,\n Delimiter: undefined,\n EncodingType: undefined,\n IsTruncated: undefined,\n KeyCount: undefined,\n MaxKeys: undefined,\n Name: undefined,\n NextContinuationToken: undefined,\n Prefix: undefined,\n StartAfter: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n\n if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = deserializeAws_restXmlCommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n\n if (data.Contents === \"\") {\n contents.Contents = [];\n }\n\n if (data[\"Contents\"] !== undefined) {\n contents.Contents = deserializeAws_restXmlObjectList(__getArrayIfSingleItem(data[\"Contents\"]), context);\n }\n\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = __expectString(data[\"ContinuationToken\"]);\n }\n\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = __expectString(data[\"Delimiter\"]);\n }\n\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = __expectString(data[\"EncodingType\"]);\n }\n\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n\n if (data[\"KeyCount\"] !== undefined) {\n contents.KeyCount = parseInt(data[\"KeyCount\"]);\n }\n\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = parseInt(data[\"MaxKeys\"]);\n }\n\n if (data[\"Name\"] !== undefined) {\n contents.Name = __expectString(data[\"Name\"]);\n }\n\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = __expectString(data[\"NextContinuationToken\"]);\n }\n\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(data[\"Prefix\"]);\n }\n\n if (data[\"StartAfter\"] !== undefined) {\n contents.StartAfter = __expectString(data[\"StartAfter\"]);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlListObjectsV2CommandError = function deserializeAws_restXmlListObjectsV2CommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n\n var _d;\n\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n\n switch (_b) {\n case \"NoSuchBucket\":\n return [3\n /*break*/\n , 2];\n\n case \"com.amazonaws.s3#NoSuchBucket\":\n return [3\n /*break*/\n , 2];\n }\n\n return [3\n /*break*/\n , 4];\n\n case 2:\n _c = [{}];\n return [4\n /*yield*/\n , deserializeAws_restXmlNoSuchBucketResponse(parsedOutput, context)];\n\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([_e.sent()])), {\n name: errorCode,\n $metadata: deserializeMetadata(output)\n }]);\n return [3\n /*break*/\n , 5];\n\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n _e.label = 5;\n\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlListObjectVersionsCommand = function deserializeAws_restXmlListObjectVersionsCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlListObjectVersionsCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n CommonPrefixes: undefined,\n DeleteMarkers: undefined,\n Delimiter: undefined,\n EncodingType: undefined,\n IsTruncated: undefined,\n KeyMarker: undefined,\n MaxKeys: undefined,\n Name: undefined,\n NextKeyMarker: undefined,\n NextVersionIdMarker: undefined,\n Prefix: undefined,\n VersionIdMarker: undefined,\n Versions: undefined\n };\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n\n if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = deserializeAws_restXmlCommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n\n if (data.DeleteMarker === \"\") {\n contents.DeleteMarkers = [];\n }\n\n if (data[\"DeleteMarker\"] !== undefined) {\n contents.DeleteMarkers = deserializeAws_restXmlDeleteMarkers(__getArrayIfSingleItem(data[\"DeleteMarker\"]), context);\n }\n\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = __expectString(data[\"Delimiter\"]);\n }\n\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = __expectString(data[\"EncodingType\"]);\n }\n\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n\n if (data[\"KeyMarker\"] !== undefined) {\n contents.KeyMarker = __expectString(data[\"KeyMarker\"]);\n }\n\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = parseInt(data[\"MaxKeys\"]);\n }\n\n if (data[\"Name\"] !== undefined) {\n contents.Name = __expectString(data[\"Name\"]);\n }\n\n if (data[\"NextKeyMarker\"] !== undefined) {\n contents.NextKeyMarker = __expectString(data[\"NextKeyMarker\"]);\n }\n\n if (data[\"NextVersionIdMarker\"] !== undefined) {\n contents.NextVersionIdMarker = __expectString(data[\"NextVersionIdMarker\"]);\n }\n\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(data[\"Prefix\"]);\n }\n\n if (data[\"VersionIdMarker\"] !== undefined) {\n contents.VersionIdMarker = __expectString(data[\"VersionIdMarker\"]);\n }\n\n if (data.Version === \"\") {\n contents.Versions = [];\n }\n\n if (data[\"Version\"] !== undefined) {\n contents.Versions = deserializeAws_restXmlObjectVersionList(__getArrayIfSingleItem(data[\"Version\"]), context);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlListObjectVersionsCommandError = function deserializeAws_restXmlListObjectVersionsCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlListPartsCommand = function deserializeAws_restXmlListPartsCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlListPartsCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n AbortDate: undefined,\n AbortRuleId: undefined,\n Bucket: undefined,\n Initiator: undefined,\n IsTruncated: undefined,\n Key: undefined,\n MaxParts: undefined,\n NextPartNumberMarker: undefined,\n Owner: undefined,\n PartNumberMarker: undefined,\n Parts: undefined,\n RequestCharged: undefined,\n StorageClass: undefined,\n UploadId: undefined\n };\n\n if (output.headers[\"x-amz-abort-date\"] !== undefined) {\n contents.AbortDate = new Date(output.headers[\"x-amz-abort-date\"]);\n }\n\n if (output.headers[\"x-amz-abort-rule-id\"] !== undefined) {\n contents.AbortRuleId = output.headers[\"x-amz-abort-rule-id\"];\n }\n\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(data[\"Bucket\"]);\n }\n\n if (data[\"Initiator\"] !== undefined) {\n contents.Initiator = deserializeAws_restXmlInitiator(data[\"Initiator\"], context);\n }\n\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n\n if (data[\"Key\"] !== undefined) {\n contents.Key = __expectString(data[\"Key\"]);\n }\n\n if (data[\"MaxParts\"] !== undefined) {\n contents.MaxParts = parseInt(data[\"MaxParts\"]);\n }\n\n if (data[\"NextPartNumberMarker\"] !== undefined) {\n contents.NextPartNumberMarker = __expectString(data[\"NextPartNumberMarker\"]);\n }\n\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(data[\"Owner\"], context);\n }\n\n if (data[\"PartNumberMarker\"] !== undefined) {\n contents.PartNumberMarker = __expectString(data[\"PartNumberMarker\"]);\n }\n\n if (data.Part === \"\") {\n contents.Parts = [];\n }\n\n if (data[\"Part\"] !== undefined) {\n contents.Parts = deserializeAws_restXmlParts(__getArrayIfSingleItem(data[\"Part\"]), context);\n }\n\n if (data[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(data[\"StorageClass\"]);\n }\n\n if (data[\"UploadId\"] !== undefined) {\n contents.UploadId = __expectString(data[\"UploadId\"]);\n }\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlListPartsCommandError = function deserializeAws_restXmlListPartsCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutBucketAccelerateConfigurationCommand = function deserializeAws_restXmlPutBucketAccelerateConfigurationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutBucketAccelerateConfigurationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutBucketAccelerateConfigurationCommandError = function deserializeAws_restXmlPutBucketAccelerateConfigurationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutBucketAclCommand = function deserializeAws_restXmlPutBucketAclCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutBucketAclCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutBucketAclCommandError = function deserializeAws_restXmlPutBucketAclCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutBucketAnalyticsConfigurationCommand = function deserializeAws_restXmlPutBucketAnalyticsConfigurationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutBucketAnalyticsConfigurationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutBucketAnalyticsConfigurationCommandError = function deserializeAws_restXmlPutBucketAnalyticsConfigurationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutBucketCorsCommand = function deserializeAws_restXmlPutBucketCorsCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutBucketCorsCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutBucketCorsCommandError = function deserializeAws_restXmlPutBucketCorsCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutBucketEncryptionCommand = function deserializeAws_restXmlPutBucketEncryptionCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutBucketEncryptionCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutBucketEncryptionCommandError = function deserializeAws_restXmlPutBucketEncryptionCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand = function deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommandError = function deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutBucketInventoryConfigurationCommand = function deserializeAws_restXmlPutBucketInventoryConfigurationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutBucketInventoryConfigurationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutBucketInventoryConfigurationCommandError = function deserializeAws_restXmlPutBucketInventoryConfigurationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutBucketLifecycleConfigurationCommand = function deserializeAws_restXmlPutBucketLifecycleConfigurationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutBucketLifecycleConfigurationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutBucketLifecycleConfigurationCommandError = function deserializeAws_restXmlPutBucketLifecycleConfigurationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutBucketLoggingCommand = function deserializeAws_restXmlPutBucketLoggingCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutBucketLoggingCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutBucketLoggingCommandError = function deserializeAws_restXmlPutBucketLoggingCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutBucketMetricsConfigurationCommand = function deserializeAws_restXmlPutBucketMetricsConfigurationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutBucketMetricsConfigurationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutBucketMetricsConfigurationCommandError = function deserializeAws_restXmlPutBucketMetricsConfigurationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutBucketNotificationConfigurationCommand = function deserializeAws_restXmlPutBucketNotificationConfigurationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutBucketNotificationConfigurationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutBucketNotificationConfigurationCommandError = function deserializeAws_restXmlPutBucketNotificationConfigurationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutBucketOwnershipControlsCommand = function deserializeAws_restXmlPutBucketOwnershipControlsCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutBucketOwnershipControlsCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutBucketOwnershipControlsCommandError = function deserializeAws_restXmlPutBucketOwnershipControlsCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutBucketPolicyCommand = function deserializeAws_restXmlPutBucketPolicyCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutBucketPolicyCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutBucketPolicyCommandError = function deserializeAws_restXmlPutBucketPolicyCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutBucketReplicationCommand = function deserializeAws_restXmlPutBucketReplicationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutBucketReplicationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutBucketReplicationCommandError = function deserializeAws_restXmlPutBucketReplicationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutBucketRequestPaymentCommand = function deserializeAws_restXmlPutBucketRequestPaymentCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutBucketRequestPaymentCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutBucketRequestPaymentCommandError = function deserializeAws_restXmlPutBucketRequestPaymentCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutBucketTaggingCommand = function deserializeAws_restXmlPutBucketTaggingCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutBucketTaggingCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutBucketTaggingCommandError = function deserializeAws_restXmlPutBucketTaggingCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutBucketVersioningCommand = function deserializeAws_restXmlPutBucketVersioningCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutBucketVersioningCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutBucketVersioningCommandError = function deserializeAws_restXmlPutBucketVersioningCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutBucketWebsiteCommand = function deserializeAws_restXmlPutBucketWebsiteCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutBucketWebsiteCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutBucketWebsiteCommandError = function deserializeAws_restXmlPutBucketWebsiteCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutObjectCommand = function deserializeAws_restXmlPutObjectCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutObjectCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n BucketKeyEnabled: undefined,\n ETag: undefined,\n Expiration: undefined,\n RequestCharged: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSEncryptionContext: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n VersionId: undefined\n };\n\n if (output.headers[\"x-amz-expiration\"] !== undefined) {\n contents.Expiration = output.headers[\"x-amz-expiration\"];\n }\n\n if (output.headers[\"etag\"] !== undefined) {\n contents.ETag = output.headers[\"etag\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-context\"] !== undefined) {\n contents.SSEKMSEncryptionContext = output.headers[\"x-amz-server-side-encryption-context\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]);\n }\n\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutObjectCommandError = function deserializeAws_restXmlPutObjectCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutObjectAclCommand = function deserializeAws_restXmlPutObjectAclCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutObjectAclCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined\n };\n\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutObjectAclCommandError = function deserializeAws_restXmlPutObjectAclCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n\n var _d;\n\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n\n switch (_b) {\n case \"NoSuchKey\":\n return [3\n /*break*/\n , 2];\n\n case \"com.amazonaws.s3#NoSuchKey\":\n return [3\n /*break*/\n , 2];\n }\n\n return [3\n /*break*/\n , 4];\n\n case 2:\n _c = [{}];\n return [4\n /*yield*/\n , deserializeAws_restXmlNoSuchKeyResponse(parsedOutput, context)];\n\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([_e.sent()])), {\n name: errorCode,\n $metadata: deserializeMetadata(output)\n }]);\n return [3\n /*break*/\n , 5];\n\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n _e.label = 5;\n\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutObjectLegalHoldCommand = function deserializeAws_restXmlPutObjectLegalHoldCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutObjectLegalHoldCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined\n };\n\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutObjectLegalHoldCommandError = function deserializeAws_restXmlPutObjectLegalHoldCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutObjectLockConfigurationCommand = function deserializeAws_restXmlPutObjectLockConfigurationCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutObjectLockConfigurationCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined\n };\n\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutObjectLockConfigurationCommandError = function deserializeAws_restXmlPutObjectLockConfigurationCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutObjectRetentionCommand = function deserializeAws_restXmlPutObjectRetentionCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutObjectRetentionCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined\n };\n\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutObjectRetentionCommandError = function deserializeAws_restXmlPutObjectRetentionCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutObjectTaggingCommand = function deserializeAws_restXmlPutObjectTaggingCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutObjectTaggingCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n VersionId: undefined\n };\n\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutObjectTaggingCommandError = function deserializeAws_restXmlPutObjectTaggingCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlPutPublicAccessBlockCommand = function deserializeAws_restXmlPutPublicAccessBlockCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlPutPublicAccessBlockCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlPutPublicAccessBlockCommandError = function deserializeAws_restXmlPutPublicAccessBlockCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlRestoreObjectCommand = function deserializeAws_restXmlRestoreObjectCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlRestoreObjectCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined,\n RestoreOutputPath: undefined\n };\n\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n\n if (output.headers[\"x-amz-restore-output-path\"] !== undefined) {\n contents.RestoreOutputPath = output.headers[\"x-amz-restore-output-path\"];\n }\n\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlRestoreObjectCommandError = function deserializeAws_restXmlRestoreObjectCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n\n var _d;\n\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n\n switch (_b) {\n case \"ObjectAlreadyInActiveTierError\":\n return [3\n /*break*/\n , 2];\n\n case \"com.amazonaws.s3#ObjectAlreadyInActiveTierError\":\n return [3\n /*break*/\n , 2];\n }\n\n return [3\n /*break*/\n , 4];\n\n case 2:\n _c = [{}];\n return [4\n /*yield*/\n , deserializeAws_restXmlObjectAlreadyInActiveTierErrorResponse(parsedOutput, context)];\n\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([_e.sent()])), {\n name: errorCode,\n $metadata: deserializeMetadata(output)\n }]);\n return [3\n /*break*/\n , 5];\n\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n _e.label = 5;\n\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlSelectObjectContentCommand = function deserializeAws_restXmlSelectObjectContentCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlSelectObjectContentCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n Payload: undefined\n };\n data = context.eventStreamMarshaller.deserialize(output.body, function (event) {\n return __awaiter(void 0, void 0, void 0, function () {\n var eventName, eventHeaders, eventMessage, parsedEvent;\n\n var _a;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n eventName = Object.keys(event)[0];\n eventHeaders = Object.entries(event[eventName].headers).reduce(function (accummulator, curr) {\n accummulator[curr[0]] = curr[1].value;\n return accummulator;\n }, {});\n eventMessage = {\n headers: eventHeaders,\n body: event[eventName].body\n };\n parsedEvent = (_a = {}, _a[eventName] = eventMessage, _a);\n return [4\n /*yield*/\n , deserializeAws_restXmlSelectObjectContentEventStream_event(parsedEvent, context)];\n\n case 1:\n return [2\n /*return*/\n , _b.sent()];\n }\n });\n });\n });\n contents.Payload = data;\n return [2\n /*return*/\n , Promise.resolve(contents)];\n });\n });\n};\n\nvar deserializeAws_restXmlSelectObjectContentCommandError = function deserializeAws_restXmlSelectObjectContentCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlUploadPartCommand = function deserializeAws_restXmlUploadPartCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlUploadPartCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n BucketKeyEnabled: undefined,\n ETag: undefined,\n RequestCharged: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined\n };\n\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n\n if (output.headers[\"etag\"] !== undefined) {\n contents.ETag = output.headers[\"etag\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]);\n }\n\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlUploadPartCommandError = function deserializeAws_restXmlUploadPartCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlUploadPartCopyCommand = function deserializeAws_restXmlUploadPartCopyCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlUploadPartCopyCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output),\n BucketKeyEnabled: undefined,\n CopyPartResult: undefined,\n CopySourceVersionId: undefined,\n RequestCharged: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined\n };\n\n if (output.headers[\"x-amz-copy-source-version-id\"] !== undefined) {\n contents.CopySourceVersionId = output.headers[\"x-amz-copy-source-version-id\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]);\n }\n\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n data = _a.sent();\n contents.CopyPartResult = deserializeAws_restXmlCopyPartResult(data, context);\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlUploadPartCopyCommandError = function deserializeAws_restXmlUploadPartCopyCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nexport var deserializeAws_restXmlWriteGetObjectResponseCommand = function deserializeAws_restXmlWriteGetObjectResponseCommand(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2\n /*return*/\n , deserializeAws_restXmlWriteGetObjectResponseCommandError(output, context)];\n }\n\n contents = {\n $metadata: deserializeMetadata(output)\n };\n return [4\n /*yield*/\n , collectBody(output.body, context)];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , Promise.resolve(contents)];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlWriteGetObjectResponseCommandError = function deserializeAws_restXmlWriteGetObjectResponseCommandError(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), {\n name: \"\" + errorCode,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output)\n });\n }\n\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2\n /*return*/\n , Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlSelectObjectContentEventStream_event = function deserializeAws_restXmlSelectObjectContentEventStream_event(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, _b, _c, _d, _e;\n\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n if (!(output[\"Records\"] !== undefined)) return [3\n /*break*/\n , 2];\n _a = {};\n return [4\n /*yield*/\n , deserializeAws_restXmlRecordsEvent_event(output[\"Records\"], context)];\n\n case 1:\n return [2\n /*return*/\n , (_a.Records = _f.sent(), _a)];\n\n case 2:\n if (!(output[\"Stats\"] !== undefined)) return [3\n /*break*/\n , 4];\n _b = {};\n return [4\n /*yield*/\n , deserializeAws_restXmlStatsEvent_event(output[\"Stats\"], context)];\n\n case 3:\n return [2\n /*return*/\n , (_b.Stats = _f.sent(), _b)];\n\n case 4:\n if (!(output[\"Progress\"] !== undefined)) return [3\n /*break*/\n , 6];\n _c = {};\n return [4\n /*yield*/\n , deserializeAws_restXmlProgressEvent_event(output[\"Progress\"], context)];\n\n case 5:\n return [2\n /*return*/\n , (_c.Progress = _f.sent(), _c)];\n\n case 6:\n if (!(output[\"Cont\"] !== undefined)) return [3\n /*break*/\n , 8];\n _d = {};\n return [4\n /*yield*/\n , deserializeAws_restXmlContinuationEvent_event(output[\"Cont\"], context)];\n\n case 7:\n return [2\n /*return*/\n , (_d.Cont = _f.sent(), _d)];\n\n case 8:\n if (!(output[\"End\"] !== undefined)) return [3\n /*break*/\n , 10];\n _e = {};\n return [4\n /*yield*/\n , deserializeAws_restXmlEndEvent_event(output[\"End\"], context)];\n\n case 9:\n return [2\n /*return*/\n , (_e.End = _f.sent(), _e)];\n\n case 10:\n return [2\n /*return*/\n , {\n $unknown: output\n }];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlContinuationEvent_event = function deserializeAws_restXmlContinuationEvent_event(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n contents = {};\n return [2\n /*return*/\n , contents];\n });\n });\n};\n\nvar deserializeAws_restXmlEndEvent_event = function deserializeAws_restXmlEndEvent_event(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n contents = {};\n return [2\n /*return*/\n , contents];\n });\n });\n};\n\nvar deserializeAws_restXmlProgressEvent_event = function deserializeAws_restXmlProgressEvent_event(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, _a;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n contents = {};\n _a = contents;\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n _a.Details = _b.sent();\n return [2\n /*return*/\n , contents];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlRecordsEvent_event = function deserializeAws_restXmlRecordsEvent_event(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n contents = {};\n contents.Payload = output.body;\n return [2\n /*return*/\n , contents];\n });\n });\n};\n\nvar deserializeAws_restXmlStatsEvent_event = function deserializeAws_restXmlStatsEvent_event(output, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, _a;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n contents = {};\n _a = contents;\n return [4\n /*yield*/\n , parseBody(output.body, context)];\n\n case 1:\n _a.Details = _b.sent();\n return [2\n /*return*/\n , contents];\n }\n });\n });\n};\n\nvar deserializeAws_restXmlBucketAlreadyExistsResponse = function deserializeAws_restXmlBucketAlreadyExistsResponse(parsedOutput, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"BucketAlreadyExists\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput)\n };\n data = parsedOutput.body;\n return [2\n /*return*/\n , contents];\n });\n });\n};\n\nvar deserializeAws_restXmlBucketAlreadyOwnedByYouResponse = function deserializeAws_restXmlBucketAlreadyOwnedByYouResponse(parsedOutput, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"BucketAlreadyOwnedByYou\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput)\n };\n data = parsedOutput.body;\n return [2\n /*return*/\n , contents];\n });\n });\n};\n\nvar deserializeAws_restXmlInvalidObjectStateResponse = function deserializeAws_restXmlInvalidObjectStateResponse(parsedOutput, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"InvalidObjectState\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n AccessTier: undefined,\n StorageClass: undefined\n };\n data = parsedOutput.body;\n\n if (data[\"AccessTier\"] !== undefined) {\n contents.AccessTier = __expectString(data[\"AccessTier\"]);\n }\n\n if (data[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(data[\"StorageClass\"]);\n }\n\n return [2\n /*return*/\n , contents];\n });\n });\n};\n\nvar deserializeAws_restXmlNoSuchBucketResponse = function deserializeAws_restXmlNoSuchBucketResponse(parsedOutput, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"NoSuchBucket\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput)\n };\n data = parsedOutput.body;\n return [2\n /*return*/\n , contents];\n });\n });\n};\n\nvar deserializeAws_restXmlNoSuchKeyResponse = function deserializeAws_restXmlNoSuchKeyResponse(parsedOutput, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"NoSuchKey\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput)\n };\n data = parsedOutput.body;\n return [2\n /*return*/\n , contents];\n });\n });\n};\n\nvar deserializeAws_restXmlNoSuchUploadResponse = function deserializeAws_restXmlNoSuchUploadResponse(parsedOutput, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"NoSuchUpload\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput)\n };\n data = parsedOutput.body;\n return [2\n /*return*/\n , contents];\n });\n });\n};\n\nvar deserializeAws_restXmlNotFoundResponse = function deserializeAws_restXmlNotFoundResponse(parsedOutput, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"NotFound\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput)\n };\n data = parsedOutput.body;\n return [2\n /*return*/\n , contents];\n });\n });\n};\n\nvar deserializeAws_restXmlObjectAlreadyInActiveTierErrorResponse = function deserializeAws_restXmlObjectAlreadyInActiveTierErrorResponse(parsedOutput, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"ObjectAlreadyInActiveTierError\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput)\n };\n data = parsedOutput.body;\n return [2\n /*return*/\n , contents];\n });\n });\n};\n\nvar deserializeAws_restXmlObjectNotInActiveTierErrorResponse = function deserializeAws_restXmlObjectNotInActiveTierErrorResponse(parsedOutput, context) {\n return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"ObjectNotInActiveTierError\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput)\n };\n data = parsedOutput.body;\n return [2\n /*return*/\n , contents];\n });\n });\n};\n\nvar serializeAws_restXmlAbortIncompleteMultipartUpload = function serializeAws_restXmlAbortIncompleteMultipartUpload(input, context) {\n var bodyNode = new __XmlNode(\"AbortIncompleteMultipartUpload\");\n\n if (input.DaysAfterInitiation !== undefined && input.DaysAfterInitiation !== null) {\n var node = new __XmlNode(\"DaysAfterInitiation\").addChildNode(new __XmlText(String(input.DaysAfterInitiation))).withName(\"DaysAfterInitiation\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlAccelerateConfiguration = function serializeAws_restXmlAccelerateConfiguration(input, context) {\n var bodyNode = new __XmlNode(\"AccelerateConfiguration\");\n\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"BucketAccelerateStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlAccessControlPolicy = function serializeAws_restXmlAccessControlPolicy(input, context) {\n var bodyNode = new __XmlNode(\"AccessControlPolicy\");\n\n if (input.Grants !== undefined && input.Grants !== null) {\n var nodes = serializeAws_restXmlGrants(input.Grants, context);\n var containerNode_1 = new __XmlNode(\"AccessControlList\");\n nodes.map(function (node) {\n containerNode_1.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_1);\n }\n\n if (input.Owner !== undefined && input.Owner !== null) {\n var node = serializeAws_restXmlOwner(input.Owner, context).withName(\"Owner\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlAccessControlTranslation = function serializeAws_restXmlAccessControlTranslation(input, context) {\n var bodyNode = new __XmlNode(\"AccessControlTranslation\");\n\n if (input.Owner !== undefined && input.Owner !== null) {\n var node = new __XmlNode(\"OwnerOverride\").addChildNode(new __XmlText(input.Owner)).withName(\"Owner\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlAllowedHeaders = function serializeAws_restXmlAllowedHeaders(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = new __XmlNode(\"AllowedHeader\").addChildNode(new __XmlText(entry));\n return node.withName(\"member\");\n });\n};\n\nvar serializeAws_restXmlAllowedMethods = function serializeAws_restXmlAllowedMethods(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = new __XmlNode(\"AllowedMethod\").addChildNode(new __XmlText(entry));\n return node.withName(\"member\");\n });\n};\n\nvar serializeAws_restXmlAllowedOrigins = function serializeAws_restXmlAllowedOrigins(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = new __XmlNode(\"AllowedOrigin\").addChildNode(new __XmlText(entry));\n return node.withName(\"member\");\n });\n};\n\nvar serializeAws_restXmlAnalyticsAndOperator = function serializeAws_restXmlAnalyticsAndOperator(input, context) {\n var bodyNode = new __XmlNode(\"AnalyticsAndOperator\");\n\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Tags !== undefined && input.Tags !== null) {\n var nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map(function (node) {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlAnalyticsConfiguration = function serializeAws_restXmlAnalyticsConfiguration(input, context) {\n var bodyNode = new __XmlNode(\"AnalyticsConfiguration\");\n\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"AnalyticsId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlAnalyticsFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n\n if (input.StorageClassAnalysis !== undefined && input.StorageClassAnalysis !== null) {\n var node = serializeAws_restXmlStorageClassAnalysis(input.StorageClassAnalysis, context).withName(\"StorageClassAnalysis\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlAnalyticsExportDestination = function serializeAws_restXmlAnalyticsExportDestination(input, context) {\n var bodyNode = new __XmlNode(\"AnalyticsExportDestination\");\n\n if (input.S3BucketDestination !== undefined && input.S3BucketDestination !== null) {\n var node = serializeAws_restXmlAnalyticsS3BucketDestination(input.S3BucketDestination, context).withName(\"S3BucketDestination\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlAnalyticsFilter = function serializeAws_restXmlAnalyticsFilter(input, context) {\n var bodyNode = new __XmlNode(\"AnalyticsFilter\");\n AnalyticsFilter.visit(input, {\n Prefix: function Prefix(value) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(value)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: function Tag(value) {\n var node = serializeAws_restXmlTag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: function And(value) {\n var node = serializeAws_restXmlAnalyticsAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: function _(name, value) {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n }\n });\n return bodyNode;\n};\n\nvar serializeAws_restXmlAnalyticsS3BucketDestination = function serializeAws_restXmlAnalyticsS3BucketDestination(input, context) {\n var bodyNode = new __XmlNode(\"AnalyticsS3BucketDestination\");\n\n if (input.Format !== undefined && input.Format !== null) {\n var node = new __XmlNode(\"AnalyticsS3ExportFileFormat\").addChildNode(new __XmlText(input.Format)).withName(\"Format\");\n bodyNode.addChildNode(node);\n }\n\n if (input.BucketAccountId !== undefined && input.BucketAccountId !== null) {\n var node = new __XmlNode(\"AccountId\").addChildNode(new __XmlText(input.BucketAccountId)).withName(\"BucketAccountId\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Bucket !== undefined && input.Bucket !== null) {\n var node = new __XmlNode(\"BucketName\").addChildNode(new __XmlText(input.Bucket)).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlBucketLifecycleConfiguration = function serializeAws_restXmlBucketLifecycleConfiguration(input, context) {\n var bodyNode = new __XmlNode(\"BucketLifecycleConfiguration\");\n\n if (input.Rules !== undefined && input.Rules !== null) {\n var nodes = serializeAws_restXmlLifecycleRules(input.Rules, context);\n nodes.map(function (node) {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlBucketLoggingStatus = function serializeAws_restXmlBucketLoggingStatus(input, context) {\n var bodyNode = new __XmlNode(\"BucketLoggingStatus\");\n\n if (input.LoggingEnabled !== undefined && input.LoggingEnabled !== null) {\n var node = serializeAws_restXmlLoggingEnabled(input.LoggingEnabled, context).withName(\"LoggingEnabled\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlCompletedMultipartUpload = function serializeAws_restXmlCompletedMultipartUpload(input, context) {\n var bodyNode = new __XmlNode(\"CompletedMultipartUpload\");\n\n if (input.Parts !== undefined && input.Parts !== null) {\n var nodes = serializeAws_restXmlCompletedPartList(input.Parts, context);\n nodes.map(function (node) {\n node = node.withName(\"Part\");\n bodyNode.addChildNode(node);\n });\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlCompletedPart = function serializeAws_restXmlCompletedPart(input, context) {\n var bodyNode = new __XmlNode(\"CompletedPart\");\n\n if (input.ETag !== undefined && input.ETag !== null) {\n var node = new __XmlNode(\"ETag\").addChildNode(new __XmlText(input.ETag)).withName(\"ETag\");\n bodyNode.addChildNode(node);\n }\n\n if (input.PartNumber !== undefined && input.PartNumber !== null) {\n var node = new __XmlNode(\"PartNumber\").addChildNode(new __XmlText(String(input.PartNumber))).withName(\"PartNumber\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlCompletedPartList = function serializeAws_restXmlCompletedPartList(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = serializeAws_restXmlCompletedPart(entry, context);\n return node.withName(\"member\");\n });\n};\n\nvar serializeAws_restXmlCondition = function serializeAws_restXmlCondition(input, context) {\n var bodyNode = new __XmlNode(\"Condition\");\n\n if (input.HttpErrorCodeReturnedEquals !== undefined && input.HttpErrorCodeReturnedEquals !== null) {\n var node = new __XmlNode(\"HttpErrorCodeReturnedEquals\").addChildNode(new __XmlText(input.HttpErrorCodeReturnedEquals)).withName(\"HttpErrorCodeReturnedEquals\");\n bodyNode.addChildNode(node);\n }\n\n if (input.KeyPrefixEquals !== undefined && input.KeyPrefixEquals !== null) {\n var node = new __XmlNode(\"KeyPrefixEquals\").addChildNode(new __XmlText(input.KeyPrefixEquals)).withName(\"KeyPrefixEquals\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlCORSConfiguration = function serializeAws_restXmlCORSConfiguration(input, context) {\n var bodyNode = new __XmlNode(\"CORSConfiguration\");\n\n if (input.CORSRules !== undefined && input.CORSRules !== null) {\n var nodes = serializeAws_restXmlCORSRules(input.CORSRules, context);\n nodes.map(function (node) {\n node = node.withName(\"CORSRule\");\n bodyNode.addChildNode(node);\n });\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlCORSRule = function serializeAws_restXmlCORSRule(input, context) {\n var bodyNode = new __XmlNode(\"CORSRule\");\n\n if (input.ID !== undefined && input.ID !== null) {\n var node = new __XmlNode(\"ID\").addChildNode(new __XmlText(input.ID)).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n\n if (input.AllowedHeaders !== undefined && input.AllowedHeaders !== null) {\n var nodes = serializeAws_restXmlAllowedHeaders(input.AllowedHeaders, context);\n nodes.map(function (node) {\n node = node.withName(\"AllowedHeader\");\n bodyNode.addChildNode(node);\n });\n }\n\n if (input.AllowedMethods !== undefined && input.AllowedMethods !== null) {\n var nodes = serializeAws_restXmlAllowedMethods(input.AllowedMethods, context);\n nodes.map(function (node) {\n node = node.withName(\"AllowedMethod\");\n bodyNode.addChildNode(node);\n });\n }\n\n if (input.AllowedOrigins !== undefined && input.AllowedOrigins !== null) {\n var nodes = serializeAws_restXmlAllowedOrigins(input.AllowedOrigins, context);\n nodes.map(function (node) {\n node = node.withName(\"AllowedOrigin\");\n bodyNode.addChildNode(node);\n });\n }\n\n if (input.ExposeHeaders !== undefined && input.ExposeHeaders !== null) {\n var nodes = serializeAws_restXmlExposeHeaders(input.ExposeHeaders, context);\n nodes.map(function (node) {\n node = node.withName(\"ExposeHeader\");\n bodyNode.addChildNode(node);\n });\n }\n\n if (input.MaxAgeSeconds !== undefined && input.MaxAgeSeconds !== null) {\n var node = new __XmlNode(\"MaxAgeSeconds\").addChildNode(new __XmlText(String(input.MaxAgeSeconds))).withName(\"MaxAgeSeconds\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlCORSRules = function serializeAws_restXmlCORSRules(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = serializeAws_restXmlCORSRule(entry, context);\n return node.withName(\"member\");\n });\n};\n\nvar serializeAws_restXmlCreateBucketConfiguration = function serializeAws_restXmlCreateBucketConfiguration(input, context) {\n var bodyNode = new __XmlNode(\"CreateBucketConfiguration\");\n\n if (input.LocationConstraint !== undefined && input.LocationConstraint !== null) {\n var node = new __XmlNode(\"BucketLocationConstraint\").addChildNode(new __XmlText(input.LocationConstraint)).withName(\"LocationConstraint\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlCSVInput = function serializeAws_restXmlCSVInput(input, context) {\n var bodyNode = new __XmlNode(\"CSVInput\");\n\n if (input.FileHeaderInfo !== undefined && input.FileHeaderInfo !== null) {\n var node = new __XmlNode(\"FileHeaderInfo\").addChildNode(new __XmlText(input.FileHeaderInfo)).withName(\"FileHeaderInfo\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Comments !== undefined && input.Comments !== null) {\n var node = new __XmlNode(\"Comments\").addChildNode(new __XmlText(input.Comments)).withName(\"Comments\");\n bodyNode.addChildNode(node);\n }\n\n if (input.QuoteEscapeCharacter !== undefined && input.QuoteEscapeCharacter !== null) {\n var node = new __XmlNode(\"QuoteEscapeCharacter\").addChildNode(new __XmlText(input.QuoteEscapeCharacter)).withName(\"QuoteEscapeCharacter\");\n bodyNode.addChildNode(node);\n }\n\n if (input.RecordDelimiter !== undefined && input.RecordDelimiter !== null) {\n var node = new __XmlNode(\"RecordDelimiter\").addChildNode(new __XmlText(input.RecordDelimiter)).withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n\n if (input.FieldDelimiter !== undefined && input.FieldDelimiter !== null) {\n var node = new __XmlNode(\"FieldDelimiter\").addChildNode(new __XmlText(input.FieldDelimiter)).withName(\"FieldDelimiter\");\n bodyNode.addChildNode(node);\n }\n\n if (input.QuoteCharacter !== undefined && input.QuoteCharacter !== null) {\n var node = new __XmlNode(\"QuoteCharacter\").addChildNode(new __XmlText(input.QuoteCharacter)).withName(\"QuoteCharacter\");\n bodyNode.addChildNode(node);\n }\n\n if (input.AllowQuotedRecordDelimiter !== undefined && input.AllowQuotedRecordDelimiter !== null) {\n var node = new __XmlNode(\"AllowQuotedRecordDelimiter\").addChildNode(new __XmlText(String(input.AllowQuotedRecordDelimiter))).withName(\"AllowQuotedRecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlCSVOutput = function serializeAws_restXmlCSVOutput(input, context) {\n var bodyNode = new __XmlNode(\"CSVOutput\");\n\n if (input.QuoteFields !== undefined && input.QuoteFields !== null) {\n var node = new __XmlNode(\"QuoteFields\").addChildNode(new __XmlText(input.QuoteFields)).withName(\"QuoteFields\");\n bodyNode.addChildNode(node);\n }\n\n if (input.QuoteEscapeCharacter !== undefined && input.QuoteEscapeCharacter !== null) {\n var node = new __XmlNode(\"QuoteEscapeCharacter\").addChildNode(new __XmlText(input.QuoteEscapeCharacter)).withName(\"QuoteEscapeCharacter\");\n bodyNode.addChildNode(node);\n }\n\n if (input.RecordDelimiter !== undefined && input.RecordDelimiter !== null) {\n var node = new __XmlNode(\"RecordDelimiter\").addChildNode(new __XmlText(input.RecordDelimiter)).withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n\n if (input.FieldDelimiter !== undefined && input.FieldDelimiter !== null) {\n var node = new __XmlNode(\"FieldDelimiter\").addChildNode(new __XmlText(input.FieldDelimiter)).withName(\"FieldDelimiter\");\n bodyNode.addChildNode(node);\n }\n\n if (input.QuoteCharacter !== undefined && input.QuoteCharacter !== null) {\n var node = new __XmlNode(\"QuoteCharacter\").addChildNode(new __XmlText(input.QuoteCharacter)).withName(\"QuoteCharacter\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlDefaultRetention = function serializeAws_restXmlDefaultRetention(input, context) {\n var bodyNode = new __XmlNode(\"DefaultRetention\");\n\n if (input.Mode !== undefined && input.Mode !== null) {\n var node = new __XmlNode(\"ObjectLockRetentionMode\").addChildNode(new __XmlText(input.Mode)).withName(\"Mode\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Days !== undefined && input.Days !== null) {\n var node = new __XmlNode(\"Days\").addChildNode(new __XmlText(String(input.Days))).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Years !== undefined && input.Years !== null) {\n var node = new __XmlNode(\"Years\").addChildNode(new __XmlText(String(input.Years))).withName(\"Years\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlDelete = function serializeAws_restXmlDelete(input, context) {\n var bodyNode = new __XmlNode(\"Delete\");\n\n if (input.Objects !== undefined && input.Objects !== null) {\n var nodes = serializeAws_restXmlObjectIdentifierList(input.Objects, context);\n nodes.map(function (node) {\n node = node.withName(\"Object\");\n bodyNode.addChildNode(node);\n });\n }\n\n if (input.Quiet !== undefined && input.Quiet !== null) {\n var node = new __XmlNode(\"Quiet\").addChildNode(new __XmlText(String(input.Quiet))).withName(\"Quiet\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlDeleteMarkerReplication = function serializeAws_restXmlDeleteMarkerReplication(input, context) {\n var bodyNode = new __XmlNode(\"DeleteMarkerReplication\");\n\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"DeleteMarkerReplicationStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlDestination = function serializeAws_restXmlDestination(input, context) {\n var bodyNode = new __XmlNode(\"Destination\");\n\n if (input.Bucket !== undefined && input.Bucket !== null) {\n var node = new __XmlNode(\"BucketName\").addChildNode(new __XmlText(input.Bucket)).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Account !== undefined && input.Account !== null) {\n var node = new __XmlNode(\"AccountId\").addChildNode(new __XmlText(input.Account)).withName(\"Account\");\n bodyNode.addChildNode(node);\n }\n\n if (input.StorageClass !== undefined && input.StorageClass !== null) {\n var node = new __XmlNode(\"StorageClass\").addChildNode(new __XmlText(input.StorageClass)).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n\n if (input.AccessControlTranslation !== undefined && input.AccessControlTranslation !== null) {\n var node = serializeAws_restXmlAccessControlTranslation(input.AccessControlTranslation, context).withName(\"AccessControlTranslation\");\n bodyNode.addChildNode(node);\n }\n\n if (input.EncryptionConfiguration !== undefined && input.EncryptionConfiguration !== null) {\n var node = serializeAws_restXmlEncryptionConfiguration(input.EncryptionConfiguration, context).withName(\"EncryptionConfiguration\");\n bodyNode.addChildNode(node);\n }\n\n if (input.ReplicationTime !== undefined && input.ReplicationTime !== null) {\n var node = serializeAws_restXmlReplicationTime(input.ReplicationTime, context).withName(\"ReplicationTime\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Metrics !== undefined && input.Metrics !== null) {\n var node = serializeAws_restXmlMetrics(input.Metrics, context).withName(\"Metrics\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlEncryption = function serializeAws_restXmlEncryption(input, context) {\n var bodyNode = new __XmlNode(\"Encryption\");\n\n if (input.EncryptionType !== undefined && input.EncryptionType !== null) {\n var node = new __XmlNode(\"ServerSideEncryption\").addChildNode(new __XmlText(input.EncryptionType)).withName(\"EncryptionType\");\n bodyNode.addChildNode(node);\n }\n\n if (input.KMSKeyId !== undefined && input.KMSKeyId !== null) {\n var node = new __XmlNode(\"SSEKMSKeyId\").addChildNode(new __XmlText(input.KMSKeyId)).withName(\"KMSKeyId\");\n bodyNode.addChildNode(node);\n }\n\n if (input.KMSContext !== undefined && input.KMSContext !== null) {\n var node = new __XmlNode(\"KMSContext\").addChildNode(new __XmlText(input.KMSContext)).withName(\"KMSContext\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlEncryptionConfiguration = function serializeAws_restXmlEncryptionConfiguration(input, context) {\n var bodyNode = new __XmlNode(\"EncryptionConfiguration\");\n\n if (input.ReplicaKmsKeyID !== undefined && input.ReplicaKmsKeyID !== null) {\n var node = new __XmlNode(\"ReplicaKmsKeyID\").addChildNode(new __XmlText(input.ReplicaKmsKeyID)).withName(\"ReplicaKmsKeyID\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlErrorDocument = function serializeAws_restXmlErrorDocument(input, context) {\n var bodyNode = new __XmlNode(\"ErrorDocument\");\n\n if (input.Key !== undefined && input.Key !== null) {\n var node = new __XmlNode(\"ObjectKey\").addChildNode(new __XmlText(input.Key)).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlEventList = function serializeAws_restXmlEventList(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = new __XmlNode(\"Event\").addChildNode(new __XmlText(entry));\n return node.withName(\"member\");\n });\n};\n\nvar serializeAws_restXmlExistingObjectReplication = function serializeAws_restXmlExistingObjectReplication(input, context) {\n var bodyNode = new __XmlNode(\"ExistingObjectReplication\");\n\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ExistingObjectReplicationStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlExposeHeaders = function serializeAws_restXmlExposeHeaders(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = new __XmlNode(\"ExposeHeader\").addChildNode(new __XmlText(entry));\n return node.withName(\"member\");\n });\n};\n\nvar serializeAws_restXmlFilterRule = function serializeAws_restXmlFilterRule(input, context) {\n var bodyNode = new __XmlNode(\"FilterRule\");\n\n if (input.Name !== undefined && input.Name !== null) {\n var node = new __XmlNode(\"FilterRuleName\").addChildNode(new __XmlText(input.Name)).withName(\"Name\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Value !== undefined && input.Value !== null) {\n var node = new __XmlNode(\"FilterRuleValue\").addChildNode(new __XmlText(input.Value)).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlFilterRuleList = function serializeAws_restXmlFilterRuleList(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = serializeAws_restXmlFilterRule(entry, context);\n return node.withName(\"member\");\n });\n};\n\nvar serializeAws_restXmlGlacierJobParameters = function serializeAws_restXmlGlacierJobParameters(input, context) {\n var bodyNode = new __XmlNode(\"GlacierJobParameters\");\n\n if (input.Tier !== undefined && input.Tier !== null) {\n var node = new __XmlNode(\"Tier\").addChildNode(new __XmlText(input.Tier)).withName(\"Tier\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlGrant = function serializeAws_restXmlGrant(input, context) {\n var bodyNode = new __XmlNode(\"Grant\");\n\n if (input.Grantee !== undefined && input.Grantee !== null) {\n var node = serializeAws_restXmlGrantee(input.Grantee, context).withName(\"Grantee\");\n node.addAttribute(\"xmlns:xsi\", \"http://www.w3.org/2001/XMLSchema-instance\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Permission !== undefined && input.Permission !== null) {\n var node = new __XmlNode(\"Permission\").addChildNode(new __XmlText(input.Permission)).withName(\"Permission\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlGrantee = function serializeAws_restXmlGrantee(input, context) {\n var bodyNode = new __XmlNode(\"Grantee\");\n\n if (input.DisplayName !== undefined && input.DisplayName !== null) {\n var node = new __XmlNode(\"DisplayName\").addChildNode(new __XmlText(input.DisplayName)).withName(\"DisplayName\");\n bodyNode.addChildNode(node);\n }\n\n if (input.EmailAddress !== undefined && input.EmailAddress !== null) {\n var node = new __XmlNode(\"EmailAddress\").addChildNode(new __XmlText(input.EmailAddress)).withName(\"EmailAddress\");\n bodyNode.addChildNode(node);\n }\n\n if (input.ID !== undefined && input.ID !== null) {\n var node = new __XmlNode(\"ID\").addChildNode(new __XmlText(input.ID)).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n\n if (input.URI !== undefined && input.URI !== null) {\n var node = new __XmlNode(\"URI\").addChildNode(new __XmlText(input.URI)).withName(\"URI\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Type !== undefined && input.Type !== null) {\n bodyNode.addAttribute(\"xsi:type\", input.Type);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlGrants = function serializeAws_restXmlGrants(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = serializeAws_restXmlGrant(entry, context);\n return node.withName(\"Grant\");\n });\n};\n\nvar serializeAws_restXmlIndexDocument = function serializeAws_restXmlIndexDocument(input, context) {\n var bodyNode = new __XmlNode(\"IndexDocument\");\n\n if (input.Suffix !== undefined && input.Suffix !== null) {\n var node = new __XmlNode(\"Suffix\").addChildNode(new __XmlText(input.Suffix)).withName(\"Suffix\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlInputSerialization = function serializeAws_restXmlInputSerialization(input, context) {\n var bodyNode = new __XmlNode(\"InputSerialization\");\n\n if (input.CSV !== undefined && input.CSV !== null) {\n var node = serializeAws_restXmlCSVInput(input.CSV, context).withName(\"CSV\");\n bodyNode.addChildNode(node);\n }\n\n if (input.CompressionType !== undefined && input.CompressionType !== null) {\n var node = new __XmlNode(\"CompressionType\").addChildNode(new __XmlText(input.CompressionType)).withName(\"CompressionType\");\n bodyNode.addChildNode(node);\n }\n\n if (input.JSON !== undefined && input.JSON !== null) {\n var node = serializeAws_restXmlJSONInput(input.JSON, context).withName(\"JSON\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Parquet !== undefined && input.Parquet !== null) {\n var node = serializeAws_restXmlParquetInput(input.Parquet, context).withName(\"Parquet\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlIntelligentTieringAndOperator = function serializeAws_restXmlIntelligentTieringAndOperator(input, context) {\n var bodyNode = new __XmlNode(\"IntelligentTieringAndOperator\");\n\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Tags !== undefined && input.Tags !== null) {\n var nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map(function (node) {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlIntelligentTieringConfiguration = function serializeAws_restXmlIntelligentTieringConfiguration(input, context) {\n var bodyNode = new __XmlNode(\"IntelligentTieringConfiguration\");\n\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"IntelligentTieringId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlIntelligentTieringFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"IntelligentTieringStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Tierings !== undefined && input.Tierings !== null) {\n var nodes = serializeAws_restXmlTieringList(input.Tierings, context);\n nodes.map(function (node) {\n node = node.withName(\"Tiering\");\n bodyNode.addChildNode(node);\n });\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlIntelligentTieringFilter = function serializeAws_restXmlIntelligentTieringFilter(input, context) {\n var bodyNode = new __XmlNode(\"IntelligentTieringFilter\");\n\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Tag !== undefined && input.Tag !== null) {\n var node = serializeAws_restXmlTag(input.Tag, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n }\n\n if (input.And !== undefined && input.And !== null) {\n var node = serializeAws_restXmlIntelligentTieringAndOperator(input.And, context).withName(\"And\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlInventoryConfiguration = function serializeAws_restXmlInventoryConfiguration(input, context) {\n var bodyNode = new __XmlNode(\"InventoryConfiguration\");\n\n if (input.Destination !== undefined && input.Destination !== null) {\n var node = serializeAws_restXmlInventoryDestination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n\n if (input.IsEnabled !== undefined && input.IsEnabled !== null) {\n var node = new __XmlNode(\"IsEnabled\").addChildNode(new __XmlText(String(input.IsEnabled))).withName(\"IsEnabled\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlInventoryFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"InventoryId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n\n if (input.IncludedObjectVersions !== undefined && input.IncludedObjectVersions !== null) {\n var node = new __XmlNode(\"InventoryIncludedObjectVersions\").addChildNode(new __XmlText(input.IncludedObjectVersions)).withName(\"IncludedObjectVersions\");\n bodyNode.addChildNode(node);\n }\n\n if (input.OptionalFields !== undefined && input.OptionalFields !== null) {\n var nodes = serializeAws_restXmlInventoryOptionalFields(input.OptionalFields, context);\n var containerNode_2 = new __XmlNode(\"OptionalFields\");\n nodes.map(function (node) {\n containerNode_2.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_2);\n }\n\n if (input.Schedule !== undefined && input.Schedule !== null) {\n var node = serializeAws_restXmlInventorySchedule(input.Schedule, context).withName(\"Schedule\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlInventoryDestination = function serializeAws_restXmlInventoryDestination(input, context) {\n var bodyNode = new __XmlNode(\"InventoryDestination\");\n\n if (input.S3BucketDestination !== undefined && input.S3BucketDestination !== null) {\n var node = serializeAws_restXmlInventoryS3BucketDestination(input.S3BucketDestination, context).withName(\"S3BucketDestination\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlInventoryEncryption = function serializeAws_restXmlInventoryEncryption(input, context) {\n var bodyNode = new __XmlNode(\"InventoryEncryption\");\n\n if (input.SSES3 !== undefined && input.SSES3 !== null) {\n var node = serializeAws_restXmlSSES3(input.SSES3, context).withName(\"SSE-S3\");\n bodyNode.addChildNode(node);\n }\n\n if (input.SSEKMS !== undefined && input.SSEKMS !== null) {\n var node = serializeAws_restXmlSSEKMS(input.SSEKMS, context).withName(\"SSE-KMS\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlInventoryFilter = function serializeAws_restXmlInventoryFilter(input, context) {\n var bodyNode = new __XmlNode(\"InventoryFilter\");\n\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlInventoryOptionalFields = function serializeAws_restXmlInventoryOptionalFields(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = new __XmlNode(\"InventoryOptionalField\").addChildNode(new __XmlText(entry));\n return node.withName(\"Field\");\n });\n};\n\nvar serializeAws_restXmlInventoryS3BucketDestination = function serializeAws_restXmlInventoryS3BucketDestination(input, context) {\n var bodyNode = new __XmlNode(\"InventoryS3BucketDestination\");\n\n if (input.AccountId !== undefined && input.AccountId !== null) {\n var node = new __XmlNode(\"AccountId\").addChildNode(new __XmlText(input.AccountId)).withName(\"AccountId\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Bucket !== undefined && input.Bucket !== null) {\n var node = new __XmlNode(\"BucketName\").addChildNode(new __XmlText(input.Bucket)).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Format !== undefined && input.Format !== null) {\n var node = new __XmlNode(\"InventoryFormat\").addChildNode(new __XmlText(input.Format)).withName(\"Format\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Encryption !== undefined && input.Encryption !== null) {\n var node = serializeAws_restXmlInventoryEncryption(input.Encryption, context).withName(\"Encryption\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlInventorySchedule = function serializeAws_restXmlInventorySchedule(input, context) {\n var bodyNode = new __XmlNode(\"InventorySchedule\");\n\n if (input.Frequency !== undefined && input.Frequency !== null) {\n var node = new __XmlNode(\"InventoryFrequency\").addChildNode(new __XmlText(input.Frequency)).withName(\"Frequency\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlJSONInput = function serializeAws_restXmlJSONInput(input, context) {\n var bodyNode = new __XmlNode(\"JSONInput\");\n\n if (input.Type !== undefined && input.Type !== null) {\n var node = new __XmlNode(\"JSONType\").addChildNode(new __XmlText(input.Type)).withName(\"Type\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlJSONOutput = function serializeAws_restXmlJSONOutput(input, context) {\n var bodyNode = new __XmlNode(\"JSONOutput\");\n\n if (input.RecordDelimiter !== undefined && input.RecordDelimiter !== null) {\n var node = new __XmlNode(\"RecordDelimiter\").addChildNode(new __XmlText(input.RecordDelimiter)).withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlLambdaFunctionConfiguration = function serializeAws_restXmlLambdaFunctionConfiguration(input, context) {\n var bodyNode = new __XmlNode(\"LambdaFunctionConfiguration\");\n\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"NotificationId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n\n if (input.LambdaFunctionArn !== undefined && input.LambdaFunctionArn !== null) {\n var node = new __XmlNode(\"LambdaFunctionArn\").addChildNode(new __XmlText(input.LambdaFunctionArn)).withName(\"CloudFunction\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Events !== undefined && input.Events !== null) {\n var nodes = serializeAws_restXmlEventList(input.Events, context);\n nodes.map(function (node) {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlNotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlLambdaFunctionConfigurationList = function serializeAws_restXmlLambdaFunctionConfigurationList(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = serializeAws_restXmlLambdaFunctionConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\n\nvar serializeAws_restXmlLifecycleExpiration = function serializeAws_restXmlLifecycleExpiration(input, context) {\n var bodyNode = new __XmlNode(\"LifecycleExpiration\");\n\n if (input.Date !== undefined && input.Date !== null) {\n var node = new __XmlNode(\"Date\").addChildNode(new __XmlText(input.Date.toISOString().split(\".\")[0] + \"Z\")).withName(\"Date\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Days !== undefined && input.Days !== null) {\n var node = new __XmlNode(\"Days\").addChildNode(new __XmlText(String(input.Days))).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n\n if (input.ExpiredObjectDeleteMarker !== undefined && input.ExpiredObjectDeleteMarker !== null) {\n var node = new __XmlNode(\"ExpiredObjectDeleteMarker\").addChildNode(new __XmlText(String(input.ExpiredObjectDeleteMarker))).withName(\"ExpiredObjectDeleteMarker\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlLifecycleRule = function serializeAws_restXmlLifecycleRule(input, context) {\n var bodyNode = new __XmlNode(\"LifecycleRule\");\n\n if (input.Expiration !== undefined && input.Expiration !== null) {\n var node = serializeAws_restXmlLifecycleExpiration(input.Expiration, context).withName(\"Expiration\");\n bodyNode.addChildNode(node);\n }\n\n if (input.ID !== undefined && input.ID !== null) {\n var node = new __XmlNode(\"ID\").addChildNode(new __XmlText(input.ID)).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlLifecycleRuleFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ExpirationStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Transitions !== undefined && input.Transitions !== null) {\n var nodes = serializeAws_restXmlTransitionList(input.Transitions, context);\n nodes.map(function (node) {\n node = node.withName(\"Transition\");\n bodyNode.addChildNode(node);\n });\n }\n\n if (input.NoncurrentVersionTransitions !== undefined && input.NoncurrentVersionTransitions !== null) {\n var nodes = serializeAws_restXmlNoncurrentVersionTransitionList(input.NoncurrentVersionTransitions, context);\n nodes.map(function (node) {\n node = node.withName(\"NoncurrentVersionTransition\");\n bodyNode.addChildNode(node);\n });\n }\n\n if (input.NoncurrentVersionExpiration !== undefined && input.NoncurrentVersionExpiration !== null) {\n var node = serializeAws_restXmlNoncurrentVersionExpiration(input.NoncurrentVersionExpiration, context).withName(\"NoncurrentVersionExpiration\");\n bodyNode.addChildNode(node);\n }\n\n if (input.AbortIncompleteMultipartUpload !== undefined && input.AbortIncompleteMultipartUpload !== null) {\n var node = serializeAws_restXmlAbortIncompleteMultipartUpload(input.AbortIncompleteMultipartUpload, context).withName(\"AbortIncompleteMultipartUpload\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlLifecycleRuleAndOperator = function serializeAws_restXmlLifecycleRuleAndOperator(input, context) {\n var bodyNode = new __XmlNode(\"LifecycleRuleAndOperator\");\n\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Tags !== undefined && input.Tags !== null) {\n var nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map(function (node) {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlLifecycleRuleFilter = function serializeAws_restXmlLifecycleRuleFilter(input, context) {\n var bodyNode = new __XmlNode(\"LifecycleRuleFilter\");\n LifecycleRuleFilter.visit(input, {\n Prefix: function Prefix(value) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(value)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: function Tag(value) {\n var node = serializeAws_restXmlTag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: function And(value) {\n var node = serializeAws_restXmlLifecycleRuleAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: function _(name, value) {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n }\n });\n return bodyNode;\n};\n\nvar serializeAws_restXmlLifecycleRules = function serializeAws_restXmlLifecycleRules(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = serializeAws_restXmlLifecycleRule(entry, context);\n return node.withName(\"member\");\n });\n};\n\nvar serializeAws_restXmlLoggingEnabled = function serializeAws_restXmlLoggingEnabled(input, context) {\n var bodyNode = new __XmlNode(\"LoggingEnabled\");\n\n if (input.TargetBucket !== undefined && input.TargetBucket !== null) {\n var node = new __XmlNode(\"TargetBucket\").addChildNode(new __XmlText(input.TargetBucket)).withName(\"TargetBucket\");\n bodyNode.addChildNode(node);\n }\n\n if (input.TargetGrants !== undefined && input.TargetGrants !== null) {\n var nodes = serializeAws_restXmlTargetGrants(input.TargetGrants, context);\n var containerNode_3 = new __XmlNode(\"TargetGrants\");\n nodes.map(function (node) {\n containerNode_3.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_3);\n }\n\n if (input.TargetPrefix !== undefined && input.TargetPrefix !== null) {\n var node = new __XmlNode(\"TargetPrefix\").addChildNode(new __XmlText(input.TargetPrefix)).withName(\"TargetPrefix\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlMetadataEntry = function serializeAws_restXmlMetadataEntry(input, context) {\n var bodyNode = new __XmlNode(\"MetadataEntry\");\n\n if (input.Name !== undefined && input.Name !== null) {\n var node = new __XmlNode(\"MetadataKey\").addChildNode(new __XmlText(input.Name)).withName(\"Name\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Value !== undefined && input.Value !== null) {\n var node = new __XmlNode(\"MetadataValue\").addChildNode(new __XmlText(input.Value)).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlMetrics = function serializeAws_restXmlMetrics(input, context) {\n var bodyNode = new __XmlNode(\"Metrics\");\n\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"MetricsStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n\n if (input.EventThreshold !== undefined && input.EventThreshold !== null) {\n var node = serializeAws_restXmlReplicationTimeValue(input.EventThreshold, context).withName(\"EventThreshold\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlMetricsAndOperator = function serializeAws_restXmlMetricsAndOperator(input, context) {\n var bodyNode = new __XmlNode(\"MetricsAndOperator\");\n\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Tags !== undefined && input.Tags !== null) {\n var nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map(function (node) {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlMetricsConfiguration = function serializeAws_restXmlMetricsConfiguration(input, context) {\n var bodyNode = new __XmlNode(\"MetricsConfiguration\");\n\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"MetricsId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlMetricsFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlMetricsFilter = function serializeAws_restXmlMetricsFilter(input, context) {\n var bodyNode = new __XmlNode(\"MetricsFilter\");\n MetricsFilter.visit(input, {\n Prefix: function Prefix(value) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(value)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: function Tag(value) {\n var node = serializeAws_restXmlTag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: function And(value) {\n var node = serializeAws_restXmlMetricsAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: function _(name, value) {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n }\n });\n return bodyNode;\n};\n\nvar serializeAws_restXmlNoncurrentVersionExpiration = function serializeAws_restXmlNoncurrentVersionExpiration(input, context) {\n var bodyNode = new __XmlNode(\"NoncurrentVersionExpiration\");\n\n if (input.NoncurrentDays !== undefined && input.NoncurrentDays !== null) {\n var node = new __XmlNode(\"Days\").addChildNode(new __XmlText(String(input.NoncurrentDays))).withName(\"NoncurrentDays\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlNoncurrentVersionTransition = function serializeAws_restXmlNoncurrentVersionTransition(input, context) {\n var bodyNode = new __XmlNode(\"NoncurrentVersionTransition\");\n\n if (input.NoncurrentDays !== undefined && input.NoncurrentDays !== null) {\n var node = new __XmlNode(\"Days\").addChildNode(new __XmlText(String(input.NoncurrentDays))).withName(\"NoncurrentDays\");\n bodyNode.addChildNode(node);\n }\n\n if (input.StorageClass !== undefined && input.StorageClass !== null) {\n var node = new __XmlNode(\"TransitionStorageClass\").addChildNode(new __XmlText(input.StorageClass)).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlNoncurrentVersionTransitionList = function serializeAws_restXmlNoncurrentVersionTransitionList(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = serializeAws_restXmlNoncurrentVersionTransition(entry, context);\n return node.withName(\"member\");\n });\n};\n\nvar serializeAws_restXmlNotificationConfiguration = function serializeAws_restXmlNotificationConfiguration(input, context) {\n var bodyNode = new __XmlNode(\"NotificationConfiguration\");\n\n if (input.TopicConfigurations !== undefined && input.TopicConfigurations !== null) {\n var nodes = serializeAws_restXmlTopicConfigurationList(input.TopicConfigurations, context);\n nodes.map(function (node) {\n node = node.withName(\"TopicConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n\n if (input.QueueConfigurations !== undefined && input.QueueConfigurations !== null) {\n var nodes = serializeAws_restXmlQueueConfigurationList(input.QueueConfigurations, context);\n nodes.map(function (node) {\n node = node.withName(\"QueueConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n\n if (input.LambdaFunctionConfigurations !== undefined && input.LambdaFunctionConfigurations !== null) {\n var nodes = serializeAws_restXmlLambdaFunctionConfigurationList(input.LambdaFunctionConfigurations, context);\n nodes.map(function (node) {\n node = node.withName(\"CloudFunctionConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlNotificationConfigurationFilter = function serializeAws_restXmlNotificationConfigurationFilter(input, context) {\n var bodyNode = new __XmlNode(\"NotificationConfigurationFilter\");\n\n if (input.Key !== undefined && input.Key !== null) {\n var node = serializeAws_restXmlS3KeyFilter(input.Key, context).withName(\"S3Key\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlObjectIdentifier = function serializeAws_restXmlObjectIdentifier(input, context) {\n var bodyNode = new __XmlNode(\"ObjectIdentifier\");\n\n if (input.Key !== undefined && input.Key !== null) {\n var node = new __XmlNode(\"ObjectKey\").addChildNode(new __XmlText(input.Key)).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n\n if (input.VersionId !== undefined && input.VersionId !== null) {\n var node = new __XmlNode(\"ObjectVersionId\").addChildNode(new __XmlText(input.VersionId)).withName(\"VersionId\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlObjectIdentifierList = function serializeAws_restXmlObjectIdentifierList(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = serializeAws_restXmlObjectIdentifier(entry, context);\n return node.withName(\"member\");\n });\n};\n\nvar serializeAws_restXmlObjectLockConfiguration = function serializeAws_restXmlObjectLockConfiguration(input, context) {\n var bodyNode = new __XmlNode(\"ObjectLockConfiguration\");\n\n if (input.ObjectLockEnabled !== undefined && input.ObjectLockEnabled !== null) {\n var node = new __XmlNode(\"ObjectLockEnabled\").addChildNode(new __XmlText(input.ObjectLockEnabled)).withName(\"ObjectLockEnabled\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Rule !== undefined && input.Rule !== null) {\n var node = serializeAws_restXmlObjectLockRule(input.Rule, context).withName(\"Rule\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlObjectLockLegalHold = function serializeAws_restXmlObjectLockLegalHold(input, context) {\n var bodyNode = new __XmlNode(\"ObjectLockLegalHold\");\n\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ObjectLockLegalHoldStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlObjectLockRetention = function serializeAws_restXmlObjectLockRetention(input, context) {\n var bodyNode = new __XmlNode(\"ObjectLockRetention\");\n\n if (input.Mode !== undefined && input.Mode !== null) {\n var node = new __XmlNode(\"ObjectLockRetentionMode\").addChildNode(new __XmlText(input.Mode)).withName(\"Mode\");\n bodyNode.addChildNode(node);\n }\n\n if (input.RetainUntilDate !== undefined && input.RetainUntilDate !== null) {\n var node = new __XmlNode(\"Date\").addChildNode(new __XmlText(input.RetainUntilDate.toISOString().split(\".\")[0] + \"Z\")).withName(\"RetainUntilDate\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlObjectLockRule = function serializeAws_restXmlObjectLockRule(input, context) {\n var bodyNode = new __XmlNode(\"ObjectLockRule\");\n\n if (input.DefaultRetention !== undefined && input.DefaultRetention !== null) {\n var node = serializeAws_restXmlDefaultRetention(input.DefaultRetention, context).withName(\"DefaultRetention\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlOutputLocation = function serializeAws_restXmlOutputLocation(input, context) {\n var bodyNode = new __XmlNode(\"OutputLocation\");\n\n if (input.S3 !== undefined && input.S3 !== null) {\n var node = serializeAws_restXmlS3Location(input.S3, context).withName(\"S3\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlOutputSerialization = function serializeAws_restXmlOutputSerialization(input, context) {\n var bodyNode = new __XmlNode(\"OutputSerialization\");\n\n if (input.CSV !== undefined && input.CSV !== null) {\n var node = serializeAws_restXmlCSVOutput(input.CSV, context).withName(\"CSV\");\n bodyNode.addChildNode(node);\n }\n\n if (input.JSON !== undefined && input.JSON !== null) {\n var node = serializeAws_restXmlJSONOutput(input.JSON, context).withName(\"JSON\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlOwner = function serializeAws_restXmlOwner(input, context) {\n var bodyNode = new __XmlNode(\"Owner\");\n\n if (input.DisplayName !== undefined && input.DisplayName !== null) {\n var node = new __XmlNode(\"DisplayName\").addChildNode(new __XmlText(input.DisplayName)).withName(\"DisplayName\");\n bodyNode.addChildNode(node);\n }\n\n if (input.ID !== undefined && input.ID !== null) {\n var node = new __XmlNode(\"ID\").addChildNode(new __XmlText(input.ID)).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlOwnershipControls = function serializeAws_restXmlOwnershipControls(input, context) {\n var bodyNode = new __XmlNode(\"OwnershipControls\");\n\n if (input.Rules !== undefined && input.Rules !== null) {\n var nodes = serializeAws_restXmlOwnershipControlsRules(input.Rules, context);\n nodes.map(function (node) {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlOwnershipControlsRule = function serializeAws_restXmlOwnershipControlsRule(input, context) {\n var bodyNode = new __XmlNode(\"OwnershipControlsRule\");\n\n if (input.ObjectOwnership !== undefined && input.ObjectOwnership !== null) {\n var node = new __XmlNode(\"ObjectOwnership\").addChildNode(new __XmlText(input.ObjectOwnership)).withName(\"ObjectOwnership\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlOwnershipControlsRules = function serializeAws_restXmlOwnershipControlsRules(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = serializeAws_restXmlOwnershipControlsRule(entry, context);\n return node.withName(\"member\");\n });\n};\n\nvar serializeAws_restXmlParquetInput = function serializeAws_restXmlParquetInput(input, context) {\n var bodyNode = new __XmlNode(\"ParquetInput\");\n return bodyNode;\n};\n\nvar serializeAws_restXmlPublicAccessBlockConfiguration = function serializeAws_restXmlPublicAccessBlockConfiguration(input, context) {\n var bodyNode = new __XmlNode(\"PublicAccessBlockConfiguration\");\n\n if (input.BlockPublicAcls !== undefined && input.BlockPublicAcls !== null) {\n var node = new __XmlNode(\"Setting\").addChildNode(new __XmlText(String(input.BlockPublicAcls))).withName(\"BlockPublicAcls\");\n bodyNode.addChildNode(node);\n }\n\n if (input.IgnorePublicAcls !== undefined && input.IgnorePublicAcls !== null) {\n var node = new __XmlNode(\"Setting\").addChildNode(new __XmlText(String(input.IgnorePublicAcls))).withName(\"IgnorePublicAcls\");\n bodyNode.addChildNode(node);\n }\n\n if (input.BlockPublicPolicy !== undefined && input.BlockPublicPolicy !== null) {\n var node = new __XmlNode(\"Setting\").addChildNode(new __XmlText(String(input.BlockPublicPolicy))).withName(\"BlockPublicPolicy\");\n bodyNode.addChildNode(node);\n }\n\n if (input.RestrictPublicBuckets !== undefined && input.RestrictPublicBuckets !== null) {\n var node = new __XmlNode(\"Setting\").addChildNode(new __XmlText(String(input.RestrictPublicBuckets))).withName(\"RestrictPublicBuckets\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlQueueConfiguration = function serializeAws_restXmlQueueConfiguration(input, context) {\n var bodyNode = new __XmlNode(\"QueueConfiguration\");\n\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"NotificationId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n\n if (input.QueueArn !== undefined && input.QueueArn !== null) {\n var node = new __XmlNode(\"QueueArn\").addChildNode(new __XmlText(input.QueueArn)).withName(\"Queue\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Events !== undefined && input.Events !== null) {\n var nodes = serializeAws_restXmlEventList(input.Events, context);\n nodes.map(function (node) {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlNotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlQueueConfigurationList = function serializeAws_restXmlQueueConfigurationList(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = serializeAws_restXmlQueueConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\n\nvar serializeAws_restXmlRedirect = function serializeAws_restXmlRedirect(input, context) {\n var bodyNode = new __XmlNode(\"Redirect\");\n\n if (input.HostName !== undefined && input.HostName !== null) {\n var node = new __XmlNode(\"HostName\").addChildNode(new __XmlText(input.HostName)).withName(\"HostName\");\n bodyNode.addChildNode(node);\n }\n\n if (input.HttpRedirectCode !== undefined && input.HttpRedirectCode !== null) {\n var node = new __XmlNode(\"HttpRedirectCode\").addChildNode(new __XmlText(input.HttpRedirectCode)).withName(\"HttpRedirectCode\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Protocol !== undefined && input.Protocol !== null) {\n var node = new __XmlNode(\"Protocol\").addChildNode(new __XmlText(input.Protocol)).withName(\"Protocol\");\n bodyNode.addChildNode(node);\n }\n\n if (input.ReplaceKeyPrefixWith !== undefined && input.ReplaceKeyPrefixWith !== null) {\n var node = new __XmlNode(\"ReplaceKeyPrefixWith\").addChildNode(new __XmlText(input.ReplaceKeyPrefixWith)).withName(\"ReplaceKeyPrefixWith\");\n bodyNode.addChildNode(node);\n }\n\n if (input.ReplaceKeyWith !== undefined && input.ReplaceKeyWith !== null) {\n var node = new __XmlNode(\"ReplaceKeyWith\").addChildNode(new __XmlText(input.ReplaceKeyWith)).withName(\"ReplaceKeyWith\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlRedirectAllRequestsTo = function serializeAws_restXmlRedirectAllRequestsTo(input, context) {\n var bodyNode = new __XmlNode(\"RedirectAllRequestsTo\");\n\n if (input.HostName !== undefined && input.HostName !== null) {\n var node = new __XmlNode(\"HostName\").addChildNode(new __XmlText(input.HostName)).withName(\"HostName\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Protocol !== undefined && input.Protocol !== null) {\n var node = new __XmlNode(\"Protocol\").addChildNode(new __XmlText(input.Protocol)).withName(\"Protocol\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlReplicaModifications = function serializeAws_restXmlReplicaModifications(input, context) {\n var bodyNode = new __XmlNode(\"ReplicaModifications\");\n\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ReplicaModificationsStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlReplicationConfiguration = function serializeAws_restXmlReplicationConfiguration(input, context) {\n var bodyNode = new __XmlNode(\"ReplicationConfiguration\");\n\n if (input.Role !== undefined && input.Role !== null) {\n var node = new __XmlNode(\"Role\").addChildNode(new __XmlText(input.Role)).withName(\"Role\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Rules !== undefined && input.Rules !== null) {\n var nodes = serializeAws_restXmlReplicationRules(input.Rules, context);\n nodes.map(function (node) {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlReplicationRule = function serializeAws_restXmlReplicationRule(input, context) {\n var bodyNode = new __XmlNode(\"ReplicationRule\");\n\n if (input.ID !== undefined && input.ID !== null) {\n var node = new __XmlNode(\"ID\").addChildNode(new __XmlText(input.ID)).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Priority !== undefined && input.Priority !== null) {\n var node = new __XmlNode(\"Priority\").addChildNode(new __XmlText(String(input.Priority))).withName(\"Priority\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlReplicationRuleFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ReplicationRuleStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n\n if (input.SourceSelectionCriteria !== undefined && input.SourceSelectionCriteria !== null) {\n var node = serializeAws_restXmlSourceSelectionCriteria(input.SourceSelectionCriteria, context).withName(\"SourceSelectionCriteria\");\n bodyNode.addChildNode(node);\n }\n\n if (input.ExistingObjectReplication !== undefined && input.ExistingObjectReplication !== null) {\n var node = serializeAws_restXmlExistingObjectReplication(input.ExistingObjectReplication, context).withName(\"ExistingObjectReplication\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Destination !== undefined && input.Destination !== null) {\n var node = serializeAws_restXmlDestination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n\n if (input.DeleteMarkerReplication !== undefined && input.DeleteMarkerReplication !== null) {\n var node = serializeAws_restXmlDeleteMarkerReplication(input.DeleteMarkerReplication, context).withName(\"DeleteMarkerReplication\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlReplicationRuleAndOperator = function serializeAws_restXmlReplicationRuleAndOperator(input, context) {\n var bodyNode = new __XmlNode(\"ReplicationRuleAndOperator\");\n\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Tags !== undefined && input.Tags !== null) {\n var nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map(function (node) {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlReplicationRuleFilter = function serializeAws_restXmlReplicationRuleFilter(input, context) {\n var bodyNode = new __XmlNode(\"ReplicationRuleFilter\");\n ReplicationRuleFilter.visit(input, {\n Prefix: function Prefix(value) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(value)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: function Tag(value) {\n var node = serializeAws_restXmlTag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: function And(value) {\n var node = serializeAws_restXmlReplicationRuleAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: function _(name, value) {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n }\n });\n return bodyNode;\n};\n\nvar serializeAws_restXmlReplicationRules = function serializeAws_restXmlReplicationRules(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = serializeAws_restXmlReplicationRule(entry, context);\n return node.withName(\"member\");\n });\n};\n\nvar serializeAws_restXmlReplicationTime = function serializeAws_restXmlReplicationTime(input, context) {\n var bodyNode = new __XmlNode(\"ReplicationTime\");\n\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ReplicationTimeStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Time !== undefined && input.Time !== null) {\n var node = serializeAws_restXmlReplicationTimeValue(input.Time, context).withName(\"Time\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlReplicationTimeValue = function serializeAws_restXmlReplicationTimeValue(input, context) {\n var bodyNode = new __XmlNode(\"ReplicationTimeValue\");\n\n if (input.Minutes !== undefined && input.Minutes !== null) {\n var node = new __XmlNode(\"Minutes\").addChildNode(new __XmlText(String(input.Minutes))).withName(\"Minutes\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlRequestPaymentConfiguration = function serializeAws_restXmlRequestPaymentConfiguration(input, context) {\n var bodyNode = new __XmlNode(\"RequestPaymentConfiguration\");\n\n if (input.Payer !== undefined && input.Payer !== null) {\n var node = new __XmlNode(\"Payer\").addChildNode(new __XmlText(input.Payer)).withName(\"Payer\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlRequestProgress = function serializeAws_restXmlRequestProgress(input, context) {\n var bodyNode = new __XmlNode(\"RequestProgress\");\n\n if (input.Enabled !== undefined && input.Enabled !== null) {\n var node = new __XmlNode(\"EnableRequestProgress\").addChildNode(new __XmlText(String(input.Enabled))).withName(\"Enabled\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlRestoreRequest = function serializeAws_restXmlRestoreRequest(input, context) {\n var bodyNode = new __XmlNode(\"RestoreRequest\");\n\n if (input.Days !== undefined && input.Days !== null) {\n var node = new __XmlNode(\"Days\").addChildNode(new __XmlText(String(input.Days))).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n\n if (input.GlacierJobParameters !== undefined && input.GlacierJobParameters !== null) {\n var node = serializeAws_restXmlGlacierJobParameters(input.GlacierJobParameters, context).withName(\"GlacierJobParameters\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Type !== undefined && input.Type !== null) {\n var node = new __XmlNode(\"RestoreRequestType\").addChildNode(new __XmlText(input.Type)).withName(\"Type\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Tier !== undefined && input.Tier !== null) {\n var node = new __XmlNode(\"Tier\").addChildNode(new __XmlText(input.Tier)).withName(\"Tier\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Description !== undefined && input.Description !== null) {\n var node = new __XmlNode(\"Description\").addChildNode(new __XmlText(input.Description)).withName(\"Description\");\n bodyNode.addChildNode(node);\n }\n\n if (input.SelectParameters !== undefined && input.SelectParameters !== null) {\n var node = serializeAws_restXmlSelectParameters(input.SelectParameters, context).withName(\"SelectParameters\");\n bodyNode.addChildNode(node);\n }\n\n if (input.OutputLocation !== undefined && input.OutputLocation !== null) {\n var node = serializeAws_restXmlOutputLocation(input.OutputLocation, context).withName(\"OutputLocation\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlRoutingRule = function serializeAws_restXmlRoutingRule(input, context) {\n var bodyNode = new __XmlNode(\"RoutingRule\");\n\n if (input.Condition !== undefined && input.Condition !== null) {\n var node = serializeAws_restXmlCondition(input.Condition, context).withName(\"Condition\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Redirect !== undefined && input.Redirect !== null) {\n var node = serializeAws_restXmlRedirect(input.Redirect, context).withName(\"Redirect\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlRoutingRules = function serializeAws_restXmlRoutingRules(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = serializeAws_restXmlRoutingRule(entry, context);\n return node.withName(\"RoutingRule\");\n });\n};\n\nvar serializeAws_restXmlS3KeyFilter = function serializeAws_restXmlS3KeyFilter(input, context) {\n var bodyNode = new __XmlNode(\"S3KeyFilter\");\n\n if (input.FilterRules !== undefined && input.FilterRules !== null) {\n var nodes = serializeAws_restXmlFilterRuleList(input.FilterRules, context);\n nodes.map(function (node) {\n node = node.withName(\"FilterRule\");\n bodyNode.addChildNode(node);\n });\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlS3Location = function serializeAws_restXmlS3Location(input, context) {\n var bodyNode = new __XmlNode(\"S3Location\");\n\n if (input.BucketName !== undefined && input.BucketName !== null) {\n var node = new __XmlNode(\"BucketName\").addChildNode(new __XmlText(input.BucketName)).withName(\"BucketName\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"LocationPrefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Encryption !== undefined && input.Encryption !== null) {\n var node = serializeAws_restXmlEncryption(input.Encryption, context).withName(\"Encryption\");\n bodyNode.addChildNode(node);\n }\n\n if (input.CannedACL !== undefined && input.CannedACL !== null) {\n var node = new __XmlNode(\"ObjectCannedACL\").addChildNode(new __XmlText(input.CannedACL)).withName(\"CannedACL\");\n bodyNode.addChildNode(node);\n }\n\n if (input.AccessControlList !== undefined && input.AccessControlList !== null) {\n var nodes = serializeAws_restXmlGrants(input.AccessControlList, context);\n var containerNode_4 = new __XmlNode(\"AccessControlList\");\n nodes.map(function (node) {\n containerNode_4.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_4);\n }\n\n if (input.Tagging !== undefined && input.Tagging !== null) {\n var node = serializeAws_restXmlTagging(input.Tagging, context).withName(\"Tagging\");\n bodyNode.addChildNode(node);\n }\n\n if (input.UserMetadata !== undefined && input.UserMetadata !== null) {\n var nodes = serializeAws_restXmlUserMetadata(input.UserMetadata, context);\n var containerNode_5 = new __XmlNode(\"UserMetadata\");\n nodes.map(function (node) {\n containerNode_5.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_5);\n }\n\n if (input.StorageClass !== undefined && input.StorageClass !== null) {\n var node = new __XmlNode(\"StorageClass\").addChildNode(new __XmlText(input.StorageClass)).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlScanRange = function serializeAws_restXmlScanRange(input, context) {\n var bodyNode = new __XmlNode(\"ScanRange\");\n\n if (input.Start !== undefined && input.Start !== null) {\n var node = new __XmlNode(\"Start\").addChildNode(new __XmlText(String(input.Start))).withName(\"Start\");\n bodyNode.addChildNode(node);\n }\n\n if (input.End !== undefined && input.End !== null) {\n var node = new __XmlNode(\"End\").addChildNode(new __XmlText(String(input.End))).withName(\"End\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlSelectParameters = function serializeAws_restXmlSelectParameters(input, context) {\n var bodyNode = new __XmlNode(\"SelectParameters\");\n\n if (input.InputSerialization !== undefined && input.InputSerialization !== null) {\n var node = serializeAws_restXmlInputSerialization(input.InputSerialization, context).withName(\"InputSerialization\");\n bodyNode.addChildNode(node);\n }\n\n if (input.ExpressionType !== undefined && input.ExpressionType !== null) {\n var node = new __XmlNode(\"ExpressionType\").addChildNode(new __XmlText(input.ExpressionType)).withName(\"ExpressionType\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Expression !== undefined && input.Expression !== null) {\n var node = new __XmlNode(\"Expression\").addChildNode(new __XmlText(input.Expression)).withName(\"Expression\");\n bodyNode.addChildNode(node);\n }\n\n if (input.OutputSerialization !== undefined && input.OutputSerialization !== null) {\n var node = serializeAws_restXmlOutputSerialization(input.OutputSerialization, context).withName(\"OutputSerialization\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlServerSideEncryptionByDefault = function serializeAws_restXmlServerSideEncryptionByDefault(input, context) {\n var bodyNode = new __XmlNode(\"ServerSideEncryptionByDefault\");\n\n if (input.SSEAlgorithm !== undefined && input.SSEAlgorithm !== null) {\n var node = new __XmlNode(\"ServerSideEncryption\").addChildNode(new __XmlText(input.SSEAlgorithm)).withName(\"SSEAlgorithm\");\n bodyNode.addChildNode(node);\n }\n\n if (input.KMSMasterKeyID !== undefined && input.KMSMasterKeyID !== null) {\n var node = new __XmlNode(\"SSEKMSKeyId\").addChildNode(new __XmlText(input.KMSMasterKeyID)).withName(\"KMSMasterKeyID\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlServerSideEncryptionConfiguration = function serializeAws_restXmlServerSideEncryptionConfiguration(input, context) {\n var bodyNode = new __XmlNode(\"ServerSideEncryptionConfiguration\");\n\n if (input.Rules !== undefined && input.Rules !== null) {\n var nodes = serializeAws_restXmlServerSideEncryptionRules(input.Rules, context);\n nodes.map(function (node) {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlServerSideEncryptionRule = function serializeAws_restXmlServerSideEncryptionRule(input, context) {\n var bodyNode = new __XmlNode(\"ServerSideEncryptionRule\");\n\n if (input.ApplyServerSideEncryptionByDefault !== undefined && input.ApplyServerSideEncryptionByDefault !== null) {\n var node = serializeAws_restXmlServerSideEncryptionByDefault(input.ApplyServerSideEncryptionByDefault, context).withName(\"ApplyServerSideEncryptionByDefault\");\n bodyNode.addChildNode(node);\n }\n\n if (input.BucketKeyEnabled !== undefined && input.BucketKeyEnabled !== null) {\n var node = new __XmlNode(\"BucketKeyEnabled\").addChildNode(new __XmlText(String(input.BucketKeyEnabled))).withName(\"BucketKeyEnabled\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlServerSideEncryptionRules = function serializeAws_restXmlServerSideEncryptionRules(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = serializeAws_restXmlServerSideEncryptionRule(entry, context);\n return node.withName(\"member\");\n });\n};\n\nvar serializeAws_restXmlSourceSelectionCriteria = function serializeAws_restXmlSourceSelectionCriteria(input, context) {\n var bodyNode = new __XmlNode(\"SourceSelectionCriteria\");\n\n if (input.SseKmsEncryptedObjects !== undefined && input.SseKmsEncryptedObjects !== null) {\n var node = serializeAws_restXmlSseKmsEncryptedObjects(input.SseKmsEncryptedObjects, context).withName(\"SseKmsEncryptedObjects\");\n bodyNode.addChildNode(node);\n }\n\n if (input.ReplicaModifications !== undefined && input.ReplicaModifications !== null) {\n var node = serializeAws_restXmlReplicaModifications(input.ReplicaModifications, context).withName(\"ReplicaModifications\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlSSEKMS = function serializeAws_restXmlSSEKMS(input, context) {\n var bodyNode = new __XmlNode(\"SSE-KMS\");\n\n if (input.KeyId !== undefined && input.KeyId !== null) {\n var node = new __XmlNode(\"SSEKMSKeyId\").addChildNode(new __XmlText(input.KeyId)).withName(\"KeyId\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlSseKmsEncryptedObjects = function serializeAws_restXmlSseKmsEncryptedObjects(input, context) {\n var bodyNode = new __XmlNode(\"SseKmsEncryptedObjects\");\n\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"SseKmsEncryptedObjectsStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlSSES3 = function serializeAws_restXmlSSES3(input, context) {\n var bodyNode = new __XmlNode(\"SSE-S3\");\n return bodyNode;\n};\n\nvar serializeAws_restXmlStorageClassAnalysis = function serializeAws_restXmlStorageClassAnalysis(input, context) {\n var bodyNode = new __XmlNode(\"StorageClassAnalysis\");\n\n if (input.DataExport !== undefined && input.DataExport !== null) {\n var node = serializeAws_restXmlStorageClassAnalysisDataExport(input.DataExport, context).withName(\"DataExport\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlStorageClassAnalysisDataExport = function serializeAws_restXmlStorageClassAnalysisDataExport(input, context) {\n var bodyNode = new __XmlNode(\"StorageClassAnalysisDataExport\");\n\n if (input.OutputSchemaVersion !== undefined && input.OutputSchemaVersion !== null) {\n var node = new __XmlNode(\"StorageClassAnalysisSchemaVersion\").addChildNode(new __XmlText(input.OutputSchemaVersion)).withName(\"OutputSchemaVersion\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Destination !== undefined && input.Destination !== null) {\n var node = serializeAws_restXmlAnalyticsExportDestination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlTag = function serializeAws_restXmlTag(input, context) {\n var bodyNode = new __XmlNode(\"Tag\");\n\n if (input.Key !== undefined && input.Key !== null) {\n var node = new __XmlNode(\"ObjectKey\").addChildNode(new __XmlText(input.Key)).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Value !== undefined && input.Value !== null) {\n var node = new __XmlNode(\"Value\").addChildNode(new __XmlText(input.Value)).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlTagging = function serializeAws_restXmlTagging(input, context) {\n var bodyNode = new __XmlNode(\"Tagging\");\n\n if (input.TagSet !== undefined && input.TagSet !== null) {\n var nodes = serializeAws_restXmlTagSet(input.TagSet, context);\n var containerNode_6 = new __XmlNode(\"TagSet\");\n nodes.map(function (node) {\n containerNode_6.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_6);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlTagSet = function serializeAws_restXmlTagSet(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = serializeAws_restXmlTag(entry, context);\n return node.withName(\"Tag\");\n });\n};\n\nvar serializeAws_restXmlTargetGrant = function serializeAws_restXmlTargetGrant(input, context) {\n var bodyNode = new __XmlNode(\"TargetGrant\");\n\n if (input.Grantee !== undefined && input.Grantee !== null) {\n var node = serializeAws_restXmlGrantee(input.Grantee, context).withName(\"Grantee\");\n node.addAttribute(\"xmlns:xsi\", \"http://www.w3.org/2001/XMLSchema-instance\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Permission !== undefined && input.Permission !== null) {\n var node = new __XmlNode(\"BucketLogsPermission\").addChildNode(new __XmlText(input.Permission)).withName(\"Permission\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlTargetGrants = function serializeAws_restXmlTargetGrants(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = serializeAws_restXmlTargetGrant(entry, context);\n return node.withName(\"Grant\");\n });\n};\n\nvar serializeAws_restXmlTiering = function serializeAws_restXmlTiering(input, context) {\n var bodyNode = new __XmlNode(\"Tiering\");\n\n if (input.Days !== undefined && input.Days !== null) {\n var node = new __XmlNode(\"IntelligentTieringDays\").addChildNode(new __XmlText(String(input.Days))).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n\n if (input.AccessTier !== undefined && input.AccessTier !== null) {\n var node = new __XmlNode(\"IntelligentTieringAccessTier\").addChildNode(new __XmlText(input.AccessTier)).withName(\"AccessTier\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlTieringList = function serializeAws_restXmlTieringList(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = serializeAws_restXmlTiering(entry, context);\n return node.withName(\"member\");\n });\n};\n\nvar serializeAws_restXmlTopicConfiguration = function serializeAws_restXmlTopicConfiguration(input, context) {\n var bodyNode = new __XmlNode(\"TopicConfiguration\");\n\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"NotificationId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n\n if (input.TopicArn !== undefined && input.TopicArn !== null) {\n var node = new __XmlNode(\"TopicArn\").addChildNode(new __XmlText(input.TopicArn)).withName(\"Topic\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Events !== undefined && input.Events !== null) {\n var nodes = serializeAws_restXmlEventList(input.Events, context);\n nodes.map(function (node) {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlNotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlTopicConfigurationList = function serializeAws_restXmlTopicConfigurationList(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = serializeAws_restXmlTopicConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\n\nvar serializeAws_restXmlTransition = function serializeAws_restXmlTransition(input, context) {\n var bodyNode = new __XmlNode(\"Transition\");\n\n if (input.Date !== undefined && input.Date !== null) {\n var node = new __XmlNode(\"Date\").addChildNode(new __XmlText(input.Date.toISOString().split(\".\")[0] + \"Z\")).withName(\"Date\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Days !== undefined && input.Days !== null) {\n var node = new __XmlNode(\"Days\").addChildNode(new __XmlText(String(input.Days))).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n\n if (input.StorageClass !== undefined && input.StorageClass !== null) {\n var node = new __XmlNode(\"TransitionStorageClass\").addChildNode(new __XmlText(input.StorageClass)).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlTransitionList = function serializeAws_restXmlTransitionList(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = serializeAws_restXmlTransition(entry, context);\n return node.withName(\"member\");\n });\n};\n\nvar serializeAws_restXmlUserMetadata = function serializeAws_restXmlUserMetadata(input, context) {\n return input.filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n var node = serializeAws_restXmlMetadataEntry(entry, context);\n return node.withName(\"MetadataEntry\");\n });\n};\n\nvar serializeAws_restXmlVersioningConfiguration = function serializeAws_restXmlVersioningConfiguration(input, context) {\n var bodyNode = new __XmlNode(\"VersioningConfiguration\");\n\n if (input.MFADelete !== undefined && input.MFADelete !== null) {\n var node = new __XmlNode(\"MFADelete\").addChildNode(new __XmlText(input.MFADelete)).withName(\"MfaDelete\");\n bodyNode.addChildNode(node);\n }\n\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"BucketVersioningStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n\n return bodyNode;\n};\n\nvar serializeAws_restXmlWebsiteConfiguration = function serializeAws_restXmlWebsiteConfiguration(input, context) {\n var bodyNode = new __XmlNode(\"WebsiteConfiguration\");\n\n if (input.ErrorDocument !== undefined && input.ErrorDocument !== null) {\n var node = serializeAws_restXmlErrorDocument(input.ErrorDocument, context).withName(\"ErrorDocument\");\n bodyNode.addChildNode(node);\n }\n\n if (input.IndexDocument !== undefined && input.IndexDocument !== null) {\n var node = serializeAws_restXmlIndexDocument(input.IndexDocument, context).withName(\"IndexDocument\");\n bodyNode.addChildNode(node);\n }\n\n if (input.RedirectAllRequestsTo !== undefined && input.RedirectAllRequestsTo !== null) {\n var node = serializeAws_restXmlRedirectAllRequestsTo(input.RedirectAllRequestsTo, context).withName(\"RedirectAllRequestsTo\");\n bodyNode.addChildNode(node);\n }\n\n if (input.RoutingRules !== undefined && input.RoutingRules !== null) {\n var nodes = serializeAws_restXmlRoutingRules(input.RoutingRules, context);\n var containerNode_7 = new __XmlNode(\"RoutingRules\");\n nodes.map(function (node) {\n containerNode_7.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_7);\n }\n\n return bodyNode;\n};\n\nvar deserializeAws_restXmlAbortIncompleteMultipartUpload = function deserializeAws_restXmlAbortIncompleteMultipartUpload(output, context) {\n var contents = {\n DaysAfterInitiation: undefined\n };\n\n if (output[\"DaysAfterInitiation\"] !== undefined) {\n contents.DaysAfterInitiation = parseInt(output[\"DaysAfterInitiation\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlAccessControlTranslation = function deserializeAws_restXmlAccessControlTranslation(output, context) {\n var contents = {\n Owner: undefined\n };\n\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = __expectString(output[\"Owner\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlAllowedHeaders = function deserializeAws_restXmlAllowedHeaders(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return __expectString(entry);\n });\n};\n\nvar deserializeAws_restXmlAllowedMethods = function deserializeAws_restXmlAllowedMethods(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return __expectString(entry);\n });\n};\n\nvar deserializeAws_restXmlAllowedOrigins = function deserializeAws_restXmlAllowedOrigins(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return __expectString(entry);\n });\n};\n\nvar deserializeAws_restXmlAnalyticsAndOperator = function deserializeAws_restXmlAnalyticsAndOperator(output, context) {\n var contents = {\n Prefix: undefined,\n Tags: undefined\n };\n\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n\n if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlAnalyticsConfiguration = function deserializeAws_restXmlAnalyticsConfiguration(output, context) {\n var contents = {\n Id: undefined,\n Filter: undefined,\n StorageClassAnalysis: undefined\n };\n\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlAnalyticsFilter(output[\"Filter\"], context);\n }\n\n if (output[\"StorageClassAnalysis\"] !== undefined) {\n contents.StorageClassAnalysis = deserializeAws_restXmlStorageClassAnalysis(output[\"StorageClassAnalysis\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlAnalyticsConfigurationList = function deserializeAws_restXmlAnalyticsConfigurationList(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlAnalyticsConfiguration(entry, context);\n });\n};\n\nvar deserializeAws_restXmlAnalyticsExportDestination = function deserializeAws_restXmlAnalyticsExportDestination(output, context) {\n var contents = {\n S3BucketDestination: undefined\n };\n\n if (output[\"S3BucketDestination\"] !== undefined) {\n contents.S3BucketDestination = deserializeAws_restXmlAnalyticsS3BucketDestination(output[\"S3BucketDestination\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlAnalyticsFilter = function deserializeAws_restXmlAnalyticsFilter(output, context) {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: __expectString(output[\"Prefix\"])\n };\n }\n\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: deserializeAws_restXmlTag(output[\"Tag\"], context)\n };\n }\n\n if (output[\"And\"] !== undefined) {\n return {\n And: deserializeAws_restXmlAnalyticsAndOperator(output[\"And\"], context)\n };\n }\n\n return {\n $unknown: Object.entries(output)[0]\n };\n};\n\nvar deserializeAws_restXmlAnalyticsS3BucketDestination = function deserializeAws_restXmlAnalyticsS3BucketDestination(output, context) {\n var contents = {\n Format: undefined,\n BucketAccountId: undefined,\n Bucket: undefined,\n Prefix: undefined\n };\n\n if (output[\"Format\"] !== undefined) {\n contents.Format = __expectString(output[\"Format\"]);\n }\n\n if (output[\"BucketAccountId\"] !== undefined) {\n contents.BucketAccountId = __expectString(output[\"BucketAccountId\"]);\n }\n\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(output[\"Bucket\"]);\n }\n\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlBucket = function deserializeAws_restXmlBucket(output, context) {\n var contents = {\n Name: undefined,\n CreationDate: undefined\n };\n\n if (output[\"Name\"] !== undefined) {\n contents.Name = __expectString(output[\"Name\"]);\n }\n\n if (output[\"CreationDate\"] !== undefined) {\n contents.CreationDate = new Date(output[\"CreationDate\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlBuckets = function deserializeAws_restXmlBuckets(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlBucket(entry, context);\n });\n};\n\nvar deserializeAws_restXmlCommonPrefix = function deserializeAws_restXmlCommonPrefix(output, context) {\n var contents = {\n Prefix: undefined\n };\n\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlCommonPrefixList = function deserializeAws_restXmlCommonPrefixList(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlCommonPrefix(entry, context);\n });\n};\n\nvar deserializeAws_restXmlCondition = function deserializeAws_restXmlCondition(output, context) {\n var contents = {\n HttpErrorCodeReturnedEquals: undefined,\n KeyPrefixEquals: undefined\n };\n\n if (output[\"HttpErrorCodeReturnedEquals\"] !== undefined) {\n contents.HttpErrorCodeReturnedEquals = __expectString(output[\"HttpErrorCodeReturnedEquals\"]);\n }\n\n if (output[\"KeyPrefixEquals\"] !== undefined) {\n contents.KeyPrefixEquals = __expectString(output[\"KeyPrefixEquals\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlContinuationEvent = function deserializeAws_restXmlContinuationEvent(output, context) {\n var contents = {};\n return contents;\n};\n\nvar deserializeAws_restXmlCopyObjectResult = function deserializeAws_restXmlCopyObjectResult(output, context) {\n var contents = {\n ETag: undefined,\n LastModified: undefined\n };\n\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = __expectString(output[\"ETag\"]);\n }\n\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlCopyPartResult = function deserializeAws_restXmlCopyPartResult(output, context) {\n var contents = {\n ETag: undefined,\n LastModified: undefined\n };\n\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = __expectString(output[\"ETag\"]);\n }\n\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlCORSRule = function deserializeAws_restXmlCORSRule(output, context) {\n var contents = {\n ID: undefined,\n AllowedHeaders: undefined,\n AllowedMethods: undefined,\n AllowedOrigins: undefined,\n ExposeHeaders: undefined,\n MaxAgeSeconds: undefined\n };\n\n if (output[\"ID\"] !== undefined) {\n contents.ID = __expectString(output[\"ID\"]);\n }\n\n if (output.AllowedHeader === \"\") {\n contents.AllowedHeaders = [];\n }\n\n if (output[\"AllowedHeader\"] !== undefined) {\n contents.AllowedHeaders = deserializeAws_restXmlAllowedHeaders(__getArrayIfSingleItem(output[\"AllowedHeader\"]), context);\n }\n\n if (output.AllowedMethod === \"\") {\n contents.AllowedMethods = [];\n }\n\n if (output[\"AllowedMethod\"] !== undefined) {\n contents.AllowedMethods = deserializeAws_restXmlAllowedMethods(__getArrayIfSingleItem(output[\"AllowedMethod\"]), context);\n }\n\n if (output.AllowedOrigin === \"\") {\n contents.AllowedOrigins = [];\n }\n\n if (output[\"AllowedOrigin\"] !== undefined) {\n contents.AllowedOrigins = deserializeAws_restXmlAllowedOrigins(__getArrayIfSingleItem(output[\"AllowedOrigin\"]), context);\n }\n\n if (output.ExposeHeader === \"\") {\n contents.ExposeHeaders = [];\n }\n\n if (output[\"ExposeHeader\"] !== undefined) {\n contents.ExposeHeaders = deserializeAws_restXmlExposeHeaders(__getArrayIfSingleItem(output[\"ExposeHeader\"]), context);\n }\n\n if (output[\"MaxAgeSeconds\"] !== undefined) {\n contents.MaxAgeSeconds = parseInt(output[\"MaxAgeSeconds\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlCORSRules = function deserializeAws_restXmlCORSRules(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlCORSRule(entry, context);\n });\n};\n\nvar deserializeAws_restXmlDefaultRetention = function deserializeAws_restXmlDefaultRetention(output, context) {\n var contents = {\n Mode: undefined,\n Days: undefined,\n Years: undefined\n };\n\n if (output[\"Mode\"] !== undefined) {\n contents.Mode = __expectString(output[\"Mode\"]);\n }\n\n if (output[\"Days\"] !== undefined) {\n contents.Days = parseInt(output[\"Days\"]);\n }\n\n if (output[\"Years\"] !== undefined) {\n contents.Years = parseInt(output[\"Years\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlDeletedObject = function deserializeAws_restXmlDeletedObject(output, context) {\n var contents = {\n Key: undefined,\n VersionId: undefined,\n DeleteMarker: undefined,\n DeleteMarkerVersionId: undefined\n };\n\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = __expectString(output[\"VersionId\"]);\n }\n\n if (output[\"DeleteMarker\"] !== undefined) {\n contents.DeleteMarker = __parseBoolean(output[\"DeleteMarker\"]);\n }\n\n if (output[\"DeleteMarkerVersionId\"] !== undefined) {\n contents.DeleteMarkerVersionId = __expectString(output[\"DeleteMarkerVersionId\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlDeletedObjects = function deserializeAws_restXmlDeletedObjects(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlDeletedObject(entry, context);\n });\n};\n\nvar deserializeAws_restXmlDeleteMarkerEntry = function deserializeAws_restXmlDeleteMarkerEntry(output, context) {\n var contents = {\n Owner: undefined,\n Key: undefined,\n VersionId: undefined,\n IsLatest: undefined,\n LastModified: undefined\n };\n\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(output[\"Owner\"], context);\n }\n\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = __expectString(output[\"VersionId\"]);\n }\n\n if (output[\"IsLatest\"] !== undefined) {\n contents.IsLatest = __parseBoolean(output[\"IsLatest\"]);\n }\n\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlDeleteMarkerReplication = function deserializeAws_restXmlDeleteMarkerReplication(output, context) {\n var contents = {\n Status: undefined\n };\n\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlDeleteMarkers = function deserializeAws_restXmlDeleteMarkers(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlDeleteMarkerEntry(entry, context);\n });\n};\n\nvar deserializeAws_restXmlDestination = function deserializeAws_restXmlDestination(output, context) {\n var contents = {\n Bucket: undefined,\n Account: undefined,\n StorageClass: undefined,\n AccessControlTranslation: undefined,\n EncryptionConfiguration: undefined,\n ReplicationTime: undefined,\n Metrics: undefined\n };\n\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(output[\"Bucket\"]);\n }\n\n if (output[\"Account\"] !== undefined) {\n contents.Account = __expectString(output[\"Account\"]);\n }\n\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(output[\"StorageClass\"]);\n }\n\n if (output[\"AccessControlTranslation\"] !== undefined) {\n contents.AccessControlTranslation = deserializeAws_restXmlAccessControlTranslation(output[\"AccessControlTranslation\"], context);\n }\n\n if (output[\"EncryptionConfiguration\"] !== undefined) {\n contents.EncryptionConfiguration = deserializeAws_restXmlEncryptionConfiguration(output[\"EncryptionConfiguration\"], context);\n }\n\n if (output[\"ReplicationTime\"] !== undefined) {\n contents.ReplicationTime = deserializeAws_restXmlReplicationTime(output[\"ReplicationTime\"], context);\n }\n\n if (output[\"Metrics\"] !== undefined) {\n contents.Metrics = deserializeAws_restXmlMetrics(output[\"Metrics\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlEncryptionConfiguration = function deserializeAws_restXmlEncryptionConfiguration(output, context) {\n var contents = {\n ReplicaKmsKeyID: undefined\n };\n\n if (output[\"ReplicaKmsKeyID\"] !== undefined) {\n contents.ReplicaKmsKeyID = __expectString(output[\"ReplicaKmsKeyID\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlEndEvent = function deserializeAws_restXmlEndEvent(output, context) {\n var contents = {};\n return contents;\n};\n\nvar deserializeAws_restXml_Error = function deserializeAws_restXml_Error(output, context) {\n var contents = {\n Key: undefined,\n VersionId: undefined,\n Code: undefined,\n Message: undefined\n };\n\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = __expectString(output[\"VersionId\"]);\n }\n\n if (output[\"Code\"] !== undefined) {\n contents.Code = __expectString(output[\"Code\"]);\n }\n\n if (output[\"Message\"] !== undefined) {\n contents.Message = __expectString(output[\"Message\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlErrorDocument = function deserializeAws_restXmlErrorDocument(output, context) {\n var contents = {\n Key: undefined\n };\n\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlErrors = function deserializeAws_restXmlErrors(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXml_Error(entry, context);\n });\n};\n\nvar deserializeAws_restXmlEventList = function deserializeAws_restXmlEventList(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return __expectString(entry);\n });\n};\n\nvar deserializeAws_restXmlExistingObjectReplication = function deserializeAws_restXmlExistingObjectReplication(output, context) {\n var contents = {\n Status: undefined\n };\n\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlExposeHeaders = function deserializeAws_restXmlExposeHeaders(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return __expectString(entry);\n });\n};\n\nvar deserializeAws_restXmlFilterRule = function deserializeAws_restXmlFilterRule(output, context) {\n var contents = {\n Name: undefined,\n Value: undefined\n };\n\n if (output[\"Name\"] !== undefined) {\n contents.Name = __expectString(output[\"Name\"]);\n }\n\n if (output[\"Value\"] !== undefined) {\n contents.Value = __expectString(output[\"Value\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlFilterRuleList = function deserializeAws_restXmlFilterRuleList(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlFilterRule(entry, context);\n });\n};\n\nvar deserializeAws_restXmlGrant = function deserializeAws_restXmlGrant(output, context) {\n var contents = {\n Grantee: undefined,\n Permission: undefined\n };\n\n if (output[\"Grantee\"] !== undefined) {\n contents.Grantee = deserializeAws_restXmlGrantee(output[\"Grantee\"], context);\n }\n\n if (output[\"Permission\"] !== undefined) {\n contents.Permission = __expectString(output[\"Permission\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlGrantee = function deserializeAws_restXmlGrantee(output, context) {\n var contents = {\n DisplayName: undefined,\n EmailAddress: undefined,\n ID: undefined,\n URI: undefined,\n Type: undefined\n };\n\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = __expectString(output[\"DisplayName\"]);\n }\n\n if (output[\"EmailAddress\"] !== undefined) {\n contents.EmailAddress = __expectString(output[\"EmailAddress\"]);\n }\n\n if (output[\"ID\"] !== undefined) {\n contents.ID = __expectString(output[\"ID\"]);\n }\n\n if (output[\"URI\"] !== undefined) {\n contents.URI = __expectString(output[\"URI\"]);\n }\n\n if (output[\"xsi:type\"] !== undefined) {\n contents.Type = __expectString(output[\"xsi:type\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlGrants = function deserializeAws_restXmlGrants(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlGrant(entry, context);\n });\n};\n\nvar deserializeAws_restXmlIndexDocument = function deserializeAws_restXmlIndexDocument(output, context) {\n var contents = {\n Suffix: undefined\n };\n\n if (output[\"Suffix\"] !== undefined) {\n contents.Suffix = __expectString(output[\"Suffix\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlInitiator = function deserializeAws_restXmlInitiator(output, context) {\n var contents = {\n ID: undefined,\n DisplayName: undefined\n };\n\n if (output[\"ID\"] !== undefined) {\n contents.ID = __expectString(output[\"ID\"]);\n }\n\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = __expectString(output[\"DisplayName\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlIntelligentTieringAndOperator = function deserializeAws_restXmlIntelligentTieringAndOperator(output, context) {\n var contents = {\n Prefix: undefined,\n Tags: undefined\n };\n\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n\n if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlIntelligentTieringConfiguration = function deserializeAws_restXmlIntelligentTieringConfiguration(output, context) {\n var contents = {\n Id: undefined,\n Filter: undefined,\n Status: undefined,\n Tierings: undefined\n };\n\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlIntelligentTieringFilter(output[\"Filter\"], context);\n }\n\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n\n if (output.Tiering === \"\") {\n contents.Tierings = [];\n }\n\n if (output[\"Tiering\"] !== undefined) {\n contents.Tierings = deserializeAws_restXmlTieringList(__getArrayIfSingleItem(output[\"Tiering\"]), context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlIntelligentTieringConfigurationList = function deserializeAws_restXmlIntelligentTieringConfigurationList(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlIntelligentTieringConfiguration(entry, context);\n });\n};\n\nvar deserializeAws_restXmlIntelligentTieringFilter = function deserializeAws_restXmlIntelligentTieringFilter(output, context) {\n var contents = {\n Prefix: undefined,\n Tag: undefined,\n And: undefined\n };\n\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n\n if (output[\"Tag\"] !== undefined) {\n contents.Tag = deserializeAws_restXmlTag(output[\"Tag\"], context);\n }\n\n if (output[\"And\"] !== undefined) {\n contents.And = deserializeAws_restXmlIntelligentTieringAndOperator(output[\"And\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlInventoryConfiguration = function deserializeAws_restXmlInventoryConfiguration(output, context) {\n var contents = {\n Destination: undefined,\n IsEnabled: undefined,\n Filter: undefined,\n Id: undefined,\n IncludedObjectVersions: undefined,\n OptionalFields: undefined,\n Schedule: undefined\n };\n\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = deserializeAws_restXmlInventoryDestination(output[\"Destination\"], context);\n }\n\n if (output[\"IsEnabled\"] !== undefined) {\n contents.IsEnabled = __parseBoolean(output[\"IsEnabled\"]);\n }\n\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlInventoryFilter(output[\"Filter\"], context);\n }\n\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n\n if (output[\"IncludedObjectVersions\"] !== undefined) {\n contents.IncludedObjectVersions = __expectString(output[\"IncludedObjectVersions\"]);\n }\n\n if (output.OptionalFields === \"\") {\n contents.OptionalFields = [];\n }\n\n if (output[\"OptionalFields\"] !== undefined && output[\"OptionalFields\"][\"Field\"] !== undefined) {\n contents.OptionalFields = deserializeAws_restXmlInventoryOptionalFields(__getArrayIfSingleItem(output[\"OptionalFields\"][\"Field\"]), context);\n }\n\n if (output[\"Schedule\"] !== undefined) {\n contents.Schedule = deserializeAws_restXmlInventorySchedule(output[\"Schedule\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlInventoryConfigurationList = function deserializeAws_restXmlInventoryConfigurationList(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlInventoryConfiguration(entry, context);\n });\n};\n\nvar deserializeAws_restXmlInventoryDestination = function deserializeAws_restXmlInventoryDestination(output, context) {\n var contents = {\n S3BucketDestination: undefined\n };\n\n if (output[\"S3BucketDestination\"] !== undefined) {\n contents.S3BucketDestination = deserializeAws_restXmlInventoryS3BucketDestination(output[\"S3BucketDestination\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlInventoryEncryption = function deserializeAws_restXmlInventoryEncryption(output, context) {\n var contents = {\n SSES3: undefined,\n SSEKMS: undefined\n };\n\n if (output[\"SSE-S3\"] !== undefined) {\n contents.SSES3 = deserializeAws_restXmlSSES3(output[\"SSE-S3\"], context);\n }\n\n if (output[\"SSE-KMS\"] !== undefined) {\n contents.SSEKMS = deserializeAws_restXmlSSEKMS(output[\"SSE-KMS\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlInventoryFilter = function deserializeAws_restXmlInventoryFilter(output, context) {\n var contents = {\n Prefix: undefined\n };\n\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlInventoryOptionalFields = function deserializeAws_restXmlInventoryOptionalFields(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return __expectString(entry);\n });\n};\n\nvar deserializeAws_restXmlInventoryS3BucketDestination = function deserializeAws_restXmlInventoryS3BucketDestination(output, context) {\n var contents = {\n AccountId: undefined,\n Bucket: undefined,\n Format: undefined,\n Prefix: undefined,\n Encryption: undefined\n };\n\n if (output[\"AccountId\"] !== undefined) {\n contents.AccountId = __expectString(output[\"AccountId\"]);\n }\n\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(output[\"Bucket\"]);\n }\n\n if (output[\"Format\"] !== undefined) {\n contents.Format = __expectString(output[\"Format\"]);\n }\n\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n\n if (output[\"Encryption\"] !== undefined) {\n contents.Encryption = deserializeAws_restXmlInventoryEncryption(output[\"Encryption\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlInventorySchedule = function deserializeAws_restXmlInventorySchedule(output, context) {\n var contents = {\n Frequency: undefined\n };\n\n if (output[\"Frequency\"] !== undefined) {\n contents.Frequency = __expectString(output[\"Frequency\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlLambdaFunctionConfiguration = function deserializeAws_restXmlLambdaFunctionConfiguration(output, context) {\n var contents = {\n Id: undefined,\n LambdaFunctionArn: undefined,\n Events: undefined,\n Filter: undefined\n };\n\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n\n if (output[\"CloudFunction\"] !== undefined) {\n contents.LambdaFunctionArn = __expectString(output[\"CloudFunction\"]);\n }\n\n if (output.Event === \"\") {\n contents.Events = [];\n }\n\n if (output[\"Event\"] !== undefined) {\n contents.Events = deserializeAws_restXmlEventList(__getArrayIfSingleItem(output[\"Event\"]), context);\n }\n\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlNotificationConfigurationFilter(output[\"Filter\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlLambdaFunctionConfigurationList = function deserializeAws_restXmlLambdaFunctionConfigurationList(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlLambdaFunctionConfiguration(entry, context);\n });\n};\n\nvar deserializeAws_restXmlLifecycleExpiration = function deserializeAws_restXmlLifecycleExpiration(output, context) {\n var contents = {\n Date: undefined,\n Days: undefined,\n ExpiredObjectDeleteMarker: undefined\n };\n\n if (output[\"Date\"] !== undefined) {\n contents.Date = new Date(output[\"Date\"]);\n }\n\n if (output[\"Days\"] !== undefined) {\n contents.Days = parseInt(output[\"Days\"]);\n }\n\n if (output[\"ExpiredObjectDeleteMarker\"] !== undefined) {\n contents.ExpiredObjectDeleteMarker = __parseBoolean(output[\"ExpiredObjectDeleteMarker\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlLifecycleRule = function deserializeAws_restXmlLifecycleRule(output, context) {\n var contents = {\n Expiration: undefined,\n ID: undefined,\n Prefix: undefined,\n Filter: undefined,\n Status: undefined,\n Transitions: undefined,\n NoncurrentVersionTransitions: undefined,\n NoncurrentVersionExpiration: undefined,\n AbortIncompleteMultipartUpload: undefined\n };\n\n if (output[\"Expiration\"] !== undefined) {\n contents.Expiration = deserializeAws_restXmlLifecycleExpiration(output[\"Expiration\"], context);\n }\n\n if (output[\"ID\"] !== undefined) {\n contents.ID = __expectString(output[\"ID\"]);\n }\n\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlLifecycleRuleFilter(output[\"Filter\"], context);\n }\n\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n\n if (output.Transition === \"\") {\n contents.Transitions = [];\n }\n\n if (output[\"Transition\"] !== undefined) {\n contents.Transitions = deserializeAws_restXmlTransitionList(__getArrayIfSingleItem(output[\"Transition\"]), context);\n }\n\n if (output.NoncurrentVersionTransition === \"\") {\n contents.NoncurrentVersionTransitions = [];\n }\n\n if (output[\"NoncurrentVersionTransition\"] !== undefined) {\n contents.NoncurrentVersionTransitions = deserializeAws_restXmlNoncurrentVersionTransitionList(__getArrayIfSingleItem(output[\"NoncurrentVersionTransition\"]), context);\n }\n\n if (output[\"NoncurrentVersionExpiration\"] !== undefined) {\n contents.NoncurrentVersionExpiration = deserializeAws_restXmlNoncurrentVersionExpiration(output[\"NoncurrentVersionExpiration\"], context);\n }\n\n if (output[\"AbortIncompleteMultipartUpload\"] !== undefined) {\n contents.AbortIncompleteMultipartUpload = deserializeAws_restXmlAbortIncompleteMultipartUpload(output[\"AbortIncompleteMultipartUpload\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlLifecycleRuleAndOperator = function deserializeAws_restXmlLifecycleRuleAndOperator(output, context) {\n var contents = {\n Prefix: undefined,\n Tags: undefined\n };\n\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n\n if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlLifecycleRuleFilter = function deserializeAws_restXmlLifecycleRuleFilter(output, context) {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: __expectString(output[\"Prefix\"])\n };\n }\n\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: deserializeAws_restXmlTag(output[\"Tag\"], context)\n };\n }\n\n if (output[\"And\"] !== undefined) {\n return {\n And: deserializeAws_restXmlLifecycleRuleAndOperator(output[\"And\"], context)\n };\n }\n\n return {\n $unknown: Object.entries(output)[0]\n };\n};\n\nvar deserializeAws_restXmlLifecycleRules = function deserializeAws_restXmlLifecycleRules(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlLifecycleRule(entry, context);\n });\n};\n\nvar deserializeAws_restXmlLoggingEnabled = function deserializeAws_restXmlLoggingEnabled(output, context) {\n var contents = {\n TargetBucket: undefined,\n TargetGrants: undefined,\n TargetPrefix: undefined\n };\n\n if (output[\"TargetBucket\"] !== undefined) {\n contents.TargetBucket = __expectString(output[\"TargetBucket\"]);\n }\n\n if (output.TargetGrants === \"\") {\n contents.TargetGrants = [];\n }\n\n if (output[\"TargetGrants\"] !== undefined && output[\"TargetGrants\"][\"Grant\"] !== undefined) {\n contents.TargetGrants = deserializeAws_restXmlTargetGrants(__getArrayIfSingleItem(output[\"TargetGrants\"][\"Grant\"]), context);\n }\n\n if (output[\"TargetPrefix\"] !== undefined) {\n contents.TargetPrefix = __expectString(output[\"TargetPrefix\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlMetrics = function deserializeAws_restXmlMetrics(output, context) {\n var contents = {\n Status: undefined,\n EventThreshold: undefined\n };\n\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n\n if (output[\"EventThreshold\"] !== undefined) {\n contents.EventThreshold = deserializeAws_restXmlReplicationTimeValue(output[\"EventThreshold\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlMetricsAndOperator = function deserializeAws_restXmlMetricsAndOperator(output, context) {\n var contents = {\n Prefix: undefined,\n Tags: undefined\n };\n\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n\n if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlMetricsConfiguration = function deserializeAws_restXmlMetricsConfiguration(output, context) {\n var contents = {\n Id: undefined,\n Filter: undefined\n };\n\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlMetricsFilter(output[\"Filter\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlMetricsConfigurationList = function deserializeAws_restXmlMetricsConfigurationList(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlMetricsConfiguration(entry, context);\n });\n};\n\nvar deserializeAws_restXmlMetricsFilter = function deserializeAws_restXmlMetricsFilter(output, context) {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: __expectString(output[\"Prefix\"])\n };\n }\n\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: deserializeAws_restXmlTag(output[\"Tag\"], context)\n };\n }\n\n if (output[\"And\"] !== undefined) {\n return {\n And: deserializeAws_restXmlMetricsAndOperator(output[\"And\"], context)\n };\n }\n\n return {\n $unknown: Object.entries(output)[0]\n };\n};\n\nvar deserializeAws_restXmlMultipartUpload = function deserializeAws_restXmlMultipartUpload(output, context) {\n var contents = {\n UploadId: undefined,\n Key: undefined,\n Initiated: undefined,\n StorageClass: undefined,\n Owner: undefined,\n Initiator: undefined\n };\n\n if (output[\"UploadId\"] !== undefined) {\n contents.UploadId = __expectString(output[\"UploadId\"]);\n }\n\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n\n if (output[\"Initiated\"] !== undefined) {\n contents.Initiated = new Date(output[\"Initiated\"]);\n }\n\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(output[\"StorageClass\"]);\n }\n\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(output[\"Owner\"], context);\n }\n\n if (output[\"Initiator\"] !== undefined) {\n contents.Initiator = deserializeAws_restXmlInitiator(output[\"Initiator\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlMultipartUploadList = function deserializeAws_restXmlMultipartUploadList(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlMultipartUpload(entry, context);\n });\n};\n\nvar deserializeAws_restXmlNoncurrentVersionExpiration = function deserializeAws_restXmlNoncurrentVersionExpiration(output, context) {\n var contents = {\n NoncurrentDays: undefined\n };\n\n if (output[\"NoncurrentDays\"] !== undefined) {\n contents.NoncurrentDays = parseInt(output[\"NoncurrentDays\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlNoncurrentVersionTransition = function deserializeAws_restXmlNoncurrentVersionTransition(output, context) {\n var contents = {\n NoncurrentDays: undefined,\n StorageClass: undefined\n };\n\n if (output[\"NoncurrentDays\"] !== undefined) {\n contents.NoncurrentDays = parseInt(output[\"NoncurrentDays\"]);\n }\n\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(output[\"StorageClass\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlNoncurrentVersionTransitionList = function deserializeAws_restXmlNoncurrentVersionTransitionList(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlNoncurrentVersionTransition(entry, context);\n });\n};\n\nvar deserializeAws_restXmlNotificationConfigurationFilter = function deserializeAws_restXmlNotificationConfigurationFilter(output, context) {\n var contents = {\n Key: undefined\n };\n\n if (output[\"S3Key\"] !== undefined) {\n contents.Key = deserializeAws_restXmlS3KeyFilter(output[\"S3Key\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXml_Object = function deserializeAws_restXml_Object(output, context) {\n var contents = {\n Key: undefined,\n LastModified: undefined,\n ETag: undefined,\n Size: undefined,\n StorageClass: undefined,\n Owner: undefined\n };\n\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = __expectString(output[\"ETag\"]);\n }\n\n if (output[\"Size\"] !== undefined) {\n contents.Size = parseInt(output[\"Size\"]);\n }\n\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(output[\"StorageClass\"]);\n }\n\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(output[\"Owner\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlObjectList = function deserializeAws_restXmlObjectList(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXml_Object(entry, context);\n });\n};\n\nvar deserializeAws_restXmlObjectLockConfiguration = function deserializeAws_restXmlObjectLockConfiguration(output, context) {\n var contents = {\n ObjectLockEnabled: undefined,\n Rule: undefined\n };\n\n if (output[\"ObjectLockEnabled\"] !== undefined) {\n contents.ObjectLockEnabled = __expectString(output[\"ObjectLockEnabled\"]);\n }\n\n if (output[\"Rule\"] !== undefined) {\n contents.Rule = deserializeAws_restXmlObjectLockRule(output[\"Rule\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlObjectLockLegalHold = function deserializeAws_restXmlObjectLockLegalHold(output, context) {\n var contents = {\n Status: undefined\n };\n\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlObjectLockRetention = function deserializeAws_restXmlObjectLockRetention(output, context) {\n var contents = {\n Mode: undefined,\n RetainUntilDate: undefined\n };\n\n if (output[\"Mode\"] !== undefined) {\n contents.Mode = __expectString(output[\"Mode\"]);\n }\n\n if (output[\"RetainUntilDate\"] !== undefined) {\n contents.RetainUntilDate = new Date(output[\"RetainUntilDate\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlObjectLockRule = function deserializeAws_restXmlObjectLockRule(output, context) {\n var contents = {\n DefaultRetention: undefined\n };\n\n if (output[\"DefaultRetention\"] !== undefined) {\n contents.DefaultRetention = deserializeAws_restXmlDefaultRetention(output[\"DefaultRetention\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlObjectVersion = function deserializeAws_restXmlObjectVersion(output, context) {\n var contents = {\n ETag: undefined,\n Size: undefined,\n StorageClass: undefined,\n Key: undefined,\n VersionId: undefined,\n IsLatest: undefined,\n LastModified: undefined,\n Owner: undefined\n };\n\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = __expectString(output[\"ETag\"]);\n }\n\n if (output[\"Size\"] !== undefined) {\n contents.Size = parseInt(output[\"Size\"]);\n }\n\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(output[\"StorageClass\"]);\n }\n\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = __expectString(output[\"VersionId\"]);\n }\n\n if (output[\"IsLatest\"] !== undefined) {\n contents.IsLatest = __parseBoolean(output[\"IsLatest\"]);\n }\n\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(output[\"Owner\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlObjectVersionList = function deserializeAws_restXmlObjectVersionList(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlObjectVersion(entry, context);\n });\n};\n\nvar deserializeAws_restXmlOwner = function deserializeAws_restXmlOwner(output, context) {\n var contents = {\n DisplayName: undefined,\n ID: undefined\n };\n\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = __expectString(output[\"DisplayName\"]);\n }\n\n if (output[\"ID\"] !== undefined) {\n contents.ID = __expectString(output[\"ID\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlOwnershipControls = function deserializeAws_restXmlOwnershipControls(output, context) {\n var contents = {\n Rules: undefined\n };\n\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n\n if (output[\"Rule\"] !== undefined) {\n contents.Rules = deserializeAws_restXmlOwnershipControlsRules(__getArrayIfSingleItem(output[\"Rule\"]), context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlOwnershipControlsRule = function deserializeAws_restXmlOwnershipControlsRule(output, context) {\n var contents = {\n ObjectOwnership: undefined\n };\n\n if (output[\"ObjectOwnership\"] !== undefined) {\n contents.ObjectOwnership = __expectString(output[\"ObjectOwnership\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlOwnershipControlsRules = function deserializeAws_restXmlOwnershipControlsRules(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlOwnershipControlsRule(entry, context);\n });\n};\n\nvar deserializeAws_restXmlPart = function deserializeAws_restXmlPart(output, context) {\n var contents = {\n PartNumber: undefined,\n LastModified: undefined,\n ETag: undefined,\n Size: undefined\n };\n\n if (output[\"PartNumber\"] !== undefined) {\n contents.PartNumber = parseInt(output[\"PartNumber\"]);\n }\n\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = __expectString(output[\"ETag\"]);\n }\n\n if (output[\"Size\"] !== undefined) {\n contents.Size = parseInt(output[\"Size\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlParts = function deserializeAws_restXmlParts(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlPart(entry, context);\n });\n};\n\nvar deserializeAws_restXmlPolicyStatus = function deserializeAws_restXmlPolicyStatus(output, context) {\n var contents = {\n IsPublic: undefined\n };\n\n if (output[\"IsPublic\"] !== undefined) {\n contents.IsPublic = __parseBoolean(output[\"IsPublic\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlProgress = function deserializeAws_restXmlProgress(output, context) {\n var contents = {\n BytesScanned: undefined,\n BytesProcessed: undefined,\n BytesReturned: undefined\n };\n\n if (output[\"BytesScanned\"] !== undefined) {\n contents.BytesScanned = parseInt(output[\"BytesScanned\"]);\n }\n\n if (output[\"BytesProcessed\"] !== undefined) {\n contents.BytesProcessed = parseInt(output[\"BytesProcessed\"]);\n }\n\n if (output[\"BytesReturned\"] !== undefined) {\n contents.BytesReturned = parseInt(output[\"BytesReturned\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlProgressEvent = function deserializeAws_restXmlProgressEvent(output, context) {\n var contents = {\n Details: undefined\n };\n\n if (output[\"Details\"] !== undefined) {\n contents.Details = deserializeAws_restXmlProgress(output[\"Details\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlPublicAccessBlockConfiguration = function deserializeAws_restXmlPublicAccessBlockConfiguration(output, context) {\n var contents = {\n BlockPublicAcls: undefined,\n IgnorePublicAcls: undefined,\n BlockPublicPolicy: undefined,\n RestrictPublicBuckets: undefined\n };\n\n if (output[\"BlockPublicAcls\"] !== undefined) {\n contents.BlockPublicAcls = __parseBoolean(output[\"BlockPublicAcls\"]);\n }\n\n if (output[\"IgnorePublicAcls\"] !== undefined) {\n contents.IgnorePublicAcls = __parseBoolean(output[\"IgnorePublicAcls\"]);\n }\n\n if (output[\"BlockPublicPolicy\"] !== undefined) {\n contents.BlockPublicPolicy = __parseBoolean(output[\"BlockPublicPolicy\"]);\n }\n\n if (output[\"RestrictPublicBuckets\"] !== undefined) {\n contents.RestrictPublicBuckets = __parseBoolean(output[\"RestrictPublicBuckets\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlQueueConfiguration = function deserializeAws_restXmlQueueConfiguration(output, context) {\n var contents = {\n Id: undefined,\n QueueArn: undefined,\n Events: undefined,\n Filter: undefined\n };\n\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n\n if (output[\"Queue\"] !== undefined) {\n contents.QueueArn = __expectString(output[\"Queue\"]);\n }\n\n if (output.Event === \"\") {\n contents.Events = [];\n }\n\n if (output[\"Event\"] !== undefined) {\n contents.Events = deserializeAws_restXmlEventList(__getArrayIfSingleItem(output[\"Event\"]), context);\n }\n\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlNotificationConfigurationFilter(output[\"Filter\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlQueueConfigurationList = function deserializeAws_restXmlQueueConfigurationList(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlQueueConfiguration(entry, context);\n });\n};\n\nvar deserializeAws_restXmlRecordsEvent = function deserializeAws_restXmlRecordsEvent(output, context) {\n var contents = {\n Payload: undefined\n };\n\n if (output[\"Payload\"] !== undefined) {\n contents.Payload = context.base64Decoder(output[\"Payload\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlRedirect = function deserializeAws_restXmlRedirect(output, context) {\n var contents = {\n HostName: undefined,\n HttpRedirectCode: undefined,\n Protocol: undefined,\n ReplaceKeyPrefixWith: undefined,\n ReplaceKeyWith: undefined\n };\n\n if (output[\"HostName\"] !== undefined) {\n contents.HostName = __expectString(output[\"HostName\"]);\n }\n\n if (output[\"HttpRedirectCode\"] !== undefined) {\n contents.HttpRedirectCode = __expectString(output[\"HttpRedirectCode\"]);\n }\n\n if (output[\"Protocol\"] !== undefined) {\n contents.Protocol = __expectString(output[\"Protocol\"]);\n }\n\n if (output[\"ReplaceKeyPrefixWith\"] !== undefined) {\n contents.ReplaceKeyPrefixWith = __expectString(output[\"ReplaceKeyPrefixWith\"]);\n }\n\n if (output[\"ReplaceKeyWith\"] !== undefined) {\n contents.ReplaceKeyWith = __expectString(output[\"ReplaceKeyWith\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlRedirectAllRequestsTo = function deserializeAws_restXmlRedirectAllRequestsTo(output, context) {\n var contents = {\n HostName: undefined,\n Protocol: undefined\n };\n\n if (output[\"HostName\"] !== undefined) {\n contents.HostName = __expectString(output[\"HostName\"]);\n }\n\n if (output[\"Protocol\"] !== undefined) {\n contents.Protocol = __expectString(output[\"Protocol\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlReplicaModifications = function deserializeAws_restXmlReplicaModifications(output, context) {\n var contents = {\n Status: undefined\n };\n\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlReplicationConfiguration = function deserializeAws_restXmlReplicationConfiguration(output, context) {\n var contents = {\n Role: undefined,\n Rules: undefined\n };\n\n if (output[\"Role\"] !== undefined) {\n contents.Role = __expectString(output[\"Role\"]);\n }\n\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n\n if (output[\"Rule\"] !== undefined) {\n contents.Rules = deserializeAws_restXmlReplicationRules(__getArrayIfSingleItem(output[\"Rule\"]), context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlReplicationRule = function deserializeAws_restXmlReplicationRule(output, context) {\n var contents = {\n ID: undefined,\n Priority: undefined,\n Prefix: undefined,\n Filter: undefined,\n Status: undefined,\n SourceSelectionCriteria: undefined,\n ExistingObjectReplication: undefined,\n Destination: undefined,\n DeleteMarkerReplication: undefined\n };\n\n if (output[\"ID\"] !== undefined) {\n contents.ID = __expectString(output[\"ID\"]);\n }\n\n if (output[\"Priority\"] !== undefined) {\n contents.Priority = parseInt(output[\"Priority\"]);\n }\n\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlReplicationRuleFilter(output[\"Filter\"], context);\n }\n\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n\n if (output[\"SourceSelectionCriteria\"] !== undefined) {\n contents.SourceSelectionCriteria = deserializeAws_restXmlSourceSelectionCriteria(output[\"SourceSelectionCriteria\"], context);\n }\n\n if (output[\"ExistingObjectReplication\"] !== undefined) {\n contents.ExistingObjectReplication = deserializeAws_restXmlExistingObjectReplication(output[\"ExistingObjectReplication\"], context);\n }\n\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = deserializeAws_restXmlDestination(output[\"Destination\"], context);\n }\n\n if (output[\"DeleteMarkerReplication\"] !== undefined) {\n contents.DeleteMarkerReplication = deserializeAws_restXmlDeleteMarkerReplication(output[\"DeleteMarkerReplication\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlReplicationRuleAndOperator = function deserializeAws_restXmlReplicationRuleAndOperator(output, context) {\n var contents = {\n Prefix: undefined,\n Tags: undefined\n };\n\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n\n if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlReplicationRuleFilter = function deserializeAws_restXmlReplicationRuleFilter(output, context) {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: __expectString(output[\"Prefix\"])\n };\n }\n\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: deserializeAws_restXmlTag(output[\"Tag\"], context)\n };\n }\n\n if (output[\"And\"] !== undefined) {\n return {\n And: deserializeAws_restXmlReplicationRuleAndOperator(output[\"And\"], context)\n };\n }\n\n return {\n $unknown: Object.entries(output)[0]\n };\n};\n\nvar deserializeAws_restXmlReplicationRules = function deserializeAws_restXmlReplicationRules(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlReplicationRule(entry, context);\n });\n};\n\nvar deserializeAws_restXmlReplicationTime = function deserializeAws_restXmlReplicationTime(output, context) {\n var contents = {\n Status: undefined,\n Time: undefined\n };\n\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n\n if (output[\"Time\"] !== undefined) {\n contents.Time = deserializeAws_restXmlReplicationTimeValue(output[\"Time\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlReplicationTimeValue = function deserializeAws_restXmlReplicationTimeValue(output, context) {\n var contents = {\n Minutes: undefined\n };\n\n if (output[\"Minutes\"] !== undefined) {\n contents.Minutes = parseInt(output[\"Minutes\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlRoutingRule = function deserializeAws_restXmlRoutingRule(output, context) {\n var contents = {\n Condition: undefined,\n Redirect: undefined\n };\n\n if (output[\"Condition\"] !== undefined) {\n contents.Condition = deserializeAws_restXmlCondition(output[\"Condition\"], context);\n }\n\n if (output[\"Redirect\"] !== undefined) {\n contents.Redirect = deserializeAws_restXmlRedirect(output[\"Redirect\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlRoutingRules = function deserializeAws_restXmlRoutingRules(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlRoutingRule(entry, context);\n });\n};\n\nvar deserializeAws_restXmlS3KeyFilter = function deserializeAws_restXmlS3KeyFilter(output, context) {\n var contents = {\n FilterRules: undefined\n };\n\n if (output.FilterRule === \"\") {\n contents.FilterRules = [];\n }\n\n if (output[\"FilterRule\"] !== undefined) {\n contents.FilterRules = deserializeAws_restXmlFilterRuleList(__getArrayIfSingleItem(output[\"FilterRule\"]), context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlSelectObjectContentEventStream = function deserializeAws_restXmlSelectObjectContentEventStream(output, context) {\n if (output[\"Records\"] !== undefined) {\n return {\n Records: deserializeAws_restXmlRecordsEvent(output[\"Records\"], context)\n };\n }\n\n if (output[\"Stats\"] !== undefined) {\n return {\n Stats: deserializeAws_restXmlStatsEvent(output[\"Stats\"], context)\n };\n }\n\n if (output[\"Progress\"] !== undefined) {\n return {\n Progress: deserializeAws_restXmlProgressEvent(output[\"Progress\"], context)\n };\n }\n\n if (output[\"Cont\"] !== undefined) {\n return {\n Cont: deserializeAws_restXmlContinuationEvent(output[\"Cont\"], context)\n };\n }\n\n if (output[\"End\"] !== undefined) {\n return {\n End: deserializeAws_restXmlEndEvent(output[\"End\"], context)\n };\n }\n\n return {\n $unknown: Object.entries(output)[0]\n };\n};\n\nvar deserializeAws_restXmlServerSideEncryptionByDefault = function deserializeAws_restXmlServerSideEncryptionByDefault(output, context) {\n var contents = {\n SSEAlgorithm: undefined,\n KMSMasterKeyID: undefined\n };\n\n if (output[\"SSEAlgorithm\"] !== undefined) {\n contents.SSEAlgorithm = __expectString(output[\"SSEAlgorithm\"]);\n }\n\n if (output[\"KMSMasterKeyID\"] !== undefined) {\n contents.KMSMasterKeyID = __expectString(output[\"KMSMasterKeyID\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlServerSideEncryptionConfiguration = function deserializeAws_restXmlServerSideEncryptionConfiguration(output, context) {\n var contents = {\n Rules: undefined\n };\n\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n\n if (output[\"Rule\"] !== undefined) {\n contents.Rules = deserializeAws_restXmlServerSideEncryptionRules(__getArrayIfSingleItem(output[\"Rule\"]), context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlServerSideEncryptionRule = function deserializeAws_restXmlServerSideEncryptionRule(output, context) {\n var contents = {\n ApplyServerSideEncryptionByDefault: undefined,\n BucketKeyEnabled: undefined\n };\n\n if (output[\"ApplyServerSideEncryptionByDefault\"] !== undefined) {\n contents.ApplyServerSideEncryptionByDefault = deserializeAws_restXmlServerSideEncryptionByDefault(output[\"ApplyServerSideEncryptionByDefault\"], context);\n }\n\n if (output[\"BucketKeyEnabled\"] !== undefined) {\n contents.BucketKeyEnabled = __parseBoolean(output[\"BucketKeyEnabled\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlServerSideEncryptionRules = function deserializeAws_restXmlServerSideEncryptionRules(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlServerSideEncryptionRule(entry, context);\n });\n};\n\nvar deserializeAws_restXmlSourceSelectionCriteria = function deserializeAws_restXmlSourceSelectionCriteria(output, context) {\n var contents = {\n SseKmsEncryptedObjects: undefined,\n ReplicaModifications: undefined\n };\n\n if (output[\"SseKmsEncryptedObjects\"] !== undefined) {\n contents.SseKmsEncryptedObjects = deserializeAws_restXmlSseKmsEncryptedObjects(output[\"SseKmsEncryptedObjects\"], context);\n }\n\n if (output[\"ReplicaModifications\"] !== undefined) {\n contents.ReplicaModifications = deserializeAws_restXmlReplicaModifications(output[\"ReplicaModifications\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlSSEKMS = function deserializeAws_restXmlSSEKMS(output, context) {\n var contents = {\n KeyId: undefined\n };\n\n if (output[\"KeyId\"] !== undefined) {\n contents.KeyId = __expectString(output[\"KeyId\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlSseKmsEncryptedObjects = function deserializeAws_restXmlSseKmsEncryptedObjects(output, context) {\n var contents = {\n Status: undefined\n };\n\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlSSES3 = function deserializeAws_restXmlSSES3(output, context) {\n var contents = {};\n return contents;\n};\n\nvar deserializeAws_restXmlStats = function deserializeAws_restXmlStats(output, context) {\n var contents = {\n BytesScanned: undefined,\n BytesProcessed: undefined,\n BytesReturned: undefined\n };\n\n if (output[\"BytesScanned\"] !== undefined) {\n contents.BytesScanned = parseInt(output[\"BytesScanned\"]);\n }\n\n if (output[\"BytesProcessed\"] !== undefined) {\n contents.BytesProcessed = parseInt(output[\"BytesProcessed\"]);\n }\n\n if (output[\"BytesReturned\"] !== undefined) {\n contents.BytesReturned = parseInt(output[\"BytesReturned\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlStatsEvent = function deserializeAws_restXmlStatsEvent(output, context) {\n var contents = {\n Details: undefined\n };\n\n if (output[\"Details\"] !== undefined) {\n contents.Details = deserializeAws_restXmlStats(output[\"Details\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlStorageClassAnalysis = function deserializeAws_restXmlStorageClassAnalysis(output, context) {\n var contents = {\n DataExport: undefined\n };\n\n if (output[\"DataExport\"] !== undefined) {\n contents.DataExport = deserializeAws_restXmlStorageClassAnalysisDataExport(output[\"DataExport\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlStorageClassAnalysisDataExport = function deserializeAws_restXmlStorageClassAnalysisDataExport(output, context) {\n var contents = {\n OutputSchemaVersion: undefined,\n Destination: undefined\n };\n\n if (output[\"OutputSchemaVersion\"] !== undefined) {\n contents.OutputSchemaVersion = __expectString(output[\"OutputSchemaVersion\"]);\n }\n\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = deserializeAws_restXmlAnalyticsExportDestination(output[\"Destination\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlTag = function deserializeAws_restXmlTag(output, context) {\n var contents = {\n Key: undefined,\n Value: undefined\n };\n\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n\n if (output[\"Value\"] !== undefined) {\n contents.Value = __expectString(output[\"Value\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlTagSet = function deserializeAws_restXmlTagSet(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlTag(entry, context);\n });\n};\n\nvar deserializeAws_restXmlTargetGrant = function deserializeAws_restXmlTargetGrant(output, context) {\n var contents = {\n Grantee: undefined,\n Permission: undefined\n };\n\n if (output[\"Grantee\"] !== undefined) {\n contents.Grantee = deserializeAws_restXmlGrantee(output[\"Grantee\"], context);\n }\n\n if (output[\"Permission\"] !== undefined) {\n contents.Permission = __expectString(output[\"Permission\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlTargetGrants = function deserializeAws_restXmlTargetGrants(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlTargetGrant(entry, context);\n });\n};\n\nvar deserializeAws_restXmlTiering = function deserializeAws_restXmlTiering(output, context) {\n var contents = {\n Days: undefined,\n AccessTier: undefined\n };\n\n if (output[\"Days\"] !== undefined) {\n contents.Days = parseInt(output[\"Days\"]);\n }\n\n if (output[\"AccessTier\"] !== undefined) {\n contents.AccessTier = __expectString(output[\"AccessTier\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlTieringList = function deserializeAws_restXmlTieringList(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlTiering(entry, context);\n });\n};\n\nvar deserializeAws_restXmlTopicConfiguration = function deserializeAws_restXmlTopicConfiguration(output, context) {\n var contents = {\n Id: undefined,\n TopicArn: undefined,\n Events: undefined,\n Filter: undefined\n };\n\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n\n if (output[\"Topic\"] !== undefined) {\n contents.TopicArn = __expectString(output[\"Topic\"]);\n }\n\n if (output.Event === \"\") {\n contents.Events = [];\n }\n\n if (output[\"Event\"] !== undefined) {\n contents.Events = deserializeAws_restXmlEventList(__getArrayIfSingleItem(output[\"Event\"]), context);\n }\n\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlNotificationConfigurationFilter(output[\"Filter\"], context);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlTopicConfigurationList = function deserializeAws_restXmlTopicConfigurationList(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlTopicConfiguration(entry, context);\n });\n};\n\nvar deserializeAws_restXmlTransition = function deserializeAws_restXmlTransition(output, context) {\n var contents = {\n Date: undefined,\n Days: undefined,\n StorageClass: undefined\n };\n\n if (output[\"Date\"] !== undefined) {\n contents.Date = new Date(output[\"Date\"]);\n }\n\n if (output[\"Days\"] !== undefined) {\n contents.Days = parseInt(output[\"Days\"]);\n }\n\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(output[\"StorageClass\"]);\n }\n\n return contents;\n};\n\nvar deserializeAws_restXmlTransitionList = function deserializeAws_restXmlTransitionList(output, context) {\n return (output || []).filter(function (e) {\n return e != null;\n }).map(function (entry) {\n if (entry === null) {\n return null;\n }\n\n return deserializeAws_restXmlTransition(entry, context);\n });\n};\n\nvar deserializeMetadata = function deserializeMetadata(output) {\n var _a;\n\n return {\n httpStatusCode: output.statusCode,\n requestId: (_a = output.headers[\"x-amzn-requestid\"]) !== null && _a !== void 0 ? _a : output.headers[\"x-amzn-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n };\n}; // Collect low-level response body stream to Uint8Array.\n\n\nvar collectBody = function collectBody(streamBody, context) {\n if (streamBody === void 0) {\n streamBody = new Uint8Array();\n }\n\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n}; // Encode Uint8Array data into string with utf-8.\n\n\nvar collectBodyString = function collectBodyString(streamBody, context) {\n return collectBody(streamBody, context).then(function (body) {\n return context.utf8Encoder(body);\n });\n};\n\nvar isSerializableHeaderValue = function isSerializableHeaderValue(value) {\n return value !== undefined && value !== null && value !== \"\" && (!Object.getOwnPropertyNames(value).includes(\"length\") || value.length != 0) && (!Object.getOwnPropertyNames(value).includes(\"size\") || value.size != 0);\n};\n\nvar parseBody = function parseBody(streamBody, context) {\n return collectBodyString(streamBody, context).then(function (encoded) {\n if (encoded.length) {\n var parsedObj = xmlParse(encoded, {\n attributeNamePrefix: \"\",\n ignoreAttributes: false,\n parseNodeValue: false,\n trimValues: false,\n tagValueProcessor: function tagValueProcessor(val, tagName) {\n return val.trim() === \"\" ? \"\" : decodeHTML(val);\n }\n });\n var textNodeName = \"#text\";\n var key = Object.keys(parsedObj)[0];\n var parsedObjToReturn = parsedObj[key];\n\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n\n return __getValueFromTextNode(parsedObjToReturn);\n }\n\n return {};\n });\n};\n\nvar loadRestXmlErrorCode = function loadRestXmlErrorCode(output, data) {\n if (data.Code !== undefined) {\n return data.Code;\n }\n\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n\n return \"\";\n};","export var isClient = typeof window === 'object';\nexport var on = function on(obj) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n return obj.addEventListener.apply(obj, args);\n};\nexport var off = function off(obj) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n return obj.removeEventListener.apply(obj, args);\n};\nexport var isDeepEqual = require('fast-deep-equal/react');","export var escapeUri = function escapeUri(uri) {\n // AWS percent-encodes some extra non-standard characters in a URI\n return encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\n};\n\nvar hexEncode = function hexEncode(c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n};","export * from \"./escape-uri\";\nexport * from \"./escape-uri-path\";","/*!\n* screenfull\n* v5.0.2 - 2020-02-13\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n 'use strict';\n\n var document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n var isCommonjs = typeof module !== 'undefined' && module.exports;\n\n var fn = function () {\n var val;\n var fnMap = [['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror'], // New WebKit\n ['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror'], // Old WebKit\n ['webkitRequestFullScreen', 'webkitCancelFullScreen', 'webkitCurrentFullScreenElement', 'webkitCancelFullScreen', 'webkitfullscreenchange', 'webkitfullscreenerror'], ['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozFullScreenEnabled', 'mozfullscreenchange', 'mozfullscreenerror'], ['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'msFullscreenEnabled', 'MSFullscreenChange', 'MSFullscreenError']];\n var i = 0;\n var l = fnMap.length;\n var ret = {};\n\n for (; i < l; i++) {\n val = fnMap[i];\n\n if (val && val[1] in document) {\n for (i = 0; i < val.length; i++) {\n ret[fnMap[0][i]] = val[i];\n }\n\n return ret;\n }\n }\n\n return false;\n }();\n\n var eventNameMap = {\n change: fn.fullscreenchange,\n error: fn.fullscreenerror\n };\n var screenfull = {\n request: function request(element) {\n return new Promise(function (resolve, reject) {\n var onFullScreenEntered = function () {\n this.off('change', onFullScreenEntered);\n resolve();\n }.bind(this);\n\n this.on('change', onFullScreenEntered);\n element = element || document.documentElement;\n var returnPromise = element[fn.requestFullscreen]();\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenEntered).catch(reject);\n }\n }.bind(this));\n },\n exit: function exit() {\n return new Promise(function (resolve, reject) {\n if (!this.isFullscreen) {\n resolve();\n return;\n }\n\n var onFullScreenExit = function () {\n this.off('change', onFullScreenExit);\n resolve();\n }.bind(this);\n\n this.on('change', onFullScreenExit);\n var returnPromise = document[fn.exitFullscreen]();\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenExit).catch(reject);\n }\n }.bind(this));\n },\n toggle: function toggle(element) {\n return this.isFullscreen ? this.exit() : this.request(element);\n },\n onchange: function onchange(callback) {\n this.on('change', callback);\n },\n onerror: function onerror(callback) {\n this.on('error', callback);\n },\n on: function on(event, callback) {\n var eventName = eventNameMap[event];\n\n if (eventName) {\n document.addEventListener(eventName, callback, false);\n }\n },\n off: function off(event, callback) {\n var eventName = eventNameMap[event];\n\n if (eventName) {\n document.removeEventListener(eventName, callback, false);\n }\n },\n raw: fn\n };\n\n if (!fn) {\n if (isCommonjs) {\n module.exports = {\n isEnabled: false\n };\n } else {\n window.screenfull = {\n isEnabled: false\n };\n }\n\n return;\n }\n\n Object.defineProperties(screenfull, {\n isFullscreen: {\n get: function get() {\n return Boolean(document[fn.fullscreenElement]);\n }\n },\n element: {\n enumerable: true,\n get: function get() {\n return document[fn.fullscreenElement];\n }\n },\n isEnabled: {\n enumerable: true,\n get: function get() {\n // Coerce to boolean in case of old WebKit\n return Boolean(document[fn.fullscreenEnabled]);\n }\n }\n });\n\n if (isCommonjs) {\n module.exports = screenfull;\n } else {\n window.screenfull = screenfull;\n }\n})();",";\n\n(function (root, factory, undef) {\n if (typeof exports === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./lib-typedarrays\"), require(\"./enc-utf16\"), require(\"./enc-base64\"), require(\"./enc-base64url\"), require(\"./md5\"), require(\"./sha1\"), require(\"./sha256\"), require(\"./sha224\"), require(\"./sha512\"), require(\"./sha384\"), require(\"./sha3\"), require(\"./ripemd160\"), require(\"./hmac\"), require(\"./pbkdf2\"), require(\"./evpkdf\"), require(\"./cipher-core\"), require(\"./mode-cfb\"), require(\"./mode-ctr\"), require(\"./mode-ctr-gladman\"), require(\"./mode-ofb\"), require(\"./mode-ecb\"), require(\"./pad-ansix923\"), require(\"./pad-iso10126\"), require(\"./pad-iso97971\"), require(\"./pad-zeropadding\"), require(\"./pad-nopadding\"), require(\"./format-hex\"), require(\"./aes\"), require(\"./tripledes\"), require(\"./rc4\"), require(\"./rabbit\"), require(\"./rabbit-legacy\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./x64-core\", \"./lib-typedarrays\", \"./enc-utf16\", \"./enc-base64\", \"./enc-base64url\", \"./md5\", \"./sha1\", \"./sha256\", \"./sha224\", \"./sha512\", \"./sha384\", \"./sha3\", \"./ripemd160\", \"./hmac\", \"./pbkdf2\", \"./evpkdf\", \"./cipher-core\", \"./mode-cfb\", \"./mode-ctr\", \"./mode-ctr-gladman\", \"./mode-ofb\", \"./mode-ecb\", \"./pad-ansix923\", \"./pad-iso10126\", \"./pad-iso97971\", \"./pad-zeropadding\", \"./pad-nopadding\", \"./format-hex\", \"./aes\", \"./tripledes\", \"./rc4\", \"./rabbit\", \"./rabbit-legacy\"], factory);\n } else {\n // Global (browser)\n root.CryptoJS = factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n return CryptoJS;\n});","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min; // 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).\n\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n }\n\n return it;\n};","var anObject = require('../internals/an-object');\n\nvar defineProperties = require('../internals/object-define-properties');\n\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar html = require('../internals/html');\n\nvar documentCreateElement = require('../internals/document-create-element');\n\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 EmptyConstructor() {\n /* empty */\n};\n\nvar scriptTag = function scriptTag(content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n}; // Create object with fake `null` prototype: use ActiveX Object with cleared prototype\n\n\nvar NullProtoObjectViaActiveX = function NullProtoObjectViaActiveX(activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n\n return temp;\n}; // Create object with fake `null` prototype: use iframe Object with cleared prototype\n\n\nvar NullProtoObjectViaIFrame = function NullProtoObjectViaIFrame() {\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); // https://github.com/zloirock/core-js/issues/475\n\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}; // 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\n\n\nvar activeXDocument;\n\nvar _NullProtoObject = function NullProtoObject() {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) {\n /* ignore */\n }\n\n _NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n\n while (length--) {\n delete _NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n }\n\n return _NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true; // `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null; // add \"__proto__\" for Object.getPrototypeOf polyfill\n\n result[IE_PROTO] = O;\n } else result = _NullProtoObject();\n\n return Properties === undefined ? result : defineProperties(result, Properties);\n};","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar create = require('../internals/object-create');\n\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype; // Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\n\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n} // add a key to Array.prototype[@@unscopables]\n\n\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};","'use strict';\n\nvar TYPED_OK = typeof Uint8Array !== 'undefined' && typeof Uint16Array !== 'undefined' && typeof Int32Array !== 'undefined';\n\nfunction _has(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexports.assign = function (obj\n/*from1, from2, from3, ...*/\n) {\n var sources = Array.prototype.slice.call(arguments, 1);\n\n while (sources.length) {\n var source = sources.shift();\n\n if (!source) {\n continue;\n }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (var p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n}; // reduce buffer size, avoiding mem copy\n\n\nexports.shrinkBuf = function (buf, size) {\n if (buf.length === size) {\n return buf;\n }\n\n if (buf.subarray) {\n return buf.subarray(0, size);\n }\n\n buf.length = size;\n return buf;\n};\n\nvar fnTyped = {\n arraySet: function arraySet(dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n return;\n } // Fallback to ordinary array\n\n\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function flattenChunks(chunks) {\n var i, l, len, pos, chunk, result; // calculate data length\n\n len = 0;\n\n for (i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n } // join chunks\n\n\n result = new Uint8Array(len);\n pos = 0;\n\n for (i = 0, l = chunks.length; i < l; i++) {\n chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n }\n};\nvar fnUntyped = {\n arraySet: function arraySet(dest, src, src_offs, len, dest_offs) {\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function flattenChunks(chunks) {\n return [].concat.apply([], chunks);\n }\n}; // Enable/Disable typed arrays use, for testing\n//\n\nexports.setTyped = function (on) {\n if (on) {\n exports.Buf8 = Uint8Array;\n exports.Buf16 = Uint16Array;\n exports.Buf32 = Int32Array;\n exports.assign(exports, fnTyped);\n } else {\n exports.Buf8 = Array;\n exports.Buf16 = Array;\n exports.Buf32 = Array;\n exports.assign(exports, fnUntyped);\n }\n};\n\nexports.setTyped(TYPED_OK);","import { __read } from \"tslib\";\nvar DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/;\nvar IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nvar DOTS_PATTERN = /\\.\\./;\nexport var DOT_PATTERN = /\\./;\nexport var S3_HOSTNAME_PATTERN = /^(.+\\.)?s3[.-]([a-z0-9-]+)\\./;\nvar S3_US_EAST_1_ALTNAME_PATTERN = /^s3(-external-1)?\\.amazonaws\\.com$/;\nvar AWS_PARTITION_SUFFIX = \"amazonaws.com\";\nexport var isBucketNameOptions = function isBucketNameOptions(options) {\n return typeof options.bucketName === \"string\";\n};\n/**\n * Get pseudo region from supplied region. For example, if supplied with `fips-us-west-2`, it returns `us-west-2`.\n * @internal\n */\n\nexport var getPseudoRegion = function getPseudoRegion(region) {\n return isFipsRegion(region) ? region.replace(/fips-|-fips/, \"\") : region;\n};\n/**\n * Determines whether a given string is DNS compliant per the rules outlined by\n * S3. Length, capitaization, and leading dot restrictions are enforced by the\n * DOMAIN_PATTERN regular expression.\n * @internal\n *\n * @see https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html\n */\n\nexport var isDnsCompatibleBucketName = function isDnsCompatibleBucketName(bucketName) {\n return DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);\n};\n\nvar getRegionalSuffix = function getRegionalSuffix(hostname) {\n var parts = hostname.match(S3_HOSTNAME_PATTERN);\n return [parts[2], hostname.replace(new RegExp(\"^\" + parts[0]), \"\")];\n};\n\nexport var getSuffix = function getSuffix(hostname) {\n return S3_US_EAST_1_ALTNAME_PATTERN.test(hostname) ? [\"us-east-1\", AWS_PARTITION_SUFFIX] : getRegionalSuffix(hostname);\n};\n/**\n * Infer region and hostname suffix from a complete hostname\n * @internal\n * @param hostname - Hostname\n * @returns [Region, Hostname suffix]\n */\n\nexport var getSuffixForArnEndpoint = function getSuffixForArnEndpoint(hostname) {\n return S3_US_EAST_1_ALTNAME_PATTERN.test(hostname) ? [hostname.replace(\".\" + AWS_PARTITION_SUFFIX, \"\"), AWS_PARTITION_SUFFIX] : getRegionalSuffix(hostname);\n};\nexport var validateArnEndpointOptions = function validateArnEndpointOptions(options) {\n if (options.pathStyleEndpoint) {\n throw new Error(\"Path-style S3 endpoint is not supported when bucket is an ARN\");\n }\n\n if (options.accelerateEndpoint) {\n throw new Error(\"Accelerate endpoint is not supported when bucket is an ARN\");\n }\n\n if (!options.tlsCompatible) {\n throw new Error(\"HTTPS is required when bucket is an ARN\");\n }\n};\nexport var validateService = function validateService(service) {\n if (service !== \"s3\" && service !== \"s3-outposts\" && service !== \"s3-object-lambda\") {\n throw new Error(\"Expect 's3' or 's3-outposts' or 's3-object-lambda' in ARN service component\");\n }\n};\nexport var validateS3Service = function validateS3Service(service) {\n if (service !== \"s3\") {\n throw new Error(\"Expect 's3' in Accesspoint ARN service component\");\n }\n};\nexport var validateOutpostService = function validateOutpostService(service) {\n if (service !== \"s3-outposts\") {\n throw new Error(\"Expect 's3-posts' in Outpost ARN service component\");\n }\n};\n/**\n * Validate partition inferred from ARN is the same to `options.clientPartition`.\n * @internal\n */\n\nexport var validatePartition = function validatePartition(partition, options) {\n if (partition !== options.clientPartition) {\n throw new Error(\"Partition in ARN is incompatible, got \\\"\" + partition + \"\\\" but expected \\\"\" + options.clientPartition + \"\\\"\");\n }\n};\n/**\n * validate region value inferred from ARN. If `options.useArnRegion` is set, it validates the region is not a FIPS\n * region. If `options.useArnRegion` is unset, it validates the region is equal to `options.clientRegion` or\n * `options.clientSigningRegion`.\n * @internal\n */\n\nexport var validateRegion = function validateRegion(region, options) {\n if (region === \"\") {\n throw new Error(\"ARN region is empty\");\n }\n\n if (isFipsRegion(options.clientRegion)) {\n if (!options.allowFipsRegion) {\n throw new Error(\"FIPS region is not supported\");\n } else if (!isEqualRegions(region, options.clientRegion)) {\n throw new Error(\"Client FIPS region \" + options.clientRegion + \" doesn't match region \" + region + \" in ARN\");\n }\n }\n\n if (!options.useArnRegion && !isEqualRegions(region, options.clientRegion) && !isEqualRegions(region, options.clientSigningRegion)) {\n throw new Error(\"Region in ARN is incompatible, got \" + region + \" but expected \" + options.clientRegion);\n }\n};\n/**\n *\n * @param region\n */\n\nexport var validateRegionalClient = function validateRegionalClient(region) {\n if ([\"s3-external-1\", \"aws-global\"].includes(getPseudoRegion(region))) {\n throw new Error(\"Client region \" + region + \" is not regional\");\n }\n};\n/**\n * @internal\n */\n\nexport var isFipsRegion = function isFipsRegion(region) {\n return region.startsWith(\"fips-\") || region.endsWith(\"-fips\");\n};\n\nvar isEqualRegions = function isEqualRegions(regionA, regionB) {\n return regionA === regionB || getPseudoRegion(regionA) === regionB || regionA === getPseudoRegion(regionB);\n};\n/**\n * Validate an account ID\n * @internal\n */\n\n\nexport var validateAccountId = function validateAccountId(accountId) {\n if (!/[0-9]{12}/.exec(accountId)) {\n throw new Error(\"Access point ARN accountID does not match regex '[0-9]{12}'\");\n }\n};\n/**\n * Validate a host label according to https://tools.ietf.org/html/rfc3986#section-3.2.2\n * @internal\n */\n\nexport var validateDNSHostLabel = function validateDNSHostLabel(label, options) {\n if (options === void 0) {\n options = {\n tlsCompatible: true\n };\n } // reference: https://tools.ietf.org/html/rfc3986#section-3.2.2\n\n\n if (label.length >= 64 || !/^[a-z0-9][a-z0-9.-]+[a-z0-9]$/.test(label) || /(\\d+\\.){3}\\d+/.test(label) || /[.-]{2}/.test(label) || (options === null || options === void 0 ? void 0 : options.tlsCompatible) && DOT_PATTERN.test(label)) {\n throw new Error(\"Invalid DNS label \" + label);\n }\n};\n/**\n * Validate and parse an Access Point ARN or Outposts ARN\n * @internal\n *\n * @param resource - The resource section of an ARN\n * @returns Access Point Name and optional Outpost ID.\n */\n\nexport var getArnResources = function getArnResources(resource) {\n var delimiter = resource.includes(\":\") ? \":\" : \"/\";\n\n var _a = __read(resource.split(delimiter)),\n resourceType = _a[0],\n rest = _a.slice(1);\n\n if (resourceType === \"accesspoint\") {\n // Parse accesspoint ARN\n if (rest.length !== 1 || rest[0] === \"\") {\n throw new Error(\"Access Point ARN should have one resource accesspoint\" + delimiter + \"{accesspointname}\");\n }\n\n return {\n accesspointName: rest[0]\n };\n } else if (resourceType === \"outpost\") {\n // Parse outpost ARN\n if (!rest[0] || rest[1] !== \"accesspoint\" || !rest[2] || rest.length !== 3) {\n throw new Error(\"Outpost ARN should have resource outpost\" + delimiter + \"{outpostId}\" + delimiter + \"accesspoint\" + delimiter + \"{accesspointName}\");\n }\n\n var _b = __read(rest, 3),\n outpostId = _b[0],\n _ = _b[1],\n accesspointName = _b[2];\n\n return {\n outpostId: outpostId,\n accesspointName: accesspointName\n };\n } else {\n throw new Error(\"ARN resource should begin with 'accesspoint\" + delimiter + \"' or 'outpost\" + delimiter + \"'\");\n }\n};\n/**\n * Throw if dual stack configuration is set to true.\n * @internal\n */\n\nexport var validateNoDualstack = function validateNoDualstack(dualstackEndpoint) {\n if (dualstackEndpoint) throw new Error(\"Dualstack endpoint is not supported with Outpost\");\n};\n/**\n * Validate region is not appended or prepended with a `fips-`\n * @internal\n */\n\nexport var validateNoFIPS = function validateNoFIPS(region) {\n if (isFipsRegion(region !== null && region !== void 0 ? region : \"\")) throw new Error(\"FIPS region is not supported with Outpost, got \" + region);\n};","import { __assign, __read } from \"tslib\";\nimport { DOT_PATTERN, getArnResources, getPseudoRegion, getSuffix, getSuffixForArnEndpoint, isBucketNameOptions, isDnsCompatibleBucketName, isFipsRegion, validateAccountId, validateArnEndpointOptions, validateDNSHostLabel, validateNoDualstack, validateNoFIPS, validateOutpostService, validatePartition, validateRegion, validateRegionalClient, validateS3Service, validateService } from \"./bucketHostnameUtils\";\nexport var bucketHostname = function bucketHostname(options) {\n var isCustomEndpoint = options.isCustomEndpoint,\n baseHostname = options.baseHostname,\n dualstackEndpoint = options.dualstackEndpoint,\n accelerateEndpoint = options.accelerateEndpoint;\n\n if (isCustomEndpoint) {\n if (dualstackEndpoint) throw new Error(\"Dualstack endpoint is not supported with custom endpoint\");\n if (accelerateEndpoint) throw new Error(\"Accelerate endpoint is not supported with custom endpoint\");\n }\n\n return isBucketNameOptions(options) ? // Construct endpoint when bucketName is a string referring to a bucket name\n getEndpointFromBucketName(__assign(__assign({}, options), {\n isCustomEndpoint: isCustomEndpoint\n })) : // Construct endpoint when bucketName is an ARN referring to an S3 resource like Access Point\n getEndpointFromArn(__assign(__assign({}, options), {\n isCustomEndpoint: isCustomEndpoint\n }));\n};\n\nvar getEndpointFromArn = function getEndpointFromArn(options) {\n var isCustomEndpoint = options.isCustomEndpoint,\n baseHostname = options.baseHostname,\n clientRegion = options.clientRegion;\n var hostnameSuffix = isCustomEndpoint ? baseHostname : getSuffixForArnEndpoint(baseHostname)[1];\n var pathStyleEndpoint = options.pathStyleEndpoint,\n _a = options.dualstackEndpoint,\n dualstackEndpoint = _a === void 0 ? false : _a,\n _b = options.accelerateEndpoint,\n accelerateEndpoint = _b === void 0 ? false : _b,\n _c = options.tlsCompatible,\n tlsCompatible = _c === void 0 ? true : _c,\n useArnRegion = options.useArnRegion,\n bucketName = options.bucketName,\n _d = options.clientPartition,\n clientPartition = _d === void 0 ? \"aws\" : _d,\n _e = options.clientSigningRegion,\n clientSigningRegion = _e === void 0 ? clientRegion : _e;\n validateArnEndpointOptions({\n pathStyleEndpoint: pathStyleEndpoint,\n accelerateEndpoint: accelerateEndpoint,\n tlsCompatible: tlsCompatible\n }); // Validate and parse the ARN supplied as a bucket name\n\n var service = bucketName.service,\n partition = bucketName.partition,\n accountId = bucketName.accountId,\n region = bucketName.region,\n resource = bucketName.resource;\n validateService(service);\n validatePartition(partition, {\n clientPartition: clientPartition\n });\n validateAccountId(accountId);\n validateRegionalClient(clientRegion);\n\n var _f = getArnResources(resource),\n accesspointName = _f.accesspointName,\n outpostId = _f.outpostId;\n\n var DNSHostLabel = accesspointName + \"-\" + accountId;\n validateDNSHostLabel(DNSHostLabel, {\n tlsCompatible: tlsCompatible\n });\n var endpointRegion = useArnRegion ? region : clientRegion;\n var signingRegion = useArnRegion ? region : clientSigningRegion;\n\n if (service === \"s3-object-lambda\") {\n validateRegion(region, {\n useArnRegion: useArnRegion,\n clientRegion: clientRegion,\n clientSigningRegion: clientSigningRegion,\n allowFipsRegion: true\n });\n validateNoDualstack(dualstackEndpoint);\n return {\n bucketEndpoint: true,\n hostname: DNSHostLabel + \".\" + service + (isFipsRegion(clientRegion) ? \"-fips\" : \"\") + \".\" + getPseudoRegion(endpointRegion) + \".\" + hostnameSuffix,\n signingRegion: signingRegion,\n signingService: service\n };\n } else if (outpostId) {\n // if this is an Outpost ARN\n validateRegion(region, {\n useArnRegion: useArnRegion,\n clientRegion: clientRegion,\n clientSigningRegion: clientSigningRegion\n });\n validateOutpostService(service);\n validateDNSHostLabel(outpostId, {\n tlsCompatible: tlsCompatible\n });\n validateNoDualstack(dualstackEndpoint);\n validateNoFIPS(endpointRegion);\n var hostnamePrefix_1 = DNSHostLabel + \".\" + outpostId;\n return {\n bucketEndpoint: true,\n hostname: \"\" + hostnamePrefix_1 + (isCustomEndpoint ? \"\" : \".s3-outposts.\" + endpointRegion) + \".\" + hostnameSuffix,\n signingRegion: signingRegion,\n signingService: \"s3-outposts\"\n };\n } // construct endpoint from Accesspoint ARN\n\n\n validateRegion(region, {\n useArnRegion: useArnRegion,\n clientRegion: clientRegion,\n clientSigningRegion: clientSigningRegion,\n allowFipsRegion: true\n });\n validateS3Service(service);\n var hostnamePrefix = \"\" + DNSHostLabel;\n return {\n bucketEndpoint: true,\n hostname: \"\" + hostnamePrefix + (isCustomEndpoint ? \"\" : \".s3-accesspoint\" + (isFipsRegion(clientRegion) ? \"-fips\" : \"\") + (dualstackEndpoint ? \".dualstack\" : \"\") + \".\" + getPseudoRegion(endpointRegion)) + \".\" + hostnameSuffix,\n signingRegion: signingRegion\n };\n};\n\nvar getEndpointFromBucketName = function getEndpointFromBucketName(_a) {\n var _b = _a.accelerateEndpoint,\n accelerateEndpoint = _b === void 0 ? false : _b,\n region = _a.clientRegion,\n baseHostname = _a.baseHostname,\n bucketName = _a.bucketName,\n _c = _a.dualstackEndpoint,\n dualstackEndpoint = _c === void 0 ? false : _c,\n _d = _a.pathStyleEndpoint,\n pathStyleEndpoint = _d === void 0 ? false : _d,\n _e = _a.tlsCompatible,\n tlsCompatible = _e === void 0 ? true : _e,\n _f = _a.isCustomEndpoint,\n isCustomEndpoint = _f === void 0 ? false : _f;\n\n var _g = __read(isCustomEndpoint ? [region, baseHostname] : getSuffix(baseHostname), 2),\n clientRegion = _g[0],\n hostnameSuffix = _g[1];\n\n if (pathStyleEndpoint || !isDnsCompatibleBucketName(bucketName) || tlsCompatible && DOT_PATTERN.test(bucketName)) {\n return {\n bucketEndpoint: false,\n hostname: dualstackEndpoint ? \"s3.dualstack.\" + clientRegion + \".\" + hostnameSuffix : baseHostname\n };\n }\n\n if (accelerateEndpoint) {\n baseHostname = \"s3-accelerate\" + (dualstackEndpoint ? \".dualstack\" : \"\") + \".\" + hostnameSuffix;\n } else if (dualstackEndpoint) {\n baseHostname = \"s3.dualstack.\" + clientRegion + \".\" + hostnameSuffix;\n }\n\n return {\n bucketEndpoint: true,\n hostname: bucketName + \".\" + baseHostname\n };\n};","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { parse as parseArn, validate as validateArn } from \"@aws-sdk/util-arn-parser\";\nimport { bucketHostname } from \"./bucketHostname\";\nimport { getPseudoRegion } from \"./bucketHostnameUtils\";\nexport var bucketEndpointMiddleware = function bucketEndpointMiddleware(options) {\n return function (next, context) {\n return function (args) {\n return __awaiter(void 0, void 0, void 0, function () {\n var bucketName, replaceBucketInPath, request, bucketArn, clientRegion, _a, _b, partition, _c, signingRegion, useArnRegion, _d, hostname, bucketEndpoint, modifiedSigningRegion, signingService, clientRegion, _e, _f, hostname, bucketEndpoint;\n\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n bucketName = args.input.Bucket;\n replaceBucketInPath = options.bucketEndpoint;\n request = args.request;\n if (!HttpRequest.isInstance(request)) return [3\n /*break*/\n , 8];\n if (!options.bucketEndpoint) return [3\n /*break*/\n , 1];\n request.hostname = bucketName;\n return [3\n /*break*/\n , 7];\n\n case 1:\n if (!validateArn(bucketName)) return [3\n /*break*/\n , 5];\n bucketArn = parseArn(bucketName);\n _a = getPseudoRegion;\n return [4\n /*yield*/\n , options.region()];\n\n case 2:\n clientRegion = _a.apply(void 0, [_g.sent()]);\n return [4\n /*yield*/\n , options.regionInfoProvider(clientRegion)];\n\n case 3:\n _b = _g.sent() || {}, partition = _b.partition, _c = _b.signingRegion, signingRegion = _c === void 0 ? clientRegion : _c;\n return [4\n /*yield*/\n , options.useArnRegion()];\n\n case 4:\n useArnRegion = _g.sent();\n _d = bucketHostname({\n bucketName: bucketArn,\n baseHostname: request.hostname,\n accelerateEndpoint: options.useAccelerateEndpoint,\n dualstackEndpoint: options.useDualstackEndpoint,\n pathStyleEndpoint: options.forcePathStyle,\n tlsCompatible: request.protocol === \"https:\",\n useArnRegion: useArnRegion,\n clientPartition: partition,\n clientSigningRegion: signingRegion,\n clientRegion: clientRegion,\n isCustomEndpoint: options.isCustomEndpoint\n }), hostname = _d.hostname, bucketEndpoint = _d.bucketEndpoint, modifiedSigningRegion = _d.signingRegion, signingService = _d.signingService; // If the request needs to use a region or service name inferred from ARN that different from client region, we\n // need to set them in the handler context so the signer will use them\n\n if (modifiedSigningRegion && modifiedSigningRegion !== signingRegion) {\n context[\"signing_region\"] = modifiedSigningRegion;\n }\n\n if (signingService && signingService !== \"s3\") {\n context[\"signing_service\"] = signingService;\n }\n\n request.hostname = hostname;\n replaceBucketInPath = bucketEndpoint;\n return [3\n /*break*/\n , 7];\n\n case 5:\n _e = getPseudoRegion;\n return [4\n /*yield*/\n , options.region()];\n\n case 6:\n clientRegion = _e.apply(void 0, [_g.sent()]);\n _f = bucketHostname({\n bucketName: bucketName,\n clientRegion: clientRegion,\n baseHostname: request.hostname,\n accelerateEndpoint: options.useAccelerateEndpoint,\n dualstackEndpoint: options.useDualstackEndpoint,\n pathStyleEndpoint: options.forcePathStyle,\n tlsCompatible: request.protocol === \"https:\",\n isCustomEndpoint: options.isCustomEndpoint\n }), hostname = _f.hostname, bucketEndpoint = _f.bucketEndpoint;\n request.hostname = hostname;\n replaceBucketInPath = bucketEndpoint;\n _g.label = 7;\n\n case 7:\n if (replaceBucketInPath) {\n request.path = request.path.replace(/^(\\/)?[^\\/]+/, \"\");\n\n if (request.path === \"\") {\n request.path = \"/\";\n }\n }\n\n _g.label = 8;\n\n case 8:\n return [2\n /*return*/\n , next(__assign(__assign({}, args), {\n request: request\n }))];\n }\n });\n });\n };\n };\n};\nexport var bucketEndpointMiddlewareOptions = {\n tags: [\"BUCKET_ENDPOINT\"],\n name: \"bucketEndpointMiddleware\",\n relation: \"before\",\n toMiddleware: \"hostHeaderMiddleware\",\n override: true\n};\nexport var getBucketEndpointPlugin = function getBucketEndpointPlugin(options) {\n return {\n applyToStack: function applyToStack(clientStack) {\n clientStack.addRelativeTo(bucketEndpointMiddleware(options), bucketEndpointMiddlewareOptions);\n }\n };\n};","import { __assign } from \"tslib\";\nexport function resolveBucketEndpointConfig(input) {\n var _a = input.bucketEndpoint,\n bucketEndpoint = _a === void 0 ? false : _a,\n _b = input.forcePathStyle,\n forcePathStyle = _b === void 0 ? false : _b,\n _c = input.useAccelerateEndpoint,\n useAccelerateEndpoint = _c === void 0 ? false : _c,\n _d = input.useDualstackEndpoint,\n useDualstackEndpoint = _d === void 0 ? false : _d,\n _e = input.useArnRegion,\n useArnRegion = _e === void 0 ? false : _e;\n return __assign(__assign({}, input), {\n bucketEndpoint: bucketEndpoint,\n forcePathStyle: forcePathStyle,\n useAccelerateEndpoint: useAccelerateEndpoint,\n useDualstackEndpoint: useDualstackEndpoint,\n useArnRegion: typeof useArnRegion === \"function\" ? useArnRegion : function () {\n return Promise.resolve(useArnRegion);\n }\n });\n}\nexport var NODE_USE_ARN_REGION_ENV_NAME = \"AWS_S3_USE_ARN_REGION\";\nexport var NODE_USE_ARN_REGION_INI_NAME = \"s3_use_arn_region\";\n/**\n * Config to load useArnRegion from environment variables and shared INI files\n *\n * @api private\n */\n\nexport var NODE_USE_ARN_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: function environmentVariableSelector(env) {\n if (!Object.prototype.hasOwnProperty.call(env, NODE_USE_ARN_REGION_ENV_NAME)) return undefined;\n if (env[NODE_USE_ARN_REGION_ENV_NAME] === \"true\") return true;\n if (env[NODE_USE_ARN_REGION_ENV_NAME] === \"false\") return false;\n throw new Error(\"Cannot load env \" + NODE_USE_ARN_REGION_ENV_NAME + \". Expected \\\"true\\\" or \\\"false\\\", got \" + env[NODE_USE_ARN_REGION_ENV_NAME] + \".\");\n },\n configFileSelector: function configFileSelector(profile) {\n if (!Object.prototype.hasOwnProperty.call(profile, NODE_USE_ARN_REGION_INI_NAME)) return undefined;\n if (profile[NODE_USE_ARN_REGION_INI_NAME] === \"true\") return true;\n if (profile[NODE_USE_ARN_REGION_INI_NAME] === \"false\") return false;\n throw new Error(\"Cannot load shared config entry \" + NODE_USE_ARN_REGION_INI_NAME + \". Expected \\\"true\\\" or \\\"false\\\", got \" + profile[NODE_USE_ARN_REGION_INI_NAME] + \".\");\n },\n default: false\n};","export * from \"./bucketEndpointMiddleware\";\nexport * from \"./bucketHostname\";\nexport * from \"./configurations\";\nexport { getArnResources, getPseudoRegion, getSuffixForArnEndpoint, validateOutpostService, validatePartition, validateAccountId, validateRegion, validateDNSHostLabel, validateNoDualstack, validateNoFIPS } from \"./bucketHostnameUtils\";","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n return isNonNullObject(value) && !isSpecial(value);\n};\n\nfunction isNonNullObject(value) {\n return !!value && typeof value === 'object';\n}\n\nfunction isSpecial(value) {\n var stringValue = Object.prototype.toString.call(value);\n return stringValue === '[object RegExp]' || stringValue === '[object Date]' || isReactElement(value);\n} // see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\n\n\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n return value.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nfunction emptyTarget(val) {\n return Array.isArray(val) ? [] : {};\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n return options.clone !== false && options.isMergeableObject(value) ? deepmerge(emptyTarget(value), value, options) : value;\n}\n\nfunction defaultArrayMerge(target, source, options) {\n return target.concat(source).map(function (element) {\n return cloneUnlessOtherwiseSpecified(element, options);\n });\n}\n\nfunction getMergeFunction(key, options) {\n if (!options.customMerge) {\n return deepmerge;\n }\n\n var customMerge = options.customMerge(key);\n return typeof customMerge === 'function' ? customMerge : deepmerge;\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(target).filter(function (symbol) {\n return target.propertyIsEnumerable(symbol);\n }) : [];\n}\n\nfunction getKeys(target) {\n return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target));\n}\n\nfunction propertyIsOnObject(object, property) {\n try {\n return property in object;\n } catch (_) {\n return false;\n }\n} // Protects from prototype poisoning and unexpected merging up the prototype chain.\n\n\nfunction propertyIsUnsafe(target, key) {\n return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n && Object.propertyIsEnumerable.call(target, key)); // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n var destination = {};\n\n if (options.isMergeableObject(target)) {\n getKeys(target).forEach(function (key) {\n destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n });\n }\n\n getKeys(source).forEach(function (key) {\n if (propertyIsUnsafe(target, key)) {\n return;\n }\n\n if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n destination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n } else {\n destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n }\n });\n return destination;\n}\n\nfunction deepmerge(target, source, options) {\n options = options || {};\n options.arrayMerge = options.arrayMerge || defaultArrayMerge;\n options.isMergeableObject = options.isMergeableObject || isMergeableObject; // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n // implementations can use it. The caller may not replace it.\n\n options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n if (!sourceAndTargetTypesMatch) {\n return cloneUnlessOtherwiseSpecified(source, options);\n } else if (sourceIsArray) {\n return options.arrayMerge(target, source, options);\n } else {\n return mergeObject(target, source, options);\n }\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n if (!Array.isArray(array)) {\n throw new Error('first argument should be an array');\n }\n\n return array.reduce(function (prev, next) {\n return deepmerge(prev, next, options);\n }, {});\n};\n\nvar deepmerge_1 = deepmerge;\nmodule.exports = deepmerge_1;","var alphabetByEncoding = {};\nvar alphabetByValue = new Array(64);\n\nfor (var i = 0, start = \"A\".charCodeAt(0), limit = \"Z\".charCodeAt(0); i + start <= limit; i++) {\n var char = String.fromCharCode(i + start);\n alphabetByEncoding[char] = i;\n alphabetByValue[i] = char;\n}\n\nfor (var i = 0, start = \"a\".charCodeAt(0), limit = \"z\".charCodeAt(0); i + start <= limit; i++) {\n var char = String.fromCharCode(i + start);\n var index = i + 26;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\n\nfor (var i = 0; i < 10; i++) {\n alphabetByEncoding[i.toString(10)] = i + 52;\n var char = i.toString(10);\n var index = i + 52;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\n\nalphabetByEncoding[\"+\"] = 62;\nalphabetByValue[62] = \"+\";\nalphabetByEncoding[\"/\"] = 63;\nalphabetByValue[63] = \"/\";\nvar bitsPerLetter = 6;\nvar bitsPerByte = 8;\nvar maxLetterValue = 63;\n/**\n * Converts a base-64 encoded string to a Uint8Array of bytes.\n *\n * @param input The base-64 encoded string\n *\n * @see https://tools.ietf.org/html/rfc4648#section-4\n */\n\nexport function fromBase64(input) {\n var totalByteLength = input.length / 4 * 3;\n\n if (input.substr(-2) === \"==\") {\n totalByteLength -= 2;\n } else if (input.substr(-1) === \"=\") {\n totalByteLength--;\n }\n\n var out = new ArrayBuffer(totalByteLength);\n var dataView = new DataView(out);\n\n for (var i = 0; i < input.length; i += 4) {\n var bits = 0;\n var bitLength = 0;\n\n for (var j = i, limit = i + 3; j <= limit; j++) {\n if (input[j] !== \"=\") {\n bits |= alphabetByEncoding[input[j]] << (limit - j) * bitsPerLetter;\n bitLength += bitsPerLetter;\n } else {\n bits >>= bitsPerLetter;\n }\n }\n\n var chunkOffset = i / 4 * 3;\n bits >>= bitLength % bitsPerByte;\n var byteLength = Math.floor(bitLength / bitsPerByte);\n\n for (var k = 0; k < byteLength; k++) {\n var offset = (byteLength - k - 1) * bitsPerByte;\n dataView.setUint8(chunkOffset + k, (bits & 255 << offset) >> offset);\n }\n }\n\n return new Uint8Array(out);\n}\n/**\n * Converts a Uint8Array of binary data to a base-64 encoded string.\n *\n * @param input The binary data to encode\n *\n * @see https://tools.ietf.org/html/rfc4648#section-4\n */\n\nexport function toBase64(input) {\n var str = \"\";\n\n for (var i = 0; i < input.length; i += 3) {\n var bits = 0;\n var bitLength = 0;\n\n for (var j = i, limit = Math.min(i + 3, input.length); j < limit; j++) {\n bits |= input[j] << (limit - j - 1) * bitsPerByte;\n bitLength += bitsPerByte;\n }\n\n var bitClusterCount = Math.ceil(bitLength / bitsPerLetter);\n bits <<= bitClusterCount * bitsPerLetter - bitLength;\n\n for (var k = 1; k <= bitClusterCount; k++) {\n var offset = (bitClusterCount - k) * bitsPerLetter;\n str += alphabetByValue[(bits & maxLetterValue << offset) >> offset];\n }\n\n str += \"==\".slice(0, 4 - bitClusterCount);\n }\n\n return str;\n}","import { __extends } from \"tslib\";\n/**\n * An error representing a failure of an individual credential provider.\n *\n * This error class has special meaning to the {@link chain} method. If a\n * provider in the chain is rejected with an error, the chain will only proceed\n * to the next provider if the value of the `tryNextLink` property on the error\n * is truthy. This allows individual providers to halt the chain and also\n * ensures the chain will stop if an entirely unexpected error is encountered.\n *\n * @deprecated\n */\n\nvar ProviderError =\n/** @class */\nfunction (_super) {\n __extends(ProviderError, _super);\n\n function ProviderError(message, tryNextLink) {\n if (tryNextLink === void 0) {\n tryNextLink = true;\n }\n\n var _this = _super.call(this, message) || this;\n\n _this.tryNextLink = tryNextLink;\n return _this;\n }\n\n ProviderError.from = function (error, tryNextLink) {\n if (tryNextLink === void 0) {\n tryNextLink = true;\n }\n\n Object.defineProperty(error, \"tryNextLink\", {\n value: tryNextLink,\n configurable: false,\n enumerable: false,\n writable: false\n });\n return error;\n };\n\n return ProviderError;\n}(Error);\n\nexport { ProviderError };\n/**\n * An error representing a failure of an individual credential provider.\n *\n * This error class has special meaning to the {@link chain} method. If a\n * provider in the chain is rejected with an error, the chain will only proceed\n * to the next provider if the value of the `tryNextLink` property on the error\n * is truthy. This allows individual providers to halt the chain and also\n * ensures the chain will stop if an entirely unexpected error is encountered.\n */\n\nvar CredentialsProviderError =\n/** @class */\nfunction (_super) {\n __extends(CredentialsProviderError, _super);\n\n function CredentialsProviderError(message, tryNextLink) {\n if (tryNextLink === void 0) {\n tryNextLink = true;\n }\n\n var _this = _super.call(this, message) || this;\n\n _this.tryNextLink = tryNextLink;\n _this.name = \"CredentialsProviderError\";\n return _this;\n }\n\n CredentialsProviderError.from = function (error, tryNextLink) {\n if (tryNextLink === void 0) {\n tryNextLink = true;\n }\n\n Object.defineProperty(error, \"tryNextLink\", {\n value: tryNextLink,\n configurable: false,\n enumerable: false,\n writable: false\n });\n return error;\n };\n\n return CredentialsProviderError;\n}(Error);\n\nexport { CredentialsProviderError };","export var fromStatic = function fromStatic(staticValue) {\n return function () {\n return Promise.resolve(staticValue);\n };\n};","import { __awaiter, __generator } from \"tslib\";\nexport var memoize = function memoize(provider, isExpired, requiresRefresh) {\n var result;\n var hasResult;\n\n if (isExpired === undefined) {\n // This is a static memoization; no need to incorporate refreshing\n return function () {\n if (!hasResult) {\n result = provider();\n hasResult = true;\n }\n\n return result;\n };\n }\n\n var isConstant = false;\n return function () {\n return __awaiter(void 0, void 0, void 0, function () {\n var resolved;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!hasResult) {\n result = provider();\n hasResult = true;\n }\n\n if (isConstant) {\n return [2\n /*return*/\n , result];\n }\n\n return [4\n /*yield*/\n , result];\n\n case 1:\n resolved = _a.sent();\n\n if (requiresRefresh && !requiresRefresh(resolved)) {\n isConstant = true;\n return [2\n /*return*/\n , resolved];\n }\n\n if (isExpired(resolved)) {\n return [2\n /*return*/\n , result = provider()];\n }\n\n return [2\n /*return*/\n , resolved];\n }\n });\n });\n };\n};","export * from \"./chain\";\nexport * from \"./fromStatic\";\nexport * from \"./memoize\";\nexport * from \"./ProviderError\";","var internalObjectKeys = require('../internals/object-keys-internal');\n\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype'); // `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};","var hiddenKeys = require('../internals/hidden-keys');\n\nvar isObject = require('../internals/is-object');\n\nvar has = require('../internals/has');\n\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar uid = require('../internals/uid');\n\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function setMetadata(it) {\n defineProperty(it, METADATA, {\n value: {\n objectID: 'O' + ++id,\n // object ID\n weakData: {} // weak collections IDs\n\n }\n });\n};\n\nvar fastKey = function fastKey(it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F'; // not necessary to add metadata\n\n if (!create) return 'E'; // add missing metadata\n\n setMetadata(it); // return object ID\n }\n\n return it[METADATA].objectID;\n};\n\nvar getWeakData = function getWeakData(it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true; // not necessary to add metadata\n\n if (!create) return false; // add missing metadata\n\n setMetadata(it); // return the store of weak collections IDs\n }\n\n return it[METADATA].weakData;\n}; // add metadata on freeze-family methods calling\n\n\nvar onFreeze = function onFreeze(it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\nhiddenKeys[METADATA] = true;","var IS_PURE = require('../internals/is-pure');\n\nvar getIterator = require('../internals/get-iterator');\n\nmodule.exports = IS_PURE ? getIterator : function (it) {\n // eslint-disable-next-line no-undef\n return Set.prototype.values.call(it);\n};","'use strict';\n\nvar toPrimitive = require('../internals/to-primitive');\n\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));else object[propertyKey] = value;\n};","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n/** `Object#toString` result references. */\n\n\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n/** Built-in value references. */\n\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n}\n\nmodule.exports = baseGetTag;","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n\n\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n\n\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n\n\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;",";\n\n(function (root, factory, undef) {\n if (typeof exports === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./sha1\", \"./hmac\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var C_algo = C.algo;\n var MD5 = C_algo.MD5;\n /**\n * This key derivation function is meant to conform with EVP_BytesToKey.\n * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n */\n\n var EvpKDF = C_algo.EvpKDF = Base.extend({\n /**\n * Configuration options.\n *\n * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n * @property {number} iterations The number of iterations to perform. Default: 1\n */\n cfg: Base.extend({\n keySize: 128 / 32,\n hasher: MD5,\n iterations: 1\n }),\n\n /**\n * Initializes a newly created key derivation function.\n *\n * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n *\n * @example\n *\n * var kdf = CryptoJS.algo.EvpKDF.create();\n * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n */\n init: function init(cfg) {\n this.cfg = this.cfg.extend(cfg);\n },\n\n /**\n * Derives a key from a password.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n *\n * @return {WordArray} The derived key.\n *\n * @example\n *\n * var key = kdf.compute(password, salt);\n */\n compute: function compute(password, salt) {\n var block; // Shortcut\n\n var cfg = this.cfg; // Init hasher\n\n var hasher = cfg.hasher.create(); // Initial values\n\n var derivedKey = WordArray.create(); // Shortcuts\n\n var derivedKeyWords = derivedKey.words;\n var keySize = cfg.keySize;\n var iterations = cfg.iterations; // Generate key\n\n while (derivedKeyWords.length < keySize) {\n if (block) {\n hasher.update(block);\n }\n\n block = hasher.update(password).finalize(salt);\n hasher.reset(); // Iterations\n\n for (var i = 1; i < iterations; i++) {\n block = hasher.finalize(block);\n hasher.reset();\n }\n\n derivedKey.concat(block);\n }\n\n derivedKey.sigBytes = keySize * 4;\n return derivedKey;\n }\n });\n /**\n * Derives a key from a password.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n * @param {Object} cfg (Optional) The configuration options to use for this computation.\n *\n * @return {WordArray} The derived key.\n *\n * @static\n *\n * @example\n *\n * var key = CryptoJS.EvpKDF(password, salt);\n * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n */\n\n C.EvpKDF = function (password, salt, cfg) {\n return EvpKDF.create(cfg).compute(password, salt);\n };\n })();\n\n return CryptoJS.EvpKDF;\n});","/*\n * Copyright 2020 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport function isRefObject(value) {\n return value != null && typeof value.current !== \"undefined\";\n}\nexport function isRefCallback(value) {\n return typeof value === \"function\";\n}\nexport function getRef(ref) {\n if (ref && ref.current) {\n return ref.current;\n }\n\n return ref;\n}","var v1 = require('./v1');\n\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\nmodule.exports = uuid;","var convert,\n keys = require('lodash.keys'),\n each = require('lodash.foreach'),\n measures = {\n length: require('./definitions/length'),\n area: require('./definitions/area'),\n mass: require('./definitions/mass'),\n volume: require('./definitions/volume'),\n each: require('./definitions/each'),\n temperature: require('./definitions/temperature'),\n time: require('./definitions/time'),\n digital: require('./definitions/digital'),\n partsPer: require('./definitions/partsPer'),\n speed: require('./definitions/speed'),\n pace: require('./definitions/pace'),\n pressure: require('./definitions/pressure'),\n current: require('./definitions/current'),\n voltage: require('./definitions/voltage'),\n power: require('./definitions/power'),\n reactivePower: require('./definitions/reactivePower'),\n apparentPower: require('./definitions/apparentPower'),\n energy: require('./definitions/energy'),\n reactiveEnergy: require('./definitions/reactiveEnergy'),\n volumeFlowRate: require('./definitions/volumeFlowRate'),\n illuminance: require('./definitions/illuminance'),\n frequency: require('./definitions/frequency'),\n angle: require('./definitions/angle')\n},\n Converter;\n\nConverter = function Converter(numerator, denominator) {\n if (denominator) this.val = numerator / denominator;else this.val = numerator;\n};\n/**\n* Lets the converter know the source unit abbreviation\n*/\n\n\nConverter.prototype.from = function (from) {\n if (this.destination) throw new Error('.from must be called before .to');\n this.origin = this.getUnit(from);\n\n if (!this.origin) {\n this.throwUnsupportedUnitError(from);\n }\n\n return this;\n};\n/**\n* Converts the unit and returns the value\n*/\n\n\nConverter.prototype.to = function (to) {\n if (!this.origin) throw new Error('.to must be called after .from');\n this.destination = this.getUnit(to);\n var result, transform;\n\n if (!this.destination) {\n this.throwUnsupportedUnitError(to);\n } // Don't change the value if origin and destination are the same\n\n\n if (this.origin.abbr === this.destination.abbr) {\n return this.val;\n } // You can't go from liquid to mass, for example\n\n\n if (this.destination.measure != this.origin.measure) {\n throw new Error('Cannot convert incompatible measures of ' + this.destination.measure + ' and ' + this.origin.measure);\n }\n /**\n * Convert from the source value to its anchor inside the system\n */\n\n\n result = this.val * this.origin.unit.to_anchor;\n /**\n * For some changes it's a simple shift (C to K)\n * So we'll add it when convering into the unit (later)\n * and subtract it when converting from the unit\n */\n\n if (this.origin.unit.anchor_shift) {\n result -= this.origin.unit.anchor_shift;\n }\n /**\n * Convert from one system to another through the anchor ratio. Some conversions\n * aren't ratio based or require more than a simple shift. We can provide a custom\n * transform here to provide the direct result\n */\n\n\n if (this.origin.system != this.destination.system) {\n transform = measures[this.origin.measure]._anchors[this.origin.system].transform;\n\n if (typeof transform === 'function') {\n result = transform(result);\n } else {\n result *= measures[this.origin.measure]._anchors[this.origin.system].ratio;\n }\n }\n /**\n * This shift has to be done after the system conversion business\n */\n\n\n if (this.destination.unit.anchor_shift) {\n result += this.destination.unit.anchor_shift;\n }\n /**\n * Convert to another unit inside the destination system\n */\n\n\n return result / this.destination.unit.to_anchor;\n};\n/**\n* Converts the unit to the best available unit.\n*/\n\n\nConverter.prototype.toBest = function (options) {\n if (!this.origin) throw new Error('.toBest must be called after .from');\n var options = Object.assign({\n exclude: [],\n cutOffNumber: 1\n }, options);\n var best;\n /**\n Looks through every possibility for the 'best' available unit.\n i.e. Where the value has the fewest numbers before the decimal point,\n but is still higher than 1.\n */\n\n each(this.possibilities(), function (possibility) {\n var unit = this.describe(possibility);\n var isIncluded = options.exclude.indexOf(possibility) === -1;\n\n if (isIncluded && unit.system === this.origin.system) {\n var result = this.to(possibility);\n\n if (!best || result >= options.cutOffNumber && result < best.val) {\n best = {\n val: result,\n unit: possibility,\n singular: unit.singular,\n plural: unit.plural\n };\n }\n }\n }.bind(this));\n return best;\n};\n/**\n* Finds the unit\n*/\n\n\nConverter.prototype.getUnit = function (abbr) {\n var found;\n each(measures, function (systems, measure) {\n each(systems, function (units, system) {\n if (system == '_anchors') return false;\n each(units, function (unit, testAbbr) {\n if (testAbbr == abbr) {\n found = {\n abbr: abbr,\n measure: measure,\n system: system,\n unit: unit\n };\n return false;\n }\n });\n if (found) return false;\n });\n if (found) return false;\n });\n return found;\n};\n\nvar describe = function describe(resp) {\n return {\n abbr: resp.abbr,\n measure: resp.measure,\n system: resp.system,\n singular: resp.unit.name.singular,\n plural: resp.unit.name.plural\n };\n};\n/**\n* An alias for getUnit\n*/\n\n\nConverter.prototype.describe = function (abbr) {\n var resp = Converter.prototype.getUnit(abbr);\n var desc = null;\n\n try {\n desc = describe(resp);\n } catch (err) {\n this.throwUnsupportedUnitError(abbr);\n }\n\n return desc;\n};\n/**\n* Detailed list of all supported units\n*/\n\n\nConverter.prototype.list = function (measure) {\n var list = [];\n each(measures, function (systems, testMeasure) {\n if (measure && measure !== testMeasure) return;\n each(systems, function (units, system) {\n if (system == '_anchors') return false;\n each(units, function (unit, abbr) {\n list = list.concat(describe({\n abbr: abbr,\n measure: testMeasure,\n system: system,\n unit: unit\n }));\n });\n });\n });\n return list;\n};\n\nConverter.prototype.throwUnsupportedUnitError = function (what) {\n var validUnits = [];\n each(measures, function (systems, measure) {\n each(systems, function (units, system) {\n if (system == '_anchors') return false;\n validUnits = validUnits.concat(keys(units));\n });\n });\n throw new Error('Unsupported unit ' + what + ', use one of: ' + validUnits.join(', '));\n};\n/**\n* Returns the abbreviated measures that the value can be\n* converted to.\n*/\n\n\nConverter.prototype.possibilities = function (measure) {\n var possibilities = [];\n\n if (!this.origin && !measure) {\n each(keys(measures), function (measure) {\n each(measures[measure], function (units, system) {\n if (system == '_anchors') return false;\n possibilities = possibilities.concat(keys(units));\n });\n });\n } else {\n measure = measure || this.origin.measure;\n each(measures[measure], function (units, system) {\n if (system == '_anchors') return false;\n possibilities = possibilities.concat(keys(units));\n });\n }\n\n return possibilities;\n};\n/**\n* Returns the abbreviated measures that the value can be\n* converted to.\n*/\n\n\nConverter.prototype.measures = function () {\n return keys(measures);\n};\n\nconvert = function convert(value) {\n return new Converter(value);\n};\n\nmodule.exports = convert;","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var HandleType = {\n /** A full handle appears as a small square. */\n FULL: \"full\",\n\n /** A start handle appears as the left or top half of a square. */\n START: \"start\",\n\n /** An end handle appears as the right or bottom half of a square. */\n END: \"end\"\n};\nexport var HandleInteractionKind = {\n /** Locked handles prevent other handles from being dragged past then. */\n LOCK: \"lock\",\n\n /** Push handles move overlapping handles with them as they are dragged. */\n PUSH: \"push\",\n\n /**\n * Handles marked \"none\" are not interactive and do not appear in the UI.\n * They serve only to break the track into subsections that can be colored separately.\n */\n NONE: \"none\"\n};","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** Helper function for formatting ratios as CSS percentage values. */\nexport function formatPercentage(ratio) {\n return (ratio * 100).toFixed(2) + \"%\";\n}\n/**\n * Mutates the values array by filling all the values between start and end index (inclusive) with the fill value.\n */\n\nexport function fillValues(values, startIndex, endIndex, fillValue) {\n var inc = startIndex < endIndex ? 1 : -1;\n\n for (var index = startIndex; index !== endIndex + inc; index += inc) {\n values[index] = fillValue;\n }\n}\n/**\n * Returns the minimum element of an array as determined by comparing the results of calling the arg function on each\n * element of the array. The function will only be called once per element.\n */\n\nexport function argMin(values, argFn) {\n if (values.length === 0) {\n return undefined;\n }\n\n var minValue = values[0];\n var minArg = argFn(minValue);\n\n for (var index = 1; index < values.length; index++) {\n var value = values[index];\n var arg = argFn(value);\n\n if (arg < minArg) {\n minValue = value;\n minArg = arg;\n }\n }\n\n return minValue;\n}","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __decorate, __extends } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Classes, Keys } from \"../../common\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { clamp, safeInvoke } from \"../../common/utils\";\nimport { formatPercentage } from \"./sliderUtils\"; // props that require number values, for validation\n\nvar NUMBER_PROPS = [\"max\", \"min\", \"stepSize\", \"tickSize\", \"value\"];\n/** Internal component for a Handle with click/drag/keyboard logic to determine a new value. */\n\nvar Handle =\n/** @class */\nfunction (_super) {\n __extends(Handle, _super);\n\n function Handle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n isMoving: false\n };\n _this.refHandlers = {\n handle: function handle(el) {\n return _this.handleElement = el;\n }\n };\n\n _this.beginHandleMovement = function (event) {\n document.addEventListener(\"mousemove\", _this.handleHandleMovement);\n document.addEventListener(\"mouseup\", _this.endHandleMovement);\n\n _this.setState({\n isMoving: true\n });\n\n _this.changeValue(_this.clientToValue(_this.mouseEventClientOffset(event)));\n };\n\n _this.beginHandleTouchMovement = function (event) {\n document.addEventListener(\"touchmove\", _this.handleHandleTouchMovement);\n document.addEventListener(\"touchend\", _this.endHandleTouchMovement);\n document.addEventListener(\"touchcancel\", _this.endHandleTouchMovement);\n\n _this.setState({\n isMoving: true\n });\n\n _this.changeValue(_this.clientToValue(_this.touchEventClientOffset(event)));\n };\n\n _this.endHandleMovement = function (event) {\n _this.handleMoveEndedAt(_this.mouseEventClientOffset(event));\n };\n\n _this.endHandleTouchMovement = function (event) {\n _this.handleMoveEndedAt(_this.touchEventClientOffset(event));\n };\n\n _this.handleMoveEndedAt = function (clientPixel) {\n _this.removeDocumentEventListeners();\n\n _this.setState({\n isMoving: false\n }); // always invoke onRelease; changeValue may call onChange if value is different\n\n\n var onRelease = _this.props.onRelease;\n\n var finalValue = _this.changeValue(_this.clientToValue(clientPixel));\n\n safeInvoke(onRelease, finalValue);\n };\n\n _this.handleHandleMovement = function (event) {\n _this.handleMovedTo(_this.mouseEventClientOffset(event));\n };\n\n _this.handleHandleTouchMovement = function (event) {\n _this.handleMovedTo(_this.touchEventClientOffset(event));\n };\n\n _this.handleMovedTo = function (clientPixel) {\n if (_this.state.isMoving && !_this.props.disabled) {\n _this.changeValue(_this.clientToValue(clientPixel));\n }\n };\n\n _this.handleKeyDown = function (event) {\n var _a = _this.props,\n stepSize = _a.stepSize,\n value = _a.value;\n var which = event.which;\n\n if (which === Keys.ARROW_DOWN || which === Keys.ARROW_LEFT) {\n _this.changeValue(value - stepSize); // this key event has been handled! prevent browser scroll on up/down\n\n\n event.preventDefault();\n } else if (which === Keys.ARROW_UP || which === Keys.ARROW_RIGHT) {\n _this.changeValue(value + stepSize);\n\n event.preventDefault();\n }\n };\n\n _this.handleKeyUp = function (event) {\n if ([Keys.ARROW_UP, Keys.ARROW_DOWN, Keys.ARROW_LEFT, Keys.ARROW_RIGHT].indexOf(event.which) >= 0) {\n safeInvoke(_this.props.onRelease, _this.props.value);\n }\n };\n\n return _this;\n }\n\n Handle.prototype.componentDidMount = function () {\n // The first time this component renders, it has no ref to the handle and thus incorrectly centers the handle.\n // Therefore, on the first mount, force a re-render to center the handle with the ref'd component.\n this.forceUpdate();\n };\n\n Handle.prototype.render = function () {\n var _a;\n\n var _b = this.props,\n className = _b.className,\n disabled = _b.disabled,\n label = _b.label,\n min = _b.min,\n tickSizeRatio = _b.tickSizeRatio,\n value = _b.value,\n vertical = _b.vertical;\n var isMoving = this.state.isMoving; // The handle midpoint of RangeSlider is actually shifted by a margin to\n // be on the edge of the visible handle element. Because the midpoint\n // calculation does not take this margin into account, we instead\n // measure the long side (which is equal to the short side plus the\n // margin).\n\n var handleMidpoint = this.getHandleMidpointAndOffset(this.handleElement, true).handleMidpoint;\n var offsetRatio = (value - min) * tickSizeRatio;\n var offsetCalc = \"calc(\" + formatPercentage(offsetRatio) + \" - \" + handleMidpoint + \"px)\";\n var style = vertical ? {\n bottom: offsetCalc\n } : {\n left: offsetCalc\n };\n return React.createElement(\"span\", {\n className: classNames(Classes.SLIDER_HANDLE, (_a = {}, _a[Classes.ACTIVE] = isMoving, _a), className),\n onKeyDown: disabled ? null : this.handleKeyDown,\n onKeyUp: disabled ? null : this.handleKeyUp,\n onMouseDown: disabled ? null : this.beginHandleMovement,\n onTouchStart: disabled ? null : this.beginHandleTouchMovement,\n ref: this.refHandlers.handle,\n style: style,\n tabIndex: 0\n }, label == null ? null : React.createElement(\"span\", {\n className: Classes.SLIDER_LABEL\n }, label));\n };\n\n Handle.prototype.componentWillUnmount = function () {\n this.removeDocumentEventListeners();\n };\n /** Convert client pixel to value between min and max. */\n\n\n Handle.prototype.clientToValue = function (clientPixel) {\n var _a = this.props,\n stepSize = _a.stepSize,\n tickSize = _a.tickSize,\n value = _a.value,\n vertical = _a.vertical;\n\n if (this.handleElement == null) {\n return value;\n } // #1769: this logic doesn't work perfectly when the tick size is\n // smaller than the handle size; it may be off by a tick or two.\n\n\n var clientPixelNormalized = vertical ? window.innerHeight - clientPixel : clientPixel;\n var handleCenterPixel = this.getHandleElementCenterPixel(this.handleElement);\n var pixelDelta = clientPixelNormalized - handleCenterPixel;\n\n if (isNaN(pixelDelta)) {\n return value;\n } // convert pixels to range value in increments of `stepSize`\n\n\n return value + Math.round(pixelDelta / (tickSize * stepSize)) * stepSize;\n };\n\n Handle.prototype.mouseEventClientOffset = function (event) {\n return this.props.vertical ? event.clientY : event.clientX;\n };\n\n Handle.prototype.touchEventClientOffset = function (event) {\n var touch = event.changedTouches[0];\n return this.props.vertical ? touch.clientY : touch.clientX;\n };\n\n Handle.prototype.validateProps = function (props) {\n for (var _i = 0, NUMBER_PROPS_1 = NUMBER_PROPS; _i < NUMBER_PROPS_1.length; _i++) {\n var prop = NUMBER_PROPS_1[_i];\n\n if (typeof props[prop] !== \"number\") {\n throw new Error(\"[Blueprint] requires number value for \" + prop + \" prop\");\n }\n }\n };\n /** Clamp value and invoke callback if it differs from current value */\n\n\n Handle.prototype.changeValue = function (newValue, callback) {\n if (callback === void 0) {\n callback = this.props.onChange;\n }\n\n newValue = this.clamp(newValue);\n\n if (!isNaN(newValue) && this.props.value !== newValue) {\n safeInvoke(callback, newValue);\n }\n\n return newValue;\n };\n /** Clamp value between min and max props */\n\n\n Handle.prototype.clamp = function (value) {\n return clamp(value, this.props.min, this.props.max);\n };\n\n Handle.prototype.getHandleElementCenterPixel = function (handleElement) {\n var _a = this.getHandleMidpointAndOffset(handleElement),\n handleMidpoint = _a.handleMidpoint,\n handleOffset = _a.handleOffset;\n\n return handleOffset + handleMidpoint;\n };\n\n Handle.prototype.getHandleMidpointAndOffset = function (handleElement, useOppositeDimension) {\n if (useOppositeDimension === void 0) {\n useOppositeDimension = false;\n }\n\n if (handleElement == null) {\n return {\n handleMidpoint: 0,\n handleOffset: 0\n };\n }\n\n var vertical = this.props.vertical; // getBoundingClientRect().height includes border size; clientHeight does not.\n\n var handleRect = handleElement.getBoundingClientRect();\n var sizeKey = vertical ? useOppositeDimension ? \"width\" : \"height\" : useOppositeDimension ? \"height\" : \"width\"; // \"bottom\" value seems to be consistently incorrect, so explicitly\n // calculate it using the window offset instead.\n\n var handleOffset = vertical ? window.innerHeight - (handleRect.top + handleRect[sizeKey]) : handleRect.left;\n return {\n handleMidpoint: handleRect[sizeKey] / 2,\n handleOffset: handleOffset\n };\n };\n\n Handle.prototype.removeDocumentEventListeners = function () {\n document.removeEventListener(\"mousemove\", this.handleHandleMovement);\n document.removeEventListener(\"mouseup\", this.endHandleMovement);\n document.removeEventListener(\"touchmove\", this.handleHandleTouchMovement);\n document.removeEventListener(\"touchend\", this.endHandleTouchMovement);\n document.removeEventListener(\"touchcancel\", this.endHandleTouchMovement);\n };\n\n Handle.displayName = DISPLAYNAME_PREFIX + \".SliderHandle\";\n Handle = __decorate([polyfill], Handle);\n return Handle;\n}(AbstractPureComponent2);\n\nexport { Handle };","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Classes, Intent } from \"../../common\";\nimport * as Errors from \"../../common/errors\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport * as Utils from \"../../common/utils\";\nimport { Handle } from \"./handle\";\nimport { HandleInteractionKind, HandleType } from \"./handleProps\";\nimport { argMin, fillValues, formatPercentage } from \"./sliderUtils\";\n/**\n * SFC used to pass slider handle props to a `MultiSlider`.\n * This element is not rendered directly.\n */\n\nvar MultiSliderHandle = function MultiSliderHandle() {\n return null;\n};\n\nMultiSliderHandle.displayName = DISPLAYNAME_PREFIX + \".MultiSliderHandle\";\n\nvar MultiSlider =\n/** @class */\nfunction (_super) {\n __extends(MultiSlider, _super);\n\n function MultiSlider() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n labelPrecision: getLabelPrecision(_this.props),\n tickSize: 0,\n tickSizeRatio: 0\n };\n _this.handleElements = [];\n\n _this.addHandleRef = function (ref) {\n if (ref != null) {\n _this.handleElements.push(ref);\n }\n };\n\n _this.maybeHandleTrackClick = function (event) {\n if (_this.canHandleTrackEvent(event)) {\n var foundHandle = _this.nearestHandleForValue(_this.handleElements, function (handle) {\n return handle.mouseEventClientOffset(event);\n });\n\n if (foundHandle) {\n foundHandle.beginHandleMovement(event);\n }\n }\n };\n\n _this.maybeHandleTrackTouch = function (event) {\n if (_this.canHandleTrackEvent(event)) {\n var foundHandle = _this.nearestHandleForValue(_this.handleElements, function (handle) {\n return handle.touchEventClientOffset(event);\n });\n\n if (foundHandle) {\n foundHandle.beginHandleTouchMovement(event);\n }\n }\n };\n\n _this.canHandleTrackEvent = function (event) {\n var target = event.target; // ensure event does not come from inside the handle\n\n return !_this.props.disabled && target.closest(\".\" + Classes.SLIDER_HANDLE) == null;\n };\n\n _this.getHandlerForIndex = function (index, callback) {\n return function (newValue) {\n Utils.safeInvoke(callback, _this.getNewHandleValues(newValue, index));\n };\n };\n\n _this.handleChange = function (newValues) {\n var handleProps = getSortedInteractiveHandleProps(_this.props);\n var oldValues = handleProps.map(function (handle) {\n return handle.value;\n });\n\n if (!Utils.arraysEqual(newValues, oldValues)) {\n Utils.safeInvoke(_this.props.onChange, newValues);\n handleProps.forEach(function (handle, index) {\n if (oldValues[index] !== newValues[index]) {\n Utils.safeInvoke(handle.onChange, newValues[index]);\n }\n });\n }\n };\n\n _this.handleRelease = function (newValues) {\n var handleProps = getSortedInteractiveHandleProps(_this.props);\n Utils.safeInvoke(_this.props.onRelease, newValues);\n handleProps.forEach(function (handle, index) {\n Utils.safeInvoke(handle.onRelease, newValues[index]);\n });\n };\n\n return _this;\n }\n\n MultiSlider_1 = MultiSlider;\n\n MultiSlider.getDerivedStateFromProps = function (props) {\n return {\n labelPrecision: MultiSlider_1.getLabelPrecision(props)\n };\n };\n\n MultiSlider.getLabelPrecision = function (_a) {\n var labelPrecision = _a.labelPrecision,\n stepSize = _a.stepSize; // infer default label precision from stepSize because that's how much the handle moves.\n\n return labelPrecision == null ? Utils.countDecimalPlaces(stepSize) : labelPrecision;\n };\n\n MultiSlider.prototype.getSnapshotBeforeUpdate = function (prevProps) {\n var prevHandleProps = getSortedInteractiveHandleProps(prevProps);\n var newHandleProps = getSortedInteractiveHandleProps(this.props);\n\n if (newHandleProps.length !== prevHandleProps.length) {\n // clear refs\n this.handleElements = [];\n }\n\n return null;\n };\n\n MultiSlider.prototype.render = function () {\n var _a;\n\n var _this = this;\n\n var classes = classNames(Classes.SLIDER, (_a = {}, _a[Classes.DISABLED] = this.props.disabled, _a[Classes.SLIDER + \"-unlabeled\"] = this.props.labelRenderer === false, _a[Classes.VERTICAL] = this.props.vertical, _a), this.props.className);\n return React.createElement(\"div\", {\n className: classes,\n onMouseDown: this.maybeHandleTrackClick,\n onTouchStart: this.maybeHandleTrackTouch\n }, React.createElement(\"div\", {\n className: Classes.SLIDER_TRACK,\n ref: function ref(_ref) {\n return _this.trackElement = _ref;\n }\n }, this.renderTracks()), React.createElement(\"div\", {\n className: Classes.SLIDER_AXIS\n }, this.renderLabels()), this.renderHandles());\n };\n\n MultiSlider.prototype.componentDidMount = function () {\n this.updateTickSize();\n };\n\n MultiSlider.prototype.componentDidUpdate = function (prevProps, prevState) {\n _super.prototype.componentDidUpdate.call(this, prevProps, prevState);\n\n this.updateTickSize();\n };\n\n MultiSlider.prototype.validateProps = function (props) {\n if (props.stepSize <= 0) {\n throw new Error(Errors.SLIDER_ZERO_STEP);\n }\n\n if (props.labelStepSize <= 0) {\n throw new Error(Errors.SLIDER_ZERO_LABEL_STEP);\n }\n\n var anyInvalidChildren = false;\n React.Children.forEach(props.children, function (child) {\n // allow boolean coercion to omit nulls and false values\n if (child && !Utils.isElementOfType(child, MultiSlider_1.Handle)) {\n anyInvalidChildren = true;\n }\n });\n\n if (anyInvalidChildren) {\n throw new Error(Errors.MULTISLIDER_INVALID_CHILD);\n }\n };\n\n MultiSlider.prototype.formatLabel = function (value) {\n var labelRenderer = this.props.labelRenderer;\n\n if (labelRenderer === false) {\n return null;\n } else if (Utils.isFunction(labelRenderer)) {\n return labelRenderer(value);\n } else {\n return value.toFixed(this.state.labelPrecision);\n }\n };\n\n MultiSlider.prototype.renderLabels = function () {\n if (this.props.labelRenderer === false) {\n return null;\n }\n\n var _a = this.props,\n labelStepSize = _a.labelStepSize,\n max = _a.max,\n min = _a.min;\n var labels = [];\n var stepSizeRatio = this.state.tickSizeRatio * labelStepSize; // step size lends itself naturally to a `for` loop\n // eslint-disable-line one-var, no-sequences\n\n for (var i = min, offsetRatio = 0; i < max || Utils.approxEqual(i, max); i += labelStepSize, offsetRatio += stepSizeRatio) {\n var offsetPercentage = formatPercentage(offsetRatio);\n var style = this.props.vertical ? {\n bottom: offsetPercentage\n } : {\n left: offsetPercentage\n };\n labels.push(React.createElement(\"div\", {\n className: Classes.SLIDER_LABEL,\n key: i,\n style: style\n }, this.formatLabel(i)));\n }\n\n return labels;\n };\n\n MultiSlider.prototype.renderTracks = function () {\n var trackStops = getSortedHandleProps(this.props);\n trackStops.push({\n value: this.props.max\n }); // render from current to previous, then increment previous\n\n var previous = {\n value: this.props.min\n };\n var handles = [];\n\n for (var index = 0; index < trackStops.length; index++) {\n var current = trackStops[index];\n handles.push(this.renderTrackFill(index, previous, current));\n previous = current;\n }\n\n return handles;\n };\n\n MultiSlider.prototype.renderTrackFill = function (index, start, end) {\n // ensure startRatio <= endRatio\n var _a = [this.getOffsetRatio(start.value), this.getOffsetRatio(end.value)].sort(function (left, right) {\n return left - right;\n }),\n startRatio = _a[0],\n endRatio = _a[1];\n\n var startOffset = formatPercentage(startRatio);\n var endOffset = formatPercentage(1 - endRatio);\n var orientationStyle = this.props.vertical ? {\n bottom: startOffset,\n top: endOffset,\n left: 0\n } : {\n left: startOffset,\n right: endOffset,\n top: 0\n };\n\n var style = __assign(__assign({}, orientationStyle), start.trackStyleAfter || end.trackStyleBefore || {});\n\n var classes = classNames(Classes.SLIDER_PROGRESS, Classes.intentClass(this.getTrackIntent(start, end)));\n return React.createElement(\"div\", {\n key: \"track-\" + index,\n className: classes,\n style: style\n });\n };\n\n MultiSlider.prototype.renderHandles = function () {\n var _this = this;\n\n var _a = this.props,\n disabled = _a.disabled,\n max = _a.max,\n min = _a.min,\n stepSize = _a.stepSize,\n vertical = _a.vertical;\n var handleProps = getSortedInteractiveHandleProps(this.props);\n\n if (handleProps.length === 0) {\n return null;\n }\n\n return handleProps.map(function (_a, index) {\n var _b;\n\n var value = _a.value,\n type = _a.type;\n return React.createElement(Handle, {\n className: classNames((_b = {}, _b[Classes.START] = type === HandleType.START, _b[Classes.END] = type === HandleType.END, _b)),\n disabled: disabled,\n key: index + \"-\" + handleProps.length,\n label: _this.formatLabel(value),\n max: max,\n min: min,\n onChange: _this.getHandlerForIndex(index, _this.handleChange),\n onRelease: _this.getHandlerForIndex(index, _this.handleRelease),\n ref: _this.addHandleRef,\n stepSize: stepSize,\n tickSize: _this.state.tickSize,\n tickSizeRatio: _this.state.tickSizeRatio,\n value: value,\n vertical: vertical\n });\n });\n };\n\n MultiSlider.prototype.nearestHandleForValue = function (handles, getOffset) {\n return argMin(handles, function (handle) {\n var offset = getOffset(handle);\n var offsetValue = handle.clientToValue(offset);\n var handleValue = handle.props.value;\n return Math.abs(offsetValue - handleValue);\n });\n };\n\n MultiSlider.prototype.getNewHandleValues = function (newValue, oldIndex) {\n var handleProps = getSortedInteractiveHandleProps(this.props);\n var oldValues = handleProps.map(function (handle) {\n return handle.value;\n });\n var newValues = oldValues.slice();\n newValues[oldIndex] = newValue;\n newValues.sort(function (left, right) {\n return left - right;\n });\n var newIndex = newValues.indexOf(newValue);\n var lockIndex = this.findFirstLockedHandleIndex(oldIndex, newIndex);\n\n if (lockIndex === -1) {\n fillValues(newValues, oldIndex, newIndex, newValue);\n } else {\n // If pushing past a locked handle, discard the new value and only make the updates to clamp values against the lock.\n var lockValue = oldValues[lockIndex];\n fillValues(oldValues, oldIndex, lockIndex, lockValue);\n return oldValues;\n }\n\n return newValues;\n };\n\n MultiSlider.prototype.findFirstLockedHandleIndex = function (startIndex, endIndex) {\n var inc = startIndex < endIndex ? 1 : -1;\n var handleProps = getSortedInteractiveHandleProps(this.props);\n\n for (var index = startIndex + inc; index !== endIndex + inc; index += inc) {\n if (handleProps[index].interactionKind !== HandleInteractionKind.PUSH) {\n return index;\n }\n }\n\n return -1;\n };\n\n MultiSlider.prototype.getOffsetRatio = function (value) {\n return Utils.clamp((value - this.props.min) * this.state.tickSizeRatio, 0, 1);\n };\n\n MultiSlider.prototype.getTrackIntent = function (start, end) {\n if (!this.props.showTrackFill) {\n return Intent.NONE;\n }\n\n if (start.intentAfter !== undefined) {\n return start.intentAfter;\n } else if (end !== undefined && end.intentBefore !== undefined) {\n return end.intentBefore;\n }\n\n return this.props.defaultTrackIntent;\n };\n\n MultiSlider.prototype.updateTickSize = function () {\n if (this.trackElement != null) {\n var trackSize = this.props.vertical ? this.trackElement.clientHeight : this.trackElement.clientWidth;\n var tickSizeRatio = 1 / (this.props.max - this.props.min);\n var tickSize = trackSize * tickSizeRatio;\n this.setState({\n tickSize: tickSize,\n tickSizeRatio: tickSizeRatio\n });\n }\n };\n\n var MultiSlider_1;\n MultiSlider.defaultSliderProps = {\n disabled: false,\n labelStepSize: 1,\n max: 10,\n min: 0,\n showTrackFill: true,\n stepSize: 1,\n vertical: false\n };\n MultiSlider.defaultProps = __assign(__assign({}, MultiSlider_1.defaultSliderProps), {\n defaultTrackIntent: Intent.NONE\n });\n MultiSlider.displayName = DISPLAYNAME_PREFIX + \".MultiSlider\";\n MultiSlider.Handle = MultiSliderHandle;\n MultiSlider = MultiSlider_1 = __decorate([polyfill], MultiSlider);\n return MultiSlider;\n}(AbstractPureComponent2);\n\nexport { MultiSlider };\n\nfunction getLabelPrecision(_a) {\n var labelPrecision = _a.labelPrecision,\n stepSize = _a.stepSize; // infer default label precision from stepSize because that's how much the handle moves.\n\n return labelPrecision == null ? Utils.countDecimalPlaces(stepSize) : labelPrecision;\n}\n\nfunction getSortedInteractiveHandleProps(props) {\n return getSortedHandleProps(props, function (childProps) {\n return childProps.interactionKind !== HandleInteractionKind.NONE;\n });\n}\n\nfunction getSortedHandleProps(_a, predicate) {\n var children = _a.children;\n\n if (predicate === void 0) {\n predicate = function predicate() {\n return true;\n };\n }\n\n var maybeHandles = React.Children.map(children, function (child) {\n return Utils.isElementOfType(child, MultiSlider.Handle) && predicate(child.props) ? child.props : null;\n });\n var handles = maybeHandles != null ? maybeHandles : [];\n handles = handles.filter(function (handle) {\n return handle !== null;\n });\n handles.sort(function (left, right) {\n return left.value - right.value;\n });\n return handles;\n}","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","var anObject = require('../internals/an-object');\n\nvar aPossiblePrototype = require('../internals/a-possible-prototype'); // `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n\n/* eslint-disable no-proto */\n\n\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) {\n /* empty */\n }\n\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);else O.__proto__ = proto;\n return O;\n };\n}() : undefined);","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) {\n redefine(target, key, src[key], options);\n }\n\n return target;\n};","'use strict';\n\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function get() {\n return this;\n }\n });\n }\n};","var classof = require('../internals/classof-raw'); // `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\n\n\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$'); // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\n\nvar createMethod = function createMethod(TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n/** `Object#toString` result references. */\n\n\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n/** Built-in value references. */\n\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n}\n\nmodule.exports = baseGetTag;","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n\n\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;",";\n\n(function (root, factory) {\n if (typeof exports === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_enc = C.enc;\n /**\n * Base64 encoding strategy.\n */\n\n var Base64 = C_enc.Base64 = {\n /**\n * Converts a word array to a Base64 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Base64 string.\n *\n * @static\n *\n * @example\n *\n * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n */\n stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n var map = this._map; // Clamp excess bits\n\n wordArray.clamp(); // Convert\n\n var base64Chars = [];\n\n for (var i = 0; i < sigBytes; i += 3) {\n var byte1 = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n var byte2 = words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 0xff;\n var byte3 = words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 0xff;\n var triplet = byte1 << 16 | byte2 << 8 | byte3;\n\n for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) {\n base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 0x3f));\n }\n } // Add padding\n\n\n var paddingChar = map.charAt(64);\n\n if (paddingChar) {\n while (base64Chars.length % 4) {\n base64Chars.push(paddingChar);\n }\n }\n\n return base64Chars.join('');\n },\n\n /**\n * Converts a Base64 string to a word array.\n *\n * @param {string} base64Str The Base64 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n */\n parse: function parse(base64Str) {\n // Shortcuts\n var base64StrLength = base64Str.length;\n var map = this._map;\n var reverseMap = this._reverseMap;\n\n if (!reverseMap) {\n reverseMap = this._reverseMap = [];\n\n for (var j = 0; j < map.length; j++) {\n reverseMap[map.charCodeAt(j)] = j;\n }\n } // Ignore padding\n\n\n var paddingChar = map.charAt(64);\n\n if (paddingChar) {\n var paddingIndex = base64Str.indexOf(paddingChar);\n\n if (paddingIndex !== -1) {\n base64StrLength = paddingIndex;\n }\n } // Convert\n\n\n return parseLoop(base64Str, base64StrLength, reverseMap);\n },\n _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n };\n\n function parseLoop(base64Str, base64StrLength, reverseMap) {\n var words = [];\n var nBytes = 0;\n\n for (var i = 0; i < base64StrLength; i++) {\n if (i % 4) {\n var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << i % 4 * 2;\n var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> 6 - i % 4 * 2;\n var bitsCombined = bits1 | bits2;\n words[nBytes >>> 2] |= bitsCombined << 24 - nBytes % 4 * 8;\n nBytes++;\n }\n }\n\n return WordArray.create(words, nBytes);\n }\n })();\n\n return CryptoJS.enc.Base64;\n});",";\n\n(function (root, factory) {\n if (typeof exports === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function (Math) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo; // Constants table\n\n var T = []; // Compute constants\n\n (function () {\n for (var i = 0; i < 64; i++) {\n T[i] = Math.abs(Math.sin(i + 1)) * 0x100000000 | 0;\n }\n })();\n /**\n * MD5 hash algorithm.\n */\n\n\n var MD5 = C_algo.MD5 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = new WordArray.init([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476]);\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Swap endian\n for (var i = 0; i < 16; i++) {\n // Shortcuts\n var offset_i = offset + i;\n var M_offset_i = M[offset_i];\n M[offset_i] = (M_offset_i << 8 | M_offset_i >>> 24) & 0x00ff00ff | (M_offset_i << 24 | M_offset_i >>> 8) & 0xff00ff00;\n } // Shortcuts\n\n\n var H = this._hash.words;\n var M_offset_0 = M[offset + 0];\n var M_offset_1 = M[offset + 1];\n var M_offset_2 = M[offset + 2];\n var M_offset_3 = M[offset + 3];\n var M_offset_4 = M[offset + 4];\n var M_offset_5 = M[offset + 5];\n var M_offset_6 = M[offset + 6];\n var M_offset_7 = M[offset + 7];\n var M_offset_8 = M[offset + 8];\n var M_offset_9 = M[offset + 9];\n var M_offset_10 = M[offset + 10];\n var M_offset_11 = M[offset + 11];\n var M_offset_12 = M[offset + 12];\n var M_offset_13 = M[offset + 13];\n var M_offset_14 = M[offset + 14];\n var M_offset_15 = M[offset + 15]; // Working varialbes\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3]; // Computation\n\n a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n a = II(a, b, c, d, M_offset_0, 6, T[48]);\n d = II(d, a, b, c, M_offset_7, 10, T[49]);\n c = II(c, d, a, b, M_offset_14, 15, T[50]);\n b = II(b, c, d, a, M_offset_5, 21, T[51]);\n a = II(a, b, c, d, M_offset_12, 6, T[52]);\n d = II(d, a, b, c, M_offset_3, 10, T[53]);\n c = II(c, d, a, b, M_offset_10, 15, T[54]);\n b = II(b, c, d, a, M_offset_1, 21, T[55]);\n a = II(a, b, c, d, M_offset_8, 6, T[56]);\n d = II(d, a, b, c, M_offset_15, 10, T[57]);\n c = II(c, d, a, b, M_offset_6, 15, T[58]);\n b = II(b, c, d, a, M_offset_13, 21, T[59]);\n a = II(a, b, c, d, M_offset_4, 6, T[60]);\n d = II(d, a, b, c, M_offset_11, 10, T[61]);\n c = II(c, d, a, b, M_offset_2, 15, T[62]);\n b = II(b, c, d, a, M_offset_9, 21, T[63]); // Intermediate hash value\n\n H[0] = H[0] + a | 0;\n H[1] = H[1] + b | 0;\n H[2] = H[2] + c | 0;\n H[3] = H[3] + d | 0;\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8; // Add padding\n\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n var nBitsTotalL = nBitsTotal;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = (nBitsTotalH << 8 | nBitsTotalH >>> 24) & 0x00ff00ff | (nBitsTotalH << 24 | nBitsTotalH >>> 8) & 0xff00ff00;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = (nBitsTotalL << 8 | nBitsTotalL >>> 24) & 0x00ff00ff | (nBitsTotalL << 24 | nBitsTotalL >>> 8) & 0xff00ff00;\n data.sigBytes = (dataWords.length + 1) * 4; // Hash final blocks\n\n this._process(); // Shortcuts\n\n\n var hash = this._hash;\n var H = hash.words; // Swap endian\n\n for (var i = 0; i < 4; i++) {\n // Shortcut\n var H_i = H[i];\n H[i] = (H_i << 8 | H_i >>> 24) & 0x00ff00ff | (H_i << 24 | H_i >>> 8) & 0xff00ff00;\n } // Return final computed hash\n\n\n return hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n\n function FF(a, b, c, d, x, s, t) {\n var n = a + (b & c | ~b & d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n\n function GG(a, b, c, d, x, s, t) {\n var n = a + (b & d | c & ~d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n\n function HH(a, b, c, d, x, s, t) {\n var n = a + (b ^ c ^ d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n\n function II(a, b, c, d, x, s, t) {\n var n = a + (c ^ (b | ~d)) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.MD5('message');\n * var hash = CryptoJS.MD5(wordArray);\n */\n\n\n C.MD5 = Hasher._createHelper(MD5);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacMD5(message, key);\n */\n\n C.HmacMD5 = Hasher._createHmacHelper(MD5);\n })(Math);\n\n return CryptoJS.MD5;\n});","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar useDebounce_1 = require(\"./useDebounce\");\n\nexports.useDebounce = useDebounce_1.default;\n\nvar useDebouncedCallback_1 = require(\"./useDebouncedCallback\");\n\nexports.useDebouncedCallback = useDebouncedCallback_1.default;","import { __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nexport function resolveHostHeaderConfig(input) {\n return input;\n}\nexport var hostHeaderMiddleware = function hostHeaderMiddleware(options) {\n return function (next) {\n return function (args) {\n return __awaiter(void 0, void 0, void 0, function () {\n var request, _a, handlerProtocol;\n\n return __generator(this, function (_b) {\n if (!HttpRequest.isInstance(args.request)) return [2\n /*return*/\n , next(args)];\n request = args.request;\n _a = (options.requestHandler.metadata || {}).handlerProtocol, handlerProtocol = _a === void 0 ? \"\" : _a; //For H2 request, remove 'host' header and use ':authority' header instead\n //reference: https://nodejs.org/dist/latest-v13.x/docs/api/errors.html#ERR_HTTP2_INVALID_CONNECTION_HEADERS\n\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = \"\"; //non-H2 request and 'host' header is not set, set the 'host' header to request's hostname.\n } else if (!request.headers[\"host\"]) {\n request.headers[\"host\"] = request.hostname;\n }\n\n return [2\n /*return*/\n , next(args)];\n });\n });\n };\n };\n};\nexport var hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true\n};\nexport var getHostHeaderPlugin = function getHostHeaderPlugin(options) {\n return {\n applyToStack: function applyToStack(clientStack) {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n }\n };\n};","import { __values } from \"tslib\";\nimport { HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { buildQueryString } from \"@aws-sdk/querystring-builder\";\nimport { requestTimeout } from \"./request-timeout\";\n\nvar FetchHttpHandler =\n/** @class */\nfunction () {\n function FetchHttpHandler(_a) {\n var _b = _a === void 0 ? {} : _a,\n requestTimeout = _b.requestTimeout;\n\n this.requestTimeout = requestTimeout;\n }\n\n FetchHttpHandler.prototype.destroy = function () {// Do nothing. TLS and HTTP/2 connection pooling is handled by the browser.\n };\n\n FetchHttpHandler.prototype.handle = function (request, _a) {\n var _b = _a === void 0 ? {} : _a,\n abortSignal = _b.abortSignal;\n\n var requestTimeoutInMs = this.requestTimeout; // if the request was already aborted, prevent doing extra work\n\n if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {\n var abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return Promise.reject(abortError);\n }\n\n var path = request.path;\n\n if (request.query) {\n var queryString = buildQueryString(request.query);\n\n if (queryString) {\n path += \"?\" + queryString;\n }\n }\n\n var port = request.port,\n method = request.method;\n var url = request.protocol + \"//\" + request.hostname + (port ? \":\" + port : \"\") + path; // Request constructor doesn't allow GET/HEAD request with body\n // ref: https://github.com/whatwg/fetch/issues/551\n\n var body = method === \"GET\" || method === \"HEAD\" ? undefined : request.body;\n var requestOptions = {\n body: body,\n headers: new Headers(request.headers),\n method: method\n }; // some browsers support abort signal\n\n if (typeof AbortController !== \"undefined\") {\n requestOptions[\"signal\"] = abortSignal;\n }\n\n var fetchRequest = new Request(url, requestOptions);\n var raceOfPromises = [fetch(fetchRequest).then(function (response) {\n var e_1, _a;\n\n var fetchHeaders = response.headers;\n var transformedHeaders = {};\n\n try {\n for (var _b = __values(fetchHeaders.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var pair = _c.value;\n transformedHeaders[pair[0]] = pair[1];\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n var hasReadableStream = response.body !== undefined; // Return the response with buffered body\n\n if (!hasReadableStream) {\n return response.blob().then(function (body) {\n return {\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body: body\n })\n };\n });\n } // Return the response with streaming body\n\n\n return {\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body: response.body\n })\n };\n }), requestTimeout(requestTimeoutInMs)];\n\n if (abortSignal) {\n raceOfPromises.push(new Promise(function (resolve, reject) {\n abortSignal.onabort = function () {\n var abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n }));\n }\n\n return Promise.race(raceOfPromises);\n };\n\n return FetchHttpHandler;\n}();\n\nexport { FetchHttpHandler };","import { __values } from \"tslib\";\nimport { escapeUri } from \"@aws-sdk/util-uri-escape\";\nexport function buildQueryString(query) {\n var e_1, _a;\n\n var parts = [];\n\n try {\n for (var _b = __values(Object.keys(query).sort()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var value = query[key];\n key = escapeUri(key);\n\n if (Array.isArray(value)) {\n for (var i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(key + \"=\" + escapeUri(value[i]));\n }\n } else {\n var qsEntry = key;\n\n if (value || typeof value === \"string\") {\n qsEntry += \"=\" + escapeUri(value);\n }\n\n parts.push(qsEntry);\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return parts.join(\"&\");\n}","export function requestTimeout(timeoutInMs) {\n if (timeoutInMs === void 0) {\n timeoutInMs = 0;\n }\n\n return new Promise(function (resolve, reject) {\n if (timeoutInMs) {\n setTimeout(function () {\n var timeoutError = new Error(\"Request did not complete within \" + timeoutInMs + \" ms\");\n timeoutError.name = \"TimeoutError\";\n reject(timeoutError);\n }, timeoutInMs);\n }\n });\n}","import { __awaiter, __generator } from \"tslib\";\nimport { fromBase64 } from \"@aws-sdk/util-base64-browser\"; //reference: https://snack.expo.io/r1JCSWRGU\n\nexport var streamCollector = function streamCollector(stream) {\n if (typeof Blob === \"function\" && stream instanceof Blob) {\n return collectBlob(stream);\n }\n\n return collectStream(stream);\n};\n\nfunction collectBlob(blob) {\n return __awaiter(this, void 0, void 0, function () {\n var base64, arrayBuffer;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , readToBase64(blob)];\n\n case 1:\n base64 = _a.sent();\n arrayBuffer = fromBase64(base64);\n return [2\n /*return*/\n , new Uint8Array(arrayBuffer)];\n }\n });\n });\n}\n\nfunction collectStream(stream) {\n return __awaiter(this, void 0, void 0, function () {\n var res, reader, isDone, _a, done, value, prior;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n res = new Uint8Array(0);\n reader = stream.getReader();\n isDone = false;\n _b.label = 1;\n\n case 1:\n if (!!isDone) return [3\n /*break*/\n , 3];\n return [4\n /*yield*/\n , reader.read()];\n\n case 2:\n _a = _b.sent(), done = _a.done, value = _a.value;\n\n if (value) {\n prior = res;\n res = new Uint8Array(prior.length + value.length);\n res.set(prior);\n res.set(value, prior.length);\n }\n\n isDone = done;\n return [3\n /*break*/\n , 1];\n\n case 3:\n return [2\n /*return*/\n , res];\n }\n });\n });\n}\n\nfunction readToBase64(blob) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n\n reader.onloadend = function () {\n var _a; // reference: https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL\n // response from readAsDataURL is always prepended with \"data:*/*;base64,\"\n\n\n if (reader.readyState !== 2) {\n return reject(new Error(\"Reader aborted too early\"));\n }\n\n var result = (_a = reader.result) !== null && _a !== void 0 ? _a : \"\"; // Response can include only 'data:' for empty blob, return empty string in this case.\n // Otherwise, return the string after ','\n\n var commaIndex = result.indexOf(\",\");\n var dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;\n resolve(result.substring(dataOffset));\n };\n\n reader.onabort = function () {\n return reject(new Error(\"Read aborted\"));\n };\n\n reader.onerror = function () {\n return reject(reader.error);\n }; // reader.readAsArrayBuffer is not always available\n\n\n reader.readAsDataURL(blob);\n });\n}","export * from \"./fetch-http-handler\";\nexport * from \"./stream-collector\";","import { __assign, __awaiter, __generator } from \"tslib\";\nexport var resolveEndpointsConfig = function resolveEndpointsConfig(input) {\n var _a;\n\n return __assign(__assign({}, input), {\n tls: (_a = input.tls) !== null && _a !== void 0 ? _a : true,\n endpoint: input.endpoint ? normalizeEndpoint(input) : function () {\n return getEndPointFromRegion(input);\n },\n isCustomEndpoint: input.endpoint ? true : false\n });\n};\n\nvar normalizeEndpoint = function normalizeEndpoint(input) {\n var endpoint = input.endpoint,\n urlParser = input.urlParser;\n\n if (typeof endpoint === \"string\") {\n var promisified_1 = Promise.resolve(urlParser(endpoint));\n return function () {\n return promisified_1;\n };\n } else if (typeof endpoint === \"object\") {\n var promisified_2 = Promise.resolve(endpoint);\n return function () {\n return promisified_2;\n };\n }\n\n return endpoint;\n};\n\nvar getEndPointFromRegion = function getEndPointFromRegion(input) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, tls, region, dnsHostRegex, hostname;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = input.tls, tls = _a === void 0 ? true : _a;\n return [4\n /*yield*/\n , input.region()];\n\n case 1:\n region = _c.sent();\n dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n\n if (!dnsHostRegex.test(region)) {\n throw new Error(\"Invalid region in client config\");\n }\n\n return [4\n /*yield*/\n , input.regionInfoProvider(region)];\n\n case 2:\n hostname = ((_b = _c.sent()) !== null && _b !== void 0 ? _b : {}).hostname;\n\n if (!hostname) {\n throw new Error(\"Cannot resolve hostname from client config\");\n }\n\n return [2\n /*return*/\n , input.urlParser((tls ? \"https:\" : \"http:\") + \"//\" + hostname)];\n }\n });\n });\n};","import { __assign } from \"tslib\";\nexport var REGION_ENV_NAME = \"AWS_REGION\";\nexport var REGION_INI_NAME = \"region\";\nexport var NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: function environmentVariableSelector(env) {\n return env[REGION_ENV_NAME];\n },\n configFileSelector: function configFileSelector(profile) {\n return profile[REGION_INI_NAME];\n },\n default: function _default() {\n throw new Error(\"Region is missing\");\n }\n};\nexport var NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\"\n};\nexport var resolveRegionConfig = function resolveRegionConfig(input) {\n if (!input.region) {\n throw new Error(\"Region is missing\");\n }\n\n return __assign(__assign({}, input), {\n region: normalizeRegion(input.region)\n });\n};\n\nvar normalizeRegion = function normalizeRegion(region) {\n if (typeof region === \"string\") {\n var promisified_1 = Promise.resolve(region);\n return function () {\n return promisified_1;\n };\n }\n\n return region;\n};","export * from \"./CustomEndpointsConfig\";\nexport * from \"./EndpointsConfig\";\nexport * from \"./RegionConfig\";","import { __assign } from \"tslib\";\nexport function resolveUserAgentConfig(input) {\n return __assign(__assign({}, input), {\n customUserAgent: typeof input.customUserAgent === \"string\" ? [[input.customUserAgent]] : input.customUserAgent\n });\n}","export var USER_AGENT = \"user-agent\";\nexport var X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nexport var SPACE = \" \";\nexport var UA_ESCAPE_REGEX = /[^\\!\\#\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;","import { __assign, __awaiter, __generator, __read, __spreadArray } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { SPACE, UA_ESCAPE_REGEX, USER_AGENT, X_AMZ_USER_AGENT } from \"./constants\";\n/**\n * Build user agent header sections from:\n * 1. runtime-specific default user agent provider;\n * 2. custom user agent from `customUserAgent` client config;\n * 3. handler execution context set by internal SDK components;\n * The built user agent will be set to `x-amz-user-agent` header for ALL the\n * runtimes.\n * Please note that any override to the `user-agent` or `x-amz-user-agent` header\n * in the HTTP request is discouraged. Please use `customUserAgent` client\n * config or middleware setting the `userAgent` context to generate desired user\n * agent.\n */\n\nexport var userAgentMiddleware = function userAgentMiddleware(options) {\n return function (next, context) {\n return function (args) {\n return __awaiter(void 0, void 0, void 0, function () {\n var request, headers, userAgent, defaultUserAgent, customUserAgent, sdkUserAgentValue, normalUAValue;\n\n var _a, _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n request = args.request;\n if (!HttpRequest.isInstance(request)) return [2\n /*return*/\n , next(args)];\n headers = request.headers;\n userAgent = ((_a = context === null || context === void 0 ? void 0 : context.userAgent) === null || _a === void 0 ? void 0 : _a.map(escapeUserAgent)) || [];\n return [4\n /*yield*/\n , options.defaultUserAgentProvider()];\n\n case 1:\n defaultUserAgent = _c.sent().map(escapeUserAgent);\n customUserAgent = ((_b = options === null || options === void 0 ? void 0 : options.customUserAgent) === null || _b === void 0 ? void 0 : _b.map(escapeUserAgent)) || [];\n sdkUserAgentValue = __spreadArray(__spreadArray(__spreadArray([], __read(defaultUserAgent)), __read(userAgent)), __read(customUserAgent)).join(SPACE);\n normalUAValue = __spreadArray(__spreadArray([], __read(defaultUserAgent.filter(function (section) {\n return section.startsWith(\"aws-sdk-\");\n }))), __read(customUserAgent)).join(SPACE);\n\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? headers[USER_AGENT] + \" \" + normalUAValue : normalUAValue;\n }\n\n headers[USER_AGENT] = sdkUserAgentValue;\n } else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n\n return [2\n /*return*/\n , next(__assign(__assign({}, args), {\n request: request\n }))];\n }\n });\n });\n };\n };\n};\n/**\n * Escape the each pair according to https://tools.ietf.org/html/rfc5234 and join the pair with pattern `name/version`.\n * User agent name may include prefix like `md/`, `api/`, `os/` etc., we should not escape the `/` after the prefix.\n * @private\n */\n\nvar escapeUserAgent = function escapeUserAgent(_a) {\n var _b = __read(_a, 2),\n name = _b[0],\n version = _b[1];\n\n var prefixSeparatorIndex = name.indexOf(\"/\");\n var prefix = name.substring(0, prefixSeparatorIndex); // If no prefix, prefix is just \"\"\n\n var uaName = name.substring(prefixSeparatorIndex + 1);\n\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n\n return [prefix, uaName, version].filter(function (item) {\n return item && item.length > 0;\n }).map(function (item) {\n return item === null || item === void 0 ? void 0 : item.replace(UA_ESCAPE_REGEX, \"_\");\n }).join(\"/\");\n};\n\nexport var getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true\n};\nexport var getUserAgentPlugin = function getUserAgentPlugin(config) {\n return {\n applyToStack: function applyToStack(clientStack) {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n }\n };\n};","export * from \"./configurations\";\nexport * from \"./user-agent-middleware\";","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","var fails = require('../internals/fails');\n\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split; // fallback for non-array-like ES3 and non-enumerable old V8 strings\n\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\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};","module.exports = {};","var toIndexedObject = require('../internals/to-indexed-object');\n\nvar toLength = require('../internals/to-length');\n\nvar toAbsoluteIndex = require('../internals/to-absolute-index'); // `Array.prototype.{ indexOf, includes }` methods implementation\n\n\nvar createMethod = function createMethod(IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value; // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++]; // eslint-disable-next-line no-self-compare\n\n if (value != value) return true; // 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 }\n return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function isForced(feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == 'function' ? fails(detection) : !!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';\nmodule.exports = isForced;","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});","module.exports = {};","var classof = require('../internals/classof');\n\nvar Iterators = require('../internals/iterators');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];\n};","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\n\nvar classofRaw = require('../internals/classof-raw');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag'); // ES3 wrong here\n\nvar CORRECT_ARGUMENTS = classofRaw(function () {\n return arguments;\n}()) == 'Arguments'; // fallback for IE11 Script Access Denied error\n\nvar tryGet = function tryGet(it, key) {\n try {\n return it[key];\n } catch (error) {\n /* empty */\n }\n}; // getting tag from ES6+ `Object.prototype.toString`\n\n\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O) // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};","var internalObjectKeys = require('../internals/object-keys-internal');\n\nvar enumBugKeys = require('../internals/enum-bug-keys'); // `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\n\n\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};","var isObject = require('../internals/is-object');\n\nvar isArray = require('../internals/is-array');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species'); // `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\n\nmodule.exports = function (originalArray, length) {\n var C;\n\n if (isArray(originalArray)) {\n C = originalArray.constructor; // cross-realm fallback\n\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n }\n\n return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};","var fails = require('../internals/fails');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n\n constructor[SPECIES] = function () {\n return {\n foo: 1\n };\n };\n\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};","/**\n * Lo-Dash 2.3.0 (Custom Build) \n * Build: `lodash modularize modern exports=\"npm\" -o ./npm/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n/** Used to resolve the internal [[Class]] of values */\n\nvar toString = objectProto.toString;\n/** Used to detect if a method is native */\n\nvar reNative = RegExp('^' + String(toString).replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&').replace(/toString| for [^\\]]+/g, '.*?') + '$');\nmodule.exports = reNative;","'use strict';\n\nvar keys = require('object-keys');\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function isFunction(fn) {\n return typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function arePropertyDescriptorsSupported() {\n var obj = {};\n\n try {\n origDefineProperty(obj, 'x', {\n enumerable: false,\n value: obj\n }); // eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\n for (var _ in obj) {\n // jscs:ignore disallowUnusedVariables\n return false;\n }\n\n return obj.x === obj;\n } catch (e) {\n /* this is IE 8. */\n return false;\n }\n};\n\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function defineProperty(object, name, value, predicate) {\n if (name in object && (!isFunction(predicate) || !predicate())) {\n return;\n }\n\n if (supportsDescriptors) {\n origDefineProperty(object, name, {\n configurable: true,\n enumerable: false,\n value: value,\n writable: true\n });\n } else {\n object[name] = value;\n }\n};\n\nvar defineProperties = function defineProperties(object, map) {\n var predicates = arguments.length > 2 ? arguments[2] : {};\n var props = keys(map);\n\n if (hasSymbols) {\n props = concat.call(props, Object.getOwnPropertySymbols(map));\n }\n\n for (var i = 0; i < props.length; i += 1) {\n defineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n }\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\nmodule.exports = defineProperties;","var root = require('./_root');\n/** Built-in value references. */\n\n\nvar Symbol = root.Symbol;\nmodule.exports = Symbol;","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n\n\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || value !== value && other !== other;\n}\n\nmodule.exports = eq;","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** Alignment along the horizontal axis. */\nexport var Alignment = {\n CENTER: \"center\",\n LEFT: \"left\",\n RIGHT: \"right\"\n};","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __decorate, __extends } from \"tslib\";\nimport * as React from \"react\";\nimport { findDOMNode } from \"react-dom\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport { AbstractPureComponent2 } from \"../../common\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { safeInvoke } from \"../../common/utils\";\n\nvar ResizeSensor =\n/** @class */\nfunction (_super) {\n __extends(ResizeSensor, _super);\n\n function ResizeSensor() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.element = null;\n _this.observer = new ResizeObserver(function (entries) {\n return safeInvoke(_this.props.onResize, entries);\n });\n return _this;\n }\n\n ResizeSensor.prototype.render = function () {\n // pass-through render of single child\n return React.Children.only(this.props.children);\n };\n\n ResizeSensor.prototype.componentDidMount = function () {\n this.observeElement();\n };\n\n ResizeSensor.prototype.componentDidUpdate = function (prevProps) {\n this.observeElement(this.props.observeParents !== prevProps.observeParents);\n };\n\n ResizeSensor.prototype.componentWillUnmount = function () {\n this.observer.disconnect();\n };\n /**\n * Observe the DOM element, if defined and different from the currently\n * observed element. Pass `force` argument to skip element checks and always\n * re-observe.\n */\n\n\n ResizeSensor.prototype.observeElement = function (force) {\n if (force === void 0) {\n force = false;\n }\n\n var element = this.getElement();\n\n if (!(element instanceof Element)) {\n // stop everything if not defined\n this.observer.disconnect();\n return;\n }\n\n if (element === this.element && !force) {\n // quit if given same element -- nothing to update (unless forced)\n return;\n } else {\n // clear observer list if new element\n this.observer.disconnect(); // remember element reference for next time\n\n this.element = element;\n } // observer callback is invoked immediately when observing new elements\n\n\n this.observer.observe(element);\n\n if (this.props.observeParents) {\n var parent_1 = element.parentElement;\n\n while (parent_1 != null) {\n this.observer.observe(parent_1);\n parent_1 = parent_1.parentElement;\n }\n }\n };\n\n ResizeSensor.prototype.getElement = function () {\n try {\n // using findDOMNode for two reasons:\n // 1. cloning to insert a ref is unwieldy and not performant.\n // 2. ensure that we resolve to an actual DOM node (instead of any JSX ref instance).\n return findDOMNode(this);\n } catch (_a) {\n // swallow error if findDOMNode is run on unmounted component.\n return null;\n }\n };\n\n ResizeSensor.displayName = DISPLAYNAME_PREFIX + \".ResizeSensor\";\n ResizeSensor = __decorate([polyfill], ResizeSensor);\n return ResizeSensor;\n}(AbstractPureComponent2);\n\nexport { ResizeSensor };","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","// Top level file is just a mixin of submodules & constants\n'use strict';\n\nvar assign = require('./lib/utils/common').assign;\n\nvar deflate = require('./lib/deflate');\n\nvar inflate = require('./lib/inflate');\n\nvar constants = require('./lib/zlib/constants');\n\nvar pako = {};\nassign(pako, deflate, inflate, constants);\nmodule.exports = pako;","/*\n * Copyright 2020 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CLAMP_MIN_MAX } from \"../errors\";\n/** Returns whether `process.env.NODE_ENV` exists and equals `env`. */\n\nexport function isNodeEnv(env) {\n return typeof process !== \"undefined\" && process.env && process.env.NODE_ENV === env;\n}\n/**\n * Returns the difference in length between two arrays. A `null` argument is\n * considered an empty list. The return value will be positive if `a` is longer\n * than `b`, negative if the opposite is true, and zero if their lengths are\n * equal.\n */\n\nexport function arrayLengthCompare(a, b) {\n if (a === void 0) {\n a = [];\n }\n\n if (b === void 0) {\n b = [];\n }\n\n return a.length - b.length;\n}\n/**\n * Returns true if the two numbers are within the given tolerance of each other.\n * This is useful to correct for floating point precision issues, less useful\n * for integers.\n */\n\nexport function approxEqual(a, b, tolerance) {\n if (tolerance === void 0) {\n tolerance = 0.00001;\n }\n\n return Math.abs(a - b) <= tolerance;\n}\n/**\n * Clamps the given number between min and max values. Returns value if within\n * range, or closest bound.\n */\n\nexport function clamp(val, min, max) {\n if (val == null) {\n return val;\n }\n\n if (max < min) {\n throw new Error(CLAMP_MIN_MAX);\n }\n\n return Math.min(Math.max(val, min), max);\n}\n/** Returns the number of decimal places in the given number. */\n\nexport function countDecimalPlaces(num) {\n if (!isFinite(num)) {\n return 0;\n }\n\n var e = 1;\n var p = 0;\n\n while (Math.round(num * e) / e !== num) {\n e *= 10;\n p++;\n }\n\n return p;\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","import Stylis from 'stylis/stylis.min';\nimport _insertRulePlugin from 'stylis-rule-sheet';\nimport React, { cloneElement, createContext, Component, createElement } from 'react';\nimport unitless from '@emotion/unitless';\nimport { isElement, isValidElementType, ForwardRef } from 'react-is';\nimport memoize from 'memoize-one';\nimport PropTypes from 'prop-types';\nimport validAttr from '@emotion/is-prop-valid';\nimport merge from 'merge-anything'; // \n\nvar interleave = function interleave(strings, interpolations) {\n var result = [strings[0]];\n\n for (var i = 0, len = interpolations.length; i < len; i += 1) {\n result.push(interpolations[i], strings[i + 1]);\n }\n\n return result;\n};\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}; // \n\n\nvar isPlainObject = function isPlainObject(x) {\n return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x.constructor === Object;\n}; // \n\n\nvar EMPTY_ARRAY = Object.freeze([]);\nvar EMPTY_OBJECT = Object.freeze({}); // \n\nfunction isFunction(test) {\n return typeof test === 'function';\n} // \n\n\nfunction getComponentName(target) {\n return (process.env.NODE_ENV !== 'production' ? typeof target === 'string' && target : false) || target.displayName || target.name || 'Component';\n} // \n\n\nfunction isStatelessFunction(test) {\n return typeof test === 'function' && !(test.prototype && test.prototype.isReactComponent);\n} // \n\n\nfunction isStyledComponent(target) {\n return target && typeof target.styledComponentId === 'string';\n} // \n\n\nvar SC_ATTR = typeof process !== 'undefined' && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || 'data-styled';\nvar SC_VERSION_ATTR = 'data-styled-version';\nvar SC_STREAM_ATTR = 'data-styled-streamed';\nvar IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\nvar DISABLE_SPEEDY = typeof SC_DISABLE_SPEEDY === 'boolean' && SC_DISABLE_SPEEDY || typeof process !== 'undefined' && (process.env.REACT_APP_SC_DISABLE_SPEEDY || process.env.SC_DISABLE_SPEEDY) || process.env.NODE_ENV !== 'production'; // Shared empty execution context when generating static styles\n\nvar STATIC_EXECUTION_CONTEXT = {}; // \n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n */\n\nvar ERRORS = process.env.NODE_ENV !== 'production' ? {\n \"1\": \"Cannot create styled-component for component: %s.\\n\\n\",\n \"2\": \"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",\n \"3\": \"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",\n \"4\": \"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",\n \"5\": \"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",\n \"6\": \"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",\n \"7\": \"ThemeProvider: Please return an object from your \\\"theme\\\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n\",\n \"8\": \"ThemeProvider: Please make your \\\"theme\\\" prop an object.\\n\\n\",\n \"9\": \"Missing document ``\\n\\n\",\n \"10\": \"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",\n \"11\": \"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",\n \"12\": \"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",\n \"13\": \"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\"\n} : {};\n/**\n * super basic version of sprintf\n */\n\nfunction format() {\n var a = arguments.length <= 0 ? undefined : arguments[0];\n var b = [];\n\n for (var c = 1, len = arguments.length; c < len; c += 1) {\n b.push(arguments.length <= c ? undefined : arguments[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n return a;\n}\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n */\n\n\nvar StyledComponentsError = function (_Error) {\n inherits(StyledComponentsError, _Error);\n\n function StyledComponentsError(code) {\n classCallCheck(this, StyledComponentsError);\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (process.env.NODE_ENV === 'production') {\n var _this = possibleConstructorReturn(this, _Error.call(this, 'An error occurred. See https://github.com/styled-components/styled-components/blob/master/packages/styled-components/src/utils/errors.md#' + code + ' for more information.' + (interpolations.length > 0 ? ' Additional arguments: ' + interpolations.join(', ') : '')));\n } else {\n var _this = possibleConstructorReturn(this, _Error.call(this, format.apply(undefined, [ERRORS[code]].concat(interpolations)).trim()));\n }\n\n return possibleConstructorReturn(_this);\n }\n\n return StyledComponentsError;\n}(Error); // \n\n\nvar SC_COMPONENT_ID = /^[^\\S\\n]*?\\/\\* sc-component-id:\\s*(\\S+)\\s+\\*\\//gm;\n\nvar extractComps = function extractComps(maybeCSS) {\n var css = '' + (maybeCSS || ''); // Definitely a string, and a clone\n\n var existingComponents = [];\n css.replace(SC_COMPONENT_ID, function (match, componentId, matchIndex) {\n existingComponents.push({\n componentId: componentId,\n matchIndex: matchIndex\n });\n return match;\n });\n return existingComponents.map(function (_ref, i) {\n var componentId = _ref.componentId,\n matchIndex = _ref.matchIndex;\n var nextComp = existingComponents[i + 1];\n var cssFromDOM = nextComp ? css.slice(matchIndex, nextComp.matchIndex) : css.slice(matchIndex);\n return {\n componentId: componentId,\n cssFromDOM: cssFromDOM\n };\n });\n}; // \n\n\nvar COMMENT_REGEX = /^\\s*\\/\\/.*$/gm; // NOTE: This stylis instance is only used to split rules from SSR'd style tags\n\nvar stylisSplitter = new Stylis({\n global: false,\n cascade: true,\n keyframe: false,\n prefix: false,\n compress: false,\n semicolon: true\n});\nvar stylis = new Stylis({\n global: false,\n cascade: true,\n keyframe: false,\n prefix: true,\n compress: false,\n semicolon: false // NOTE: This means \"autocomplete missing semicolons\"\n\n}); // Wrap `insertRulePlugin to build a list of rules,\n// and then make our own plugin to return the rules. This\n// makes it easier to hook into the existing SSR architecture\n\nvar parsingRules = []; // eslint-disable-next-line consistent-return\n\nvar returnRulesPlugin = function returnRulesPlugin(context) {\n if (context === -2) {\n var parsedRules = parsingRules;\n parsingRules = [];\n return parsedRules;\n }\n};\n\nvar parseRulesPlugin = _insertRulePlugin(function (rule) {\n parsingRules.push(rule);\n});\n\nvar _componentId = void 0;\n\nvar _selector = void 0;\n\nvar _selectorRegexp = void 0;\n\nvar selfReferenceReplacer = function selfReferenceReplacer(match, offset, string) {\n if ( // the first self-ref is always untouched\n offset > 0 && // there should be at least two self-refs to do a replacement (.b > .b)\n string.slice(0, offset).indexOf(_selector) !== -1 && // no consecutive self refs (.b.b); that is a precedence boost and treated differently\n string.slice(offset - _selector.length, offset) !== _selector) {\n return '.' + _componentId;\n }\n\n return match;\n};\n/**\n * When writing a style like\n *\n * & + & {\n * color: red;\n * }\n *\n * The second ampersand should be a reference to the static component class. stylis\n * has no knowledge of static class so we have to intelligently replace the base selector.\n */\n\n\nvar selfReferenceReplacementPlugin = function selfReferenceReplacementPlugin(context, _, selectors) {\n if (context === 2 && selectors.length && selectors[0].lastIndexOf(_selector) > 0) {\n // eslint-disable-next-line no-param-reassign\n selectors[0] = selectors[0].replace(_selectorRegexp, selfReferenceReplacer);\n }\n};\n\nstylis.use([selfReferenceReplacementPlugin, parseRulesPlugin, returnRulesPlugin]);\nstylisSplitter.use([parseRulesPlugin, returnRulesPlugin]);\n\nvar splitByRules = function splitByRules(css) {\n return stylisSplitter('', css);\n};\n\nfunction stringifyRules(rules, selector, prefix) {\n var componentId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '&';\n var flatCSS = rules.join('').replace(COMMENT_REGEX, ''); // replace JS comments\n\n var cssStr = selector && prefix ? prefix + ' ' + selector + ' { ' + flatCSS + ' }' : flatCSS; // stylis has no concept of state to be passed to plugins\n // but since JS is single=threaded, we can rely on that to ensure\n // these properties stay in sync with the current stylis run\n\n _componentId = componentId;\n _selector = selector;\n _selectorRegexp = new RegExp('\\\\' + _selector + '\\\\b', 'g');\n return stylis(prefix || !selector ? '' : selector, cssStr);\n} // \n\n/* eslint-disable camelcase, no-undef */\n\n\nvar getNonce = function getNonce() {\n return typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n}; // \n\n/* These are helpers for the StyleTags to keep track of the injected\n * rule names for each (component) ID that they're keeping track of.\n * They're crucial for detecting whether a name has already been\n * injected.\n * (This excludes rehydrated names) */\n\n/* adds a new ID:name pairing to a names dictionary */\n\n\nvar addNameForId = function addNameForId(names, id, name) {\n if (name) {\n // eslint-disable-next-line no-param-reassign\n var namesForId = names[id] || (names[id] = Object.create(null));\n namesForId[name] = true;\n }\n};\n/* resets an ID entirely by overwriting it in the dictionary */\n\n\nvar resetIdNames = function resetIdNames(names, id) {\n // eslint-disable-next-line no-param-reassign\n names[id] = Object.create(null);\n};\n/* factory for a names dictionary checking the existance of an ID:name pairing */\n\n\nvar hasNameForId = function hasNameForId(names) {\n return function (id, name) {\n return names[id] !== undefined && names[id][name];\n };\n};\n/* stringifies names for the html/element output */\n\n\nvar stringifyNames = function stringifyNames(names) {\n var str = ''; // eslint-disable-next-line guard-for-in\n\n for (var id in names) {\n str += Object.keys(names[id]).join(' ') + ' ';\n }\n\n return str.trim();\n};\n/* clones the nested names dictionary */\n\n\nvar cloneNames = function cloneNames(names) {\n var clone = Object.create(null); // eslint-disable-next-line guard-for-in\n\n for (var id in names) {\n clone[id] = _extends({}, names[id]);\n }\n\n return clone;\n}; // \n\n/* These are helpers that deal with the insertRule (aka speedy) API\n * They are used in the StyleTags and specifically the speedy tag\n */\n\n/* retrieve a sheet for a given style tag */\n\n\nvar sheetForTag = function sheetForTag(tag) {\n // $FlowFixMe\n if (tag.sheet) return tag.sheet;\n /* Firefox quirk requires us to step through all stylesheets to find one owned by the given tag */\n\n var size = tag.ownerDocument.styleSheets.length;\n\n for (var i = 0; i < size; i += 1) {\n var sheet = tag.ownerDocument.styleSheets[i]; // $FlowFixMe\n\n if (sheet.ownerNode === tag) return sheet;\n }\n /* we should always be able to find a tag */\n\n\n throw new StyledComponentsError(10);\n};\n/* insert a rule safely and return whether it was actually injected */\n\n\nvar safeInsertRule = function safeInsertRule(sheet, cssRule, index) {\n /* abort early if cssRule string is falsy */\n if (!cssRule) return false;\n var maxIndex = sheet.cssRules.length;\n\n try {\n /* use insertRule and cap passed index with maxIndex (no of cssRules) */\n sheet.insertRule(cssRule, index <= maxIndex ? index : maxIndex);\n } catch (err) {\n /* any error indicates an invalid rule */\n return false;\n }\n\n return true;\n};\n/* deletes `size` rules starting from `removalIndex` */\n\n\nvar deleteRules = function deleteRules(sheet, removalIndex, size) {\n var lowerBound = removalIndex - size;\n\n for (var i = removalIndex; i > lowerBound; i -= 1) {\n sheet.deleteRule(i);\n }\n}; // \n\n/* this marker separates component styles and is important for rehydration */\n\n\nvar makeTextMarker = function makeTextMarker(id) {\n return '\\n/* sc-component-id: ' + id + ' */\\n';\n};\n/* add up all numbers in array up until and including the index */\n\n\nvar addUpUntilIndex = function addUpUntilIndex(sizes, index) {\n var totalUpToIndex = 0;\n\n for (var i = 0; i <= index; i += 1) {\n totalUpToIndex += sizes[i];\n }\n\n return totalUpToIndex;\n};\n/* create a new style tag after lastEl */\n\n\nvar makeStyleTag = function makeStyleTag(target, tagEl, insertBefore) {\n var targetDocument = document;\n if (target) targetDocument = target.ownerDocument;else if (tagEl) targetDocument = tagEl.ownerDocument;\n var el = targetDocument.createElement('style');\n el.setAttribute(SC_ATTR, '');\n el.setAttribute(SC_VERSION_ATTR, \"4.4.1\");\n var nonce = getNonce();\n\n if (nonce) {\n el.setAttribute('nonce', nonce);\n }\n /* Work around insertRule quirk in EdgeHTML */\n\n\n el.appendChild(targetDocument.createTextNode(''));\n\n if (target && !tagEl) {\n /* Append to target when no previous element was passed */\n target.appendChild(el);\n } else {\n if (!tagEl || !target || !tagEl.parentNode) {\n throw new StyledComponentsError(6);\n }\n /* Insert new style tag after the previous one */\n\n\n tagEl.parentNode.insertBefore(el, insertBefore ? tagEl : tagEl.nextSibling);\n }\n\n return el;\n};\n/* takes a css factory function and outputs an html styled tag factory */\n\n\nvar wrapAsHtmlTag = function wrapAsHtmlTag(css, names) {\n return function (additionalAttrs) {\n var nonce = getNonce();\n var attrs = [nonce && 'nonce=\"' + nonce + '\"', SC_ATTR + '=\"' + stringifyNames(names) + '\"', SC_VERSION_ATTR + '=\"' + \"4.4.1\" + '\"', additionalAttrs];\n var htmlAttr = attrs.filter(Boolean).join(' ');\n return '';\n };\n};\n/* takes a css factory function and outputs an element factory */\n\n\nvar wrapAsElement = function wrapAsElement(css, names) {\n return function () {\n var _props;\n\n var props = (_props = {}, _props[SC_ATTR] = stringifyNames(names), _props[SC_VERSION_ATTR] = \"4.4.1\", _props);\n var nonce = getNonce();\n\n if (nonce) {\n // $FlowFixMe\n props.nonce = nonce;\n } // eslint-disable-next-line react/no-danger\n\n\n return React.createElement('style', _extends({}, props, {\n dangerouslySetInnerHTML: {\n __html: css()\n }\n }));\n };\n};\n\nvar getIdsFromMarkersFactory = function getIdsFromMarkersFactory(markers) {\n return function () {\n return Object.keys(markers);\n };\n};\n/* speedy tags utilise insertRule */\n\n\nvar makeSpeedyTag = function makeSpeedyTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n var sizes = [];\n var extractImport = getImportRuleTag !== undefined;\n /* indicates whether getImportRuleTag was called */\n\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = sizes.length;\n sizes.push(0);\n resetIdNames(names, id);\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var sheet = sheetForTag(el);\n var insertIndex = addUpUntilIndex(sizes, marker);\n var injectedRules = 0;\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var cssRule = cssRules[i];\n var mayHaveImport = extractImport;\n /* @import rules are reordered to appear first */\n\n if (mayHaveImport && cssRule.indexOf('@import') !== -1) {\n importRules.push(cssRule);\n } else if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) {\n mayHaveImport = false;\n injectedRules += 1;\n }\n }\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true; // $FlowFixMe\n\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n\n sizes[marker] += injectedRules;\n /* add up no of injected rules */\n\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return; // $FlowFixMe\n\n if (el.isConnected === false) return;\n var size = sizes[marker];\n var sheet = sheetForTag(el);\n var removalIndex = addUpUntilIndex(sizes, marker) - 1;\n deleteRules(sheet, removalIndex, size);\n sizes[marker] = 0;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var _sheetForTag = sheetForTag(el),\n cssRules = _sheetForTag.cssRules;\n\n var str = ''; // eslint-disable-next-line guard-for-in\n\n for (var id in markers) {\n str += makeTextMarker(id);\n var marker = markers[id];\n var end = addUpUntilIndex(sizes, marker);\n var size = sizes[marker];\n\n for (var i = end - size; i < end; i += 1) {\n var rule = cssRules[i];\n\n if (rule !== undefined) {\n str += rule.cssText;\n }\n }\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeTextNode = function makeTextNode(targetDocument, id) {\n return targetDocument.createTextNode(makeTextMarker(id));\n};\n\nvar makeBrowserTag = function makeBrowserTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n var extractImport = getImportRuleTag !== undefined;\n /* indicates whether getImportRuleTag was called */\n\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = makeTextNode(el.ownerDocument, id);\n el.appendChild(markers[id]);\n names[id] = Object.create(null);\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var rule = cssRules[i];\n var mayHaveImport = extractImport;\n\n if (mayHaveImport && rule.indexOf('@import') !== -1) {\n importRules.push(rule);\n } else {\n mayHaveImport = false;\n var separator = i === cssRulesSize - 1 ? '' : ' ';\n marker.appendData('' + rule + separator);\n }\n }\n\n addNameForId(names, id, name);\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true; // $FlowFixMe\n\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n /* create new empty text node and replace the current one */\n\n var newMarker = makeTextNode(el.ownerDocument, id);\n el.replaceChild(newMarker, marker);\n markers[id] = newMarker;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var str = ''; // eslint-disable-next-line guard-for-in\n\n for (var id in markers) {\n str += markers[id].data;\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeServerTag = function makeServerTag(namesArg, markersArg) {\n var names = namesArg === undefined ? Object.create(null) : namesArg;\n var markers = markersArg === undefined ? Object.create(null) : markersArg;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n\n if (prev !== undefined) {\n return prev;\n }\n\n return markers[id] = [''];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n marker[0] += cssRules.join(' ');\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n marker[0] = '';\n resetIdNames(names, id);\n };\n\n var css = function css() {\n var str = ''; // eslint-disable-next-line guard-for-in\n\n for (var id in markers) {\n var cssForId = markers[id][0];\n\n if (cssForId) {\n str += makeTextMarker(id) + cssForId;\n }\n }\n\n return str;\n };\n\n var clone = function clone() {\n var namesClone = cloneNames(names);\n var markersClone = Object.create(null); // eslint-disable-next-line guard-for-in\n\n for (var id in markers) {\n markersClone[id] = [markers[id][0]];\n }\n\n return makeServerTag(namesClone, markersClone);\n };\n\n var tag = {\n clone: clone,\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: null,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n return tag;\n};\n\nvar makeTag = function makeTag(target, tagEl, forceServer, insertBefore, getImportRuleTag) {\n if (IS_BROWSER && !forceServer) {\n var el = makeStyleTag(target, tagEl, insertBefore);\n\n if (DISABLE_SPEEDY) {\n return makeBrowserTag(el, getImportRuleTag);\n } else {\n return makeSpeedyTag(el, getImportRuleTag);\n }\n }\n\n return makeServerTag();\n};\n\nvar rehydrate = function rehydrate(tag, els, extracted) {\n /* add all extracted components to the new tag */\n for (var i = 0, len = extracted.length; i < len; i += 1) {\n var _extracted$i = extracted[i],\n componentId = _extracted$i.componentId,\n cssFromDOM = _extracted$i.cssFromDOM;\n var cssRules = splitByRules(cssFromDOM);\n tag.insertRules(componentId, cssRules);\n }\n /* remove old HTMLStyleElements, since they have been rehydrated */\n\n\n for (var _i = 0, _len = els.length; _i < _len; _i += 1) {\n var el = els[_i];\n\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n}; // \n\n\nvar SPLIT_REGEX = /\\s+/;\n/* determine the maximum number of components before tags are sharded */\n\nvar MAX_SIZE = void 0;\n\nif (IS_BROWSER) {\n /* in speedy mode we can keep a lot more rules in a sheet before a slowdown can be expected */\n MAX_SIZE = DISABLE_SPEEDY ? 40 : 1000;\n} else {\n /* for servers we do not need to shard at all */\n MAX_SIZE = -1;\n}\n\nvar sheetRunningId = 0;\nvar master = void 0;\n\nvar StyleSheet = function () {\n /* a map from ids to tags */\n\n /* deferred rules for a given id */\n\n /* this is used for not reinjecting rules via hasNameForId() */\n\n /* when rules for an id are removed using remove() we have to ignore rehydratedNames for it */\n\n /* a list of tags belonging to this StyleSheet */\n\n /* a tag for import rules */\n\n /* current capacity until a new tag must be created */\n\n /* children (aka clones) of this StyleSheet inheriting all and future injections */\n function StyleSheet() {\n var _this = this;\n\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : IS_BROWSER ? document.head : null;\n var forceServer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n classCallCheck(this, StyleSheet);\n\n this.getImportRuleTag = function () {\n var importRuleTag = _this.importRuleTag;\n\n if (importRuleTag !== undefined) {\n return importRuleTag;\n }\n\n var firstTag = _this.tags[0];\n var insertBefore = true;\n return _this.importRuleTag = makeTag(_this.target, firstTag ? firstTag.styleTag : null, _this.forceServer, insertBefore);\n };\n\n sheetRunningId += 1;\n this.id = sheetRunningId;\n this.forceServer = forceServer;\n this.target = forceServer ? null : target;\n this.tagMap = {};\n this.deferred = {};\n this.rehydratedNames = {};\n this.ignoreRehydratedNames = {};\n this.tags = [];\n this.capacity = 1;\n this.clones = [];\n }\n /* rehydrate all SSR'd style tags */\n\n\n StyleSheet.prototype.rehydrate = function rehydrate$$1() {\n if (!IS_BROWSER || this.forceServer) return this;\n var els = [];\n var extracted = [];\n var isStreamed = false;\n /* retrieve all of our SSR style elements from the DOM */\n\n var nodes = document.querySelectorAll('style[' + SC_ATTR + '][' + SC_VERSION_ATTR + '=\"' + \"4.4.1\" + '\"]');\n var nodesSize = nodes.length;\n /* abort rehydration if no previous style tags were found */\n\n if (!nodesSize) return this;\n\n for (var i = 0; i < nodesSize; i += 1) {\n var el = nodes[i];\n /* check if style tag is a streamed tag */\n\n if (!isStreamed) isStreamed = !!el.getAttribute(SC_STREAM_ATTR);\n /* retrieve all component names */\n\n var elNames = (el.getAttribute(SC_ATTR) || '').trim().split(SPLIT_REGEX);\n var elNamesSize = elNames.length;\n\n for (var j = 0, name; j < elNamesSize; j += 1) {\n name = elNames[j];\n /* add rehydrated name to sheet to avoid re-adding styles */\n\n this.rehydratedNames[name] = true;\n }\n /* extract all components and their CSS */\n\n\n extracted.push.apply(extracted, extractComps(el.textContent));\n /* store original HTMLStyleElement */\n\n els.push(el);\n }\n /* abort rehydration if nothing was extracted */\n\n\n var extractedSize = extracted.length;\n if (!extractedSize) return this;\n /* create a tag to be used for rehydration */\n\n var tag = this.makeTag(null);\n rehydrate(tag, els, extracted);\n /* reset capacity and adjust MAX_SIZE by the initial size of the rehydration */\n\n this.capacity = Math.max(1, MAX_SIZE - extractedSize);\n this.tags.push(tag);\n /* retrieve all component ids */\n\n for (var _j = 0; _j < extractedSize; _j += 1) {\n this.tagMap[extracted[_j].componentId] = tag;\n }\n\n return this;\n };\n /* retrieve a \"master\" instance of StyleSheet which is typically used when no other is available\n * The master StyleSheet is targeted by createGlobalStyle, keyframes, and components outside of any\n * StyleSheetManager's context */\n\n /* reset the internal \"master\" instance */\n\n\n StyleSheet.reset = function reset() {\n var forceServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n master = new StyleSheet(undefined, forceServer).rehydrate();\n };\n /* adds \"children\" to the StyleSheet that inherit all of the parents' rules\n * while their own rules do not affect the parent */\n\n\n StyleSheet.prototype.clone = function clone() {\n var sheet = new StyleSheet(this.target, this.forceServer);\n /* add to clone array */\n\n this.clones.push(sheet);\n /* clone all tags */\n\n sheet.tags = this.tags.map(function (tag) {\n var ids = tag.getIds();\n var newTag = tag.clone();\n /* reconstruct tagMap */\n\n for (var i = 0; i < ids.length; i += 1) {\n sheet.tagMap[ids[i]] = newTag;\n }\n\n return newTag;\n });\n /* clone other maps */\n\n sheet.rehydratedNames = _extends({}, this.rehydratedNames);\n sheet.deferred = _extends({}, this.deferred);\n return sheet;\n };\n /* force StyleSheet to create a new tag on the next injection */\n\n\n StyleSheet.prototype.sealAllTags = function sealAllTags() {\n this.capacity = 1;\n this.tags.forEach(function (tag) {\n // eslint-disable-next-line no-param-reassign\n tag.sealed = true;\n });\n };\n\n StyleSheet.prototype.makeTag = function makeTag$$1(tag) {\n var lastEl = tag ? tag.styleTag : null;\n var insertBefore = false;\n return makeTag(this.target, lastEl, this.forceServer, insertBefore, this.getImportRuleTag);\n };\n /* get a tag for a given componentId, assign the componentId to one, or shard */\n\n\n StyleSheet.prototype.getTagForId = function getTagForId(id) {\n /* simply return a tag, when the componentId was already assigned one */\n var prev = this.tagMap[id];\n\n if (prev !== undefined && !prev.sealed) {\n return prev;\n }\n\n var tag = this.tags[this.tags.length - 1];\n /* shard (create a new tag) if the tag is exhausted (See MAX_SIZE) */\n\n this.capacity -= 1;\n\n if (this.capacity === 0) {\n this.capacity = MAX_SIZE;\n tag = this.makeTag(tag);\n this.tags.push(tag);\n }\n\n return this.tagMap[id] = tag;\n };\n /* mainly for createGlobalStyle to check for its id */\n\n\n StyleSheet.prototype.hasId = function hasId(id) {\n return this.tagMap[id] !== undefined;\n };\n /* caching layer checking id+name to already have a corresponding tag and injected rules */\n\n\n StyleSheet.prototype.hasNameForId = function hasNameForId(id, name) {\n /* exception for rehydrated names which are checked separately */\n if (this.ignoreRehydratedNames[id] === undefined && this.rehydratedNames[name]) {\n return true;\n }\n\n var tag = this.tagMap[id];\n return tag !== undefined && tag.hasNameForId(id, name);\n };\n /* registers a componentId and registers it on its tag */\n\n\n StyleSheet.prototype.deferredInject = function deferredInject(id, cssRules) {\n /* don't inject when the id is already registered */\n if (this.tagMap[id] !== undefined) return;\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].deferredInject(id, cssRules);\n }\n\n this.getTagForId(id).insertMarker(id);\n this.deferred[id] = cssRules;\n };\n /* injects rules for a given id with a name that will need to be cached */\n\n\n StyleSheet.prototype.inject = function inject(id, cssRules, name) {\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].inject(id, cssRules, name);\n }\n\n var tag = this.getTagForId(id);\n /* add deferred rules for component */\n\n if (this.deferred[id] !== undefined) {\n // Combine passed cssRules with previously deferred CSS rules\n // NOTE: We cannot mutate the deferred array itself as all clones\n // do the same (see clones[i].inject)\n var rules = this.deferred[id].concat(cssRules);\n tag.insertRules(id, rules, name);\n this.deferred[id] = undefined;\n } else {\n tag.insertRules(id, cssRules, name);\n }\n };\n /* removes all rules for a given id, which doesn't remove its marker but resets it */\n\n\n StyleSheet.prototype.remove = function remove(id) {\n var tag = this.tagMap[id];\n if (tag === undefined) return;\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].remove(id);\n }\n /* remove all rules from the tag */\n\n\n tag.removeRules(id);\n /* ignore possible rehydrated names */\n\n this.ignoreRehydratedNames[id] = true;\n /* delete possible deferred rules */\n\n this.deferred[id] = undefined;\n };\n\n StyleSheet.prototype.toHTML = function toHTML() {\n return this.tags.map(function (tag) {\n return tag.toHTML();\n }).join('');\n };\n\n StyleSheet.prototype.toReactElements = function toReactElements() {\n var id = this.id;\n return this.tags.map(function (tag, i) {\n var key = 'sc-' + id + '-' + i;\n return cloneElement(tag.toElement(), {\n key: key\n });\n });\n };\n\n createClass(StyleSheet, null, [{\n key: 'master',\n get: function get$$1() {\n return master || (master = new StyleSheet().rehydrate());\n }\n /* NOTE: This is just for backwards-compatibility with jest-styled-components */\n\n }, {\n key: 'instance',\n get: function get$$1() {\n return StyleSheet.master;\n }\n }]);\n return StyleSheet;\n}(); // \n\n\nvar Keyframes = function () {\n function Keyframes(name, rules) {\n var _this = this;\n\n classCallCheck(this, Keyframes);\n\n this.inject = function (styleSheet) {\n if (!styleSheet.hasNameForId(_this.id, _this.name)) {\n styleSheet.inject(_this.id, _this.rules, _this.name);\n }\n };\n\n this.toString = function () {\n throw new StyledComponentsError(12, String(_this.name));\n };\n\n this.name = name;\n this.rules = rules;\n this.id = 'sc-keyframes-' + name;\n }\n\n Keyframes.prototype.getName = function getName() {\n return this.name;\n };\n\n return Keyframes;\n}(); // \n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\n\nfunction hyphenateStyleName(string) {\n return string.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n} // \n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\n\n\nfunction addUnitIfNeeded(name, value) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless)) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return String(value).trim();\n} // \n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\n\n\nvar isFalsish = function isFalsish(chunk) {\n return chunk === undefined || chunk === null || chunk === false || chunk === '';\n};\n\nvar objToCssArray = function objToCssArray(obj, prevKey) {\n var rules = [];\n var keys = Object.keys(obj);\n keys.forEach(function (key) {\n if (!isFalsish(obj[key])) {\n if (isPlainObject(obj[key])) {\n rules.push.apply(rules, objToCssArray(obj[key], key));\n return rules;\n } else if (isFunction(obj[key])) {\n rules.push(hyphenateStyleName(key) + ':', obj[key], ';');\n return rules;\n }\n\n rules.push(hyphenateStyleName(key) + ': ' + addUnitIfNeeded(key, obj[key]) + ';');\n }\n\n return rules;\n });\n return prevKey ? [prevKey + ' {'].concat(rules, ['}']) : rules;\n};\n\nfunction flatten(chunk, executionContext, styleSheet) {\n if (Array.isArray(chunk)) {\n var ruleSet = [];\n\n for (var i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet);\n if (result === null) continue;else if (Array.isArray(result)) ruleSet.push.apply(ruleSet, result);else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return null;\n }\n /* Handle other components */\n\n\n if (isStyledComponent(chunk)) {\n return '.' + chunk.styledComponentId;\n }\n /* Either execute or defer the function */\n\n\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n var _result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && isElement(_result)) {\n // eslint-disable-next-line no-console\n console.warn(getComponentName(chunk) + ' is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.');\n }\n\n return flatten(_result, executionContext, styleSheet);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet);\n return chunk.getName();\n } else return chunk;\n }\n /* Handle objects */\n\n\n return isPlainObject(chunk) ? objToCssArray(chunk) : chunk.toString();\n} // \n\n\nfunction css(styles) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return flatten(interleave(EMPTY_ARRAY, [styles].concat(interpolations)));\n } // $FlowFixMe\n\n\n return flatten(interleave(styles, interpolations));\n} // \n\n\nfunction constructWithOptions(componentConstructor, tag) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n if (!isValidElementType(tag)) {\n throw new StyledComponentsError(1, String(tag));\n }\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n\n\n var templateFunction = function templateFunction() {\n return componentConstructor(tag, options, css.apply(undefined, arguments));\n };\n /* If config methods are called, wrap up a new template function and merge options */\n\n\n templateFunction.withConfig = function (config) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, config));\n };\n /* Modify/inject new props at runtime */\n\n\n templateFunction.attrs = function (attrs) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, {\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean)\n }));\n };\n\n return templateFunction;\n} // \n// Source: https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\n\n\nfunction murmurhash(c) {\n for (var e = c.length | 0, a = e | 0, d = 0, b; e >= 4;) {\n b = c.charCodeAt(d) & 255 | (c.charCodeAt(++d) & 255) << 8 | (c.charCodeAt(++d) & 255) << 16 | (c.charCodeAt(++d) & 255) << 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), b ^= b >>> 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16) ^ b, e -= 4, ++d;\n }\n\n switch (e) {\n case 3:\n a ^= (c.charCodeAt(d + 2) & 255) << 16;\n\n case 2:\n a ^= (c.charCodeAt(d + 1) & 255) << 8;\n\n case 1:\n a ^= c.charCodeAt(d) & 255, a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n }\n\n a ^= a >>> 13;\n a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n return (a ^ a >>> 15) >>> 0;\n} // \n\n/* eslint-disable no-bitwise */\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\n\n\nvar charsLength = 52;\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\n\nvar getAlphabeticChar = function getAlphabeticChar(code) {\n return String.fromCharCode(code + (code > 25 ? 39 : 97));\n};\n/* input a number, usually a hash and convert it to base-52 */\n\n\nfunction generateAlphabeticName(code) {\n var name = '';\n var x = void 0;\n /* get a char and divide by alphabet-length */\n\n for (x = code; x > charsLength; x = Math.floor(x / charsLength)) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return getAlphabeticChar(x % charsLength) + name;\n} // \n\n\nfunction hasFunctionObjectKey(obj) {\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (var key in obj) {\n if (isFunction(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isStaticRules(rules, attrs) {\n for (var i = 0; i < rules.length; i += 1) {\n var rule = rules[i]; // recursive case\n\n if (Array.isArray(rule) && !isStaticRules(rule, attrs)) {\n return false;\n } else if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n if (attrs.some(function (x) {\n return isFunction(x) || hasFunctionObjectKey(x);\n })) return false;\n return true;\n} // \n\n/* combines hashStr (murmurhash) and nameGenerator for convenience */\n\n\nvar hasher = function hasher(str) {\n return generateAlphabeticName(murmurhash(str));\n};\n/*\n ComponentStyle is all the CSS-specific stuff, not\n the React-specific stuff.\n */\n\n\nvar ComponentStyle = function () {\n function ComponentStyle(rules, attrs, componentId) {\n classCallCheck(this, ComponentStyle);\n this.rules = rules;\n this.isStatic = process.env.NODE_ENV === 'production' && isStaticRules(rules, attrs);\n this.componentId = componentId;\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n\n\n ComponentStyle.prototype.generateAndInjectStyles = function generateAndInjectStyles(executionContext, styleSheet) {\n var isStatic = this.isStatic,\n componentId = this.componentId,\n lastClassName = this.lastClassName;\n\n if (IS_BROWSER && isStatic && typeof lastClassName === 'string' && styleSheet.hasNameForId(componentId, lastClassName)) {\n return lastClassName;\n }\n\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var name = hasher(this.componentId + flatCSS.join(''));\n\n if (!styleSheet.hasNameForId(componentId, name)) {\n styleSheet.inject(this.componentId, stringifyRules(flatCSS, '.' + name, undefined, componentId), name);\n }\n\n this.lastClassName = name;\n return name;\n };\n\n ComponentStyle.generateName = function generateName(str) {\n return hasher(str);\n };\n\n return ComponentStyle;\n}(); // \n\n\nvar LIMIT = 200;\n\nvar createWarnTooManyClasses = function createWarnTooManyClasses(displayName) {\n var generatedClasses = {};\n var warningSeen = false;\n return function (className) {\n if (!warningSeen) {\n generatedClasses[className] = true;\n\n if (Object.keys(generatedClasses).length >= LIMIT) {\n // Unable to find latestRule in test environment.\n\n /* eslint-disable no-console, prefer-template */\n console.warn('Over ' + LIMIT + ' classes were generated for component ' + displayName + '. \\n' + 'Consider using the attrs method, together with a style object for frequently changed styles.\\n' + 'Example:\\n' + ' const Component = styled.div.attrs(props => ({\\n' + ' style: {\\n' + ' background: props.background,\\n' + ' },\\n' + ' }))`width: 100%;`\\n\\n' + ' ');\n warningSeen = true;\n generatedClasses = {};\n }\n }\n };\n}; // \n\n\nvar determineTheme = function determineTheme(props, fallbackTheme) {\n var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT; // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n\n /* eslint-disable react/prop-types, flowtype-errors/show-errors */\n\n var isDefaultTheme = defaultProps ? props.theme === defaultProps.theme : false;\n var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme || defaultProps.theme;\n /* eslint-enable */\n\n return theme;\n}; // \n\n\nvar escapeRegex = /[[\\].#*$><+~=|^:(),\"'`-]+/g;\nvar dashesAtEnds = /(^-|-$)/g;\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\n\nfunction escape(str) {\n return str // Replace all possible CSS selectors\n .replace(escapeRegex, '-') // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n} // \n\n\nfunction isTag(target) {\n return typeof target === 'string' && (process.env.NODE_ENV !== 'production' ? target.charAt(0) === target.charAt(0).toLowerCase() : true);\n} // \n\n\nfunction generateDisplayName(target) {\n // $FlowFixMe\n return isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')';\n}\n\nvar _TYPE_STATICS;\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDerivedStateFromProps: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar TYPE_STATICS = (_TYPE_STATICS = {}, _TYPE_STATICS[ForwardRef] = {\n $$typeof: true,\n render: true\n}, _TYPE_STATICS);\nvar defineProperty$1 = Object.defineProperty,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n _Object$getOwnPropert = Object.getOwnPropertySymbols,\n getOwnPropertySymbols = _Object$getOwnPropert === undefined ? function () {\n return [];\n} : _Object$getOwnPropert,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getPrototypeOf = Object.getPrototypeOf,\n objectPrototype = Object.prototype;\nvar arrayPrototype = Array.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n\n var keys = arrayPrototype.concat(getOwnPropertyNames(sourceComponent), // $FlowFixMe\n getOwnPropertySymbols(sourceComponent));\n var targetStatics = TYPE_STATICS[targetComponent.$$typeof] || REACT_STATICS;\n var sourceStatics = TYPE_STATICS[sourceComponent.$$typeof] || REACT_STATICS;\n var i = keys.length;\n var descriptor = void 0;\n var key = void 0; // eslint-disable-next-line no-plusplus\n\n while (i--) {\n key = keys[i];\n\n if ( // $FlowFixMe\n !KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && // $FlowFixMe\n !(targetStatics && targetStatics[key])) {\n descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n if (descriptor) {\n try {\n // Avoid failures from read-only properties\n defineProperty$1(targetComponent, key, descriptor);\n } catch (e) {\n /* fail silently */\n }\n }\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n} // \n\n\nfunction isDerivedReactComponent(fn) {\n return !!(fn && fn.prototype && fn.prototype.isReactComponent);\n} // \n// Helper to call a given function, only once\n\n\nvar once = function once(cb) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n cb.apply(undefined, arguments);\n }\n };\n}; // \n\n\nvar ThemeContext = createContext();\nvar ThemeConsumer = ThemeContext.Consumer;\n/**\n * Provide a theme to an entire react component tree via context\n */\n\nvar ThemeProvider = function (_Component) {\n inherits(ThemeProvider, _Component);\n\n function ThemeProvider(props) {\n classCallCheck(this, ThemeProvider);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext.bind(_this));\n _this.renderInner = _this.renderInner.bind(_this);\n return _this;\n }\n\n ThemeProvider.prototype.render = function render() {\n if (!this.props.children) return null;\n return React.createElement(ThemeContext.Consumer, null, this.renderInner);\n };\n\n ThemeProvider.prototype.renderInner = function renderInner(outerTheme) {\n var context = this.getContext(this.props.theme, outerTheme);\n return React.createElement(ThemeContext.Provider, {\n value: context\n }, this.props.children);\n };\n /**\n * Get the theme from the props, supporting both (outerTheme) => {}\n * as well as object notation\n */\n\n\n ThemeProvider.prototype.getTheme = function getTheme(theme, outerTheme) {\n if (isFunction(theme)) {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme === null || Array.isArray(mergedTheme) || (typeof mergedTheme === 'undefined' ? 'undefined' : _typeof(mergedTheme)) !== 'object')) {\n throw new StyledComponentsError(7);\n }\n\n return mergedTheme;\n }\n\n if (theme === null || Array.isArray(theme) || (typeof theme === 'undefined' ? 'undefined' : _typeof(theme)) !== 'object') {\n throw new StyledComponentsError(8);\n }\n\n return _extends({}, outerTheme, theme);\n };\n\n ThemeProvider.prototype.getContext = function getContext(theme, outerTheme) {\n return this.getTheme(theme, outerTheme);\n };\n\n return ThemeProvider;\n}(Component); // \n\n\nvar CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nvar ServerStyleSheet = function () {\n function ServerStyleSheet() {\n classCallCheck(this, ServerStyleSheet);\n /* The master sheet might be reset, so keep a reference here */\n\n this.masterSheet = StyleSheet.master;\n this.instance = this.masterSheet.clone();\n this.sealed = false;\n }\n /**\n * Mark the ServerStyleSheet as being fully emitted and manually GC it from the\n * StyleSheet singleton.\n */\n\n\n ServerStyleSheet.prototype.seal = function seal() {\n if (!this.sealed) {\n /* Remove sealed StyleSheets from the master sheet */\n var index = this.masterSheet.clones.indexOf(this.instance);\n this.masterSheet.clones.splice(index, 1);\n this.sealed = true;\n }\n };\n\n ServerStyleSheet.prototype.collectStyles = function collectStyles(children) {\n if (this.sealed) {\n throw new StyledComponentsError(2);\n }\n\n return React.createElement(StyleSheetManager, {\n sheet: this.instance\n }, children);\n };\n\n ServerStyleSheet.prototype.getStyleTags = function getStyleTags() {\n this.seal();\n return this.instance.toHTML();\n };\n\n ServerStyleSheet.prototype.getStyleElement = function getStyleElement() {\n this.seal();\n return this.instance.toReactElements();\n };\n\n ServerStyleSheet.prototype.interleaveWithNodeStream = function interleaveWithNodeStream(readableStream) {\n var _this = this;\n\n {\n throw new StyledComponentsError(3);\n }\n /* the tag index keeps track of which tags have already been emitted */\n\n var instance = this.instance;\n var instanceTagIndex = 0;\n var streamAttr = SC_STREAM_ATTR + '=\"true\"';\n var transformer = new stream.Transform({\n transform: function appendStyleChunks(chunk,\n /* encoding */\n _, callback) {\n var tags = instance.tags;\n var html = '';\n /* retrieve html for each new style tag */\n\n for (; instanceTagIndex < tags.length; instanceTagIndex += 1) {\n var tag = tags[instanceTagIndex];\n html += tag.toHTML(streamAttr);\n }\n /* force our StyleSheets to emit entirely new tags */\n\n\n instance.sealAllTags();\n var renderedHtml = chunk.toString();\n /* prepend style html to chunk, unless the start of the chunk is a closing tag in which case append right after that */\n\n if (CLOSING_TAG_R.test(renderedHtml)) {\n var endOfClosingTag = renderedHtml.indexOf('>');\n this.push(renderedHtml.slice(0, endOfClosingTag + 1) + html + renderedHtml.slice(endOfClosingTag + 1));\n } else this.push(html + renderedHtml);\n\n callback();\n }\n });\n readableStream.on('end', function () {\n return _this.seal();\n });\n readableStream.on('error', function (err) {\n _this.seal(); // forward the error to the transform stream\n\n\n transformer.emit('error', err);\n });\n return readableStream.pipe(transformer);\n };\n\n return ServerStyleSheet;\n}(); // \n\n\nvar StyleSheetContext = createContext();\nvar StyleSheetConsumer = StyleSheetContext.Consumer;\n\nvar StyleSheetManager = function (_Component) {\n inherits(StyleSheetManager, _Component);\n\n function StyleSheetManager(props) {\n classCallCheck(this, StyleSheetManager);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext);\n return _this;\n }\n\n StyleSheetManager.prototype.getContext = function getContext(sheet, target) {\n if (sheet) {\n return sheet;\n } else if (target) {\n return new StyleSheet(target);\n } else {\n throw new StyledComponentsError(4);\n }\n };\n\n StyleSheetManager.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n sheet = _props.sheet,\n target = _props.target;\n return React.createElement(StyleSheetContext.Provider, {\n value: this.getContext(sheet, target)\n }, process.env.NODE_ENV !== 'production' ? React.Children.only(children) : children);\n };\n\n return StyleSheetManager;\n}(Component);\n\nprocess.env.NODE_ENV !== \"production\" ? StyleSheetManager.propTypes = {\n sheet: PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]),\n target: PropTypes.shape({\n appendChild: PropTypes.func.isRequired\n })\n} : void 0; // \n\nvar identifiers = {};\n/* We depend on components having unique IDs */\n\nfunction generateId(_ComponentStyle, _displayName, parentComponentId) {\n var displayName = typeof _displayName !== 'string' ? 'sc' : escape(_displayName);\n /**\n * This ensures uniqueness if two components happen to share\n * the same displayName.\n */\n\n var nr = (identifiers[displayName] || 0) + 1;\n identifiers[displayName] = nr;\n\n var componentId = displayName + '-' + _ComponentStyle.generateName(displayName + nr);\n\n return parentComponentId ? parentComponentId + '-' + componentId : componentId;\n} // $FlowFixMe\n\n\nvar StyledComponent = function (_Component) {\n inherits(StyledComponent, _Component);\n\n function StyledComponent() {\n classCallCheck(this, StyledComponent);\n\n var _this = possibleConstructorReturn(this, _Component.call(this));\n\n _this.attrs = {};\n _this.renderOuter = _this.renderOuter.bind(_this);\n _this.renderInner = _this.renderInner.bind(_this);\n\n if (process.env.NODE_ENV !== 'production') {\n _this.warnInnerRef = once(function (displayName) {\n return (// eslint-disable-next-line no-console\n console.warn('The \"innerRef\" API has been removed in styled-components v4 in favor of React 16 ref forwarding, use \"ref\" instead like a typical component. \"innerRef\" was detected on component \"' + displayName + '\".')\n );\n });\n _this.warnAttrsFnObjectKeyDeprecated = once(function (key, displayName) {\n return (// eslint-disable-next-line no-console\n console.warn('Functions as object-form attrs({}) keys are now deprecated and will be removed in a future version of styled-components. Switch to the new attrs(props => ({})) syntax instead for easier and more powerful composition. The attrs key in question is \"' + key + '\" on component \"' + displayName + '\".', '\\n ' + new Error().stack)\n );\n });\n _this.warnNonStyledComponentAttrsObjectKey = once(function (key, displayName) {\n return (// eslint-disable-next-line no-console\n console.warn('It looks like you\\'ve used a non styled-component as the value for the \"' + key + '\" prop in an object-form attrs constructor of \"' + displayName + '\".\\n' + 'You should use the new function-form attrs constructor which avoids this issue: attrs(props => ({ yourStuff }))\\n' + \"To continue using the deprecated object syntax, you'll need to wrap your component prop in a function to make it available inside the styled component (you'll still get the deprecation warning though.)\\n\" + ('For example, { ' + key + ': () => InnerComponent } instead of { ' + key + ': InnerComponent }'))\n );\n });\n }\n\n return _this;\n }\n\n StyledComponent.prototype.render = function render() {\n return React.createElement(StyleSheetConsumer, null, this.renderOuter);\n };\n\n StyledComponent.prototype.renderOuter = function renderOuter() {\n var styleSheet = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : StyleSheet.master;\n this.styleSheet = styleSheet; // No need to subscribe a static component to theme changes, it won't change anything\n\n if (this.props.forwardedComponent.componentStyle.isStatic) return this.renderInner();\n return React.createElement(ThemeConsumer, null, this.renderInner);\n };\n\n StyledComponent.prototype.renderInner = function renderInner(theme) {\n var _props$forwardedCompo = this.props.forwardedComponent,\n componentStyle = _props$forwardedCompo.componentStyle,\n defaultProps = _props$forwardedCompo.defaultProps,\n displayName = _props$forwardedCompo.displayName,\n foldedComponentIds = _props$forwardedCompo.foldedComponentIds,\n styledComponentId = _props$forwardedCompo.styledComponentId,\n target = _props$forwardedCompo.target;\n var generatedClassName = void 0;\n\n if (componentStyle.isStatic) {\n generatedClassName = this.generateAndInjectStyles(EMPTY_OBJECT, this.props);\n } else {\n generatedClassName = this.generateAndInjectStyles(determineTheme(this.props, theme, defaultProps) || EMPTY_OBJECT, this.props);\n }\n\n var elementToBeCreated = this.props.as || this.attrs.as || target;\n var isTargetTag = isTag(elementToBeCreated);\n var propsForElement = {};\n\n var computedProps = _extends({}, this.props, this.attrs);\n\n var key = void 0; // eslint-disable-next-line guard-for-in\n\n for (key in computedProps) {\n if (process.env.NODE_ENV !== 'production' && key === 'innerRef' && isTargetTag) {\n this.warnInnerRef(displayName);\n }\n\n if (key === 'forwardedComponent' || key === 'as') {\n continue;\n } else if (key === 'forwardedRef') propsForElement.ref = computedProps[key];else if (key === 'forwardedAs') propsForElement.as = computedProps[key];else if (!isTargetTag || validAttr(key)) {\n // Don't pass through non HTML tags through to HTML elements\n propsForElement[key] = computedProps[key];\n }\n }\n\n if (this.props.style && this.attrs.style) {\n propsForElement.style = _extends({}, this.attrs.style, this.props.style);\n }\n\n propsForElement.className = Array.prototype.concat(foldedComponentIds, styledComponentId, generatedClassName !== styledComponentId ? generatedClassName : null, this.props.className, this.attrs.className).filter(Boolean).join(' ');\n return createElement(elementToBeCreated, propsForElement);\n };\n\n StyledComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props, attrs) {\n var _this2 = this;\n\n var context = _extends({}, props, {\n theme: theme\n });\n\n if (!attrs.length) return context;\n this.attrs = {};\n attrs.forEach(function (attrDef) {\n var resolvedAttrDef = attrDef;\n var attrDefWasFn = false;\n var attr = void 0;\n var key = void 0;\n\n if (isFunction(resolvedAttrDef)) {\n // $FlowFixMe\n resolvedAttrDef = resolvedAttrDef(context);\n attrDefWasFn = true;\n }\n /* eslint-disable guard-for-in */\n // $FlowFixMe\n\n\n for (key in resolvedAttrDef) {\n attr = resolvedAttrDef[key];\n\n if (!attrDefWasFn) {\n if (isFunction(attr) && !isDerivedReactComponent(attr) && !isStyledComponent(attr)) {\n if (process.env.NODE_ENV !== 'production') {\n _this2.warnAttrsFnObjectKeyDeprecated(key, props.forwardedComponent.displayName);\n }\n\n attr = attr(context);\n\n if (process.env.NODE_ENV !== 'production' && React.isValidElement(attr)) {\n _this2.warnNonStyledComponentAttrsObjectKey(key, props.forwardedComponent.displayName);\n }\n }\n }\n\n _this2.attrs[key] = attr;\n context[key] = attr;\n }\n /* eslint-enable */\n\n });\n return context;\n };\n\n StyledComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) {\n var _props$forwardedCompo2 = props.forwardedComponent,\n attrs = _props$forwardedCompo2.attrs,\n componentStyle = _props$forwardedCompo2.componentStyle,\n warnTooManyClasses = _props$forwardedCompo2.warnTooManyClasses; // statically styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n\n if (componentStyle.isStatic && !attrs.length) {\n return componentStyle.generateAndInjectStyles(EMPTY_OBJECT, this.styleSheet);\n }\n\n var className = componentStyle.generateAndInjectStyles(this.buildExecutionContext(theme, props, attrs), this.styleSheet);\n if (process.env.NODE_ENV !== 'production' && warnTooManyClasses) warnTooManyClasses(className);\n return className;\n };\n\n return StyledComponent;\n}(Component);\n\nfunction createStyledComponent(target, options, rules) {\n var isTargetStyledComp = isStyledComponent(target);\n var isClass = !isTag(target);\n var _options$displayName = options.displayName,\n displayName = _options$displayName === undefined ? generateDisplayName(target) : _options$displayName,\n _options$componentId = options.componentId,\n componentId = _options$componentId === undefined ? generateId(ComponentStyle, options.displayName, options.parentComponentId) : _options$componentId,\n _options$ParentCompon = options.ParentComponent,\n ParentComponent = _options$ParentCompon === undefined ? StyledComponent : _options$ParentCompon,\n _options$attrs = options.attrs,\n attrs = _options$attrs === undefined ? EMPTY_ARRAY : _options$attrs;\n var styledComponentId = options.displayName && options.componentId ? escape(options.displayName) + '-' + options.componentId : options.componentId || componentId; // fold the underlying StyledComponent attrs up (implicit extend)\n\n var finalAttrs = // $FlowFixMe\n isTargetStyledComp && target.attrs ? Array.prototype.concat(target.attrs, attrs).filter(Boolean) : attrs;\n var componentStyle = new ComponentStyle(isTargetStyledComp ? // fold the underlying StyledComponent rules up (implicit extend)\n // $FlowFixMe\n target.componentStyle.rules.concat(rules) : rules, finalAttrs, styledComponentId);\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n\n var WrappedStyledComponent = void 0;\n\n var forwardRef = function forwardRef(props, ref) {\n return React.createElement(ParentComponent, _extends({}, props, {\n forwardedComponent: WrappedStyledComponent,\n forwardedRef: ref\n }));\n };\n\n forwardRef.displayName = displayName;\n WrappedStyledComponent = React.forwardRef(forwardRef);\n WrappedStyledComponent.displayName = displayName; // $FlowFixMe\n\n WrappedStyledComponent.attrs = finalAttrs; // $FlowFixMe\n\n WrappedStyledComponent.componentStyle = componentStyle; // $FlowFixMe\n\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp ? // $FlowFixMe\n Array.prototype.concat(target.foldedComponentIds, target.styledComponentId) : EMPTY_ARRAY; // $FlowFixMe\n\n WrappedStyledComponent.styledComponentId = styledComponentId; // fold the underlying StyledComponent target up since we folded the styles\n // $FlowFixMe\n\n WrappedStyledComponent.target = isTargetStyledComp ? target.target : target; // $FlowFixMe\n\n WrappedStyledComponent.withComponent = function withComponent(tag) {\n var previousComponentId = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['componentId']);\n var newComponentId = previousComponentId && previousComponentId + '-' + (isTag(tag) ? tag : escape(getComponentName(tag)));\n\n var newOptions = _extends({}, optionsToCopy, {\n attrs: finalAttrs,\n componentId: newComponentId,\n ParentComponent: ParentComponent\n });\n\n return createStyledComponent(tag, newOptions, rules);\n }; // $FlowFixMe\n\n\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get: function get$$1() {\n return this._foldedDefaultProps;\n },\n set: function set$$1(obj) {\n // $FlowFixMe\n this._foldedDefaultProps = isTargetStyledComp ? merge(target.defaultProps, obj) : obj;\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(displayName);\n } // $FlowFixMe\n\n\n WrappedStyledComponent.toString = function () {\n return '.' + WrappedStyledComponent.styledComponentId;\n };\n\n if (isClass) {\n hoistNonReactStatics(WrappedStyledComponent, target, {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n styledComponentId: true,\n target: true,\n withComponent: true\n });\n }\n\n return WrappedStyledComponent;\n} // \n// Thanks to ReactDOMFactories for this handy list!\n\n\nvar domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'marker', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan']; // \n\nvar styled = function styled(tag) {\n return constructWithOptions(createStyledComponent, tag);\n}; // Shorthands for all valid HTML Elements\n\n\ndomElements.forEach(function (domElement) {\n styled[domElement] = styled(domElement);\n}); // \n\nvar GlobalStyle = function () {\n function GlobalStyle(rules, componentId) {\n classCallCheck(this, GlobalStyle);\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules, EMPTY_ARRAY);\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n GlobalStyle.prototype.createStyles = function createStyles(executionContext, styleSheet) {\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var css = stringifyRules(flatCSS, '');\n styleSheet.inject(this.componentId, css);\n };\n\n GlobalStyle.prototype.removeStyles = function removeStyles(styleSheet) {\n var componentId = this.componentId;\n\n if (styleSheet.hasId(componentId)) {\n styleSheet.remove(componentId);\n }\n }; // TODO: overwrite in-place instead of remove+create?\n\n\n GlobalStyle.prototype.renderStyles = function renderStyles(executionContext, styleSheet) {\n this.removeStyles(styleSheet);\n this.createStyles(executionContext, styleSheet);\n };\n\n return GlobalStyle;\n}(); // \n// place our cache into shared context so it'll persist between HMRs\n\n\nif (IS_BROWSER) {\n window.scCGSHMRCache = {};\n}\n\nfunction createGlobalStyle(strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var id = 'sc-global-' + murmurhash(JSON.stringify(rules));\n var style = new GlobalStyle(rules, id);\n\n var GlobalStyleComponent = function (_React$Component) {\n inherits(GlobalStyleComponent, _React$Component);\n\n function GlobalStyleComponent(props) {\n classCallCheck(this, GlobalStyleComponent);\n\n var _this = possibleConstructorReturn(this, _React$Component.call(this, props));\n\n var _this$constructor = _this.constructor,\n globalStyle = _this$constructor.globalStyle,\n styledComponentId = _this$constructor.styledComponentId;\n\n if (IS_BROWSER) {\n window.scCGSHMRCache[styledComponentId] = (window.scCGSHMRCache[styledComponentId] || 0) + 1;\n }\n /**\n * This fixes HMR compatibility. Don't ask me why, but this combination of\n * caching the closure variables via statics and then persisting the statics in\n * state works across HMR where no other combination did. ¯\\_(ツ)_/¯\n */\n\n\n _this.state = {\n globalStyle: globalStyle,\n styledComponentId: styledComponentId\n };\n return _this;\n }\n\n GlobalStyleComponent.prototype.componentWillUnmount = function componentWillUnmount() {\n if (window.scCGSHMRCache[this.state.styledComponentId]) {\n window.scCGSHMRCache[this.state.styledComponentId] -= 1;\n }\n /**\n * Depending on the order \"render\" is called this can cause the styles to be lost\n * until the next render pass of the remaining instance, which may\n * not be immediate.\n */\n\n\n if (window.scCGSHMRCache[this.state.styledComponentId] === 0) {\n this.state.globalStyle.removeStyles(this.styleSheet);\n }\n };\n\n GlobalStyleComponent.prototype.render = function render() {\n var _this2 = this;\n\n if (process.env.NODE_ENV !== 'production' && React.Children.count(this.props.children)) {\n // eslint-disable-next-line no-console\n console.warn('The global style component ' + this.state.styledComponentId + ' was given child JSX. createGlobalStyle does not render children.');\n }\n\n return React.createElement(StyleSheetConsumer, null, function (styleSheet) {\n _this2.styleSheet = styleSheet || StyleSheet.master;\n var globalStyle = _this2.state.globalStyle;\n\n if (globalStyle.isStatic) {\n globalStyle.renderStyles(STATIC_EXECUTION_CONTEXT, _this2.styleSheet);\n return null;\n } else {\n return React.createElement(ThemeConsumer, null, function (theme) {\n // $FlowFixMe\n var defaultProps = _this2.constructor.defaultProps;\n\n var context = _extends({}, _this2.props);\n\n if (typeof theme !== 'undefined') {\n context.theme = determineTheme(_this2.props, theme, defaultProps);\n }\n\n globalStyle.renderStyles(context, _this2.styleSheet);\n return null;\n });\n }\n });\n };\n\n return GlobalStyleComponent;\n }(React.Component);\n\n GlobalStyleComponent.globalStyle = style;\n GlobalStyleComponent.styledComponentId = id;\n return GlobalStyleComponent;\n} // \n\n\nvar replaceWhitespace = function replaceWhitespace(str) {\n return str.replace(/\\s|\\\\n/g, '');\n};\n\nfunction keyframes(strings) {\n /* Warning if you've used keyframes on React Native */\n if (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn('`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.');\n }\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var name = generateAlphabeticName(murmurhash(replaceWhitespace(JSON.stringify(rules))));\n return new Keyframes(name, stringifyRules(rules, name, '@keyframes'));\n} // \n\n\nvar withTheme = function withTheme(Component$$1) {\n var WithTheme = React.forwardRef(function (props, ref) {\n return React.createElement(ThemeConsumer, null, function (theme) {\n // $FlowFixMe\n var defaultProps = Component$$1.defaultProps;\n var themeProp = determineTheme(props, theme, defaultProps);\n\n if (process.env.NODE_ENV !== 'production' && themeProp === undefined) {\n // eslint-disable-next-line no-console\n console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + getComponentName(Component$$1) + '\"');\n }\n\n return React.createElement(Component$$1, _extends({}, props, {\n theme: themeProp,\n ref: ref\n }));\n });\n });\n hoistNonReactStatics(WithTheme, Component$$1);\n WithTheme.displayName = 'WithTheme(' + getComponentName(Component$$1) + ')';\n return WithTheme;\n}; // \n\n/* eslint-disable */\n\n\nvar __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS = {\n StyleSheet: StyleSheet\n}; // \n\n/* Warning if you've imported this file on React Native */\n\nif (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like you've imported 'styled-components' on React Native.\\n\" + \"Perhaps you're looking to import 'styled-components/native'?\\n\" + 'Read more about this at https://www.styled-components.com/docs/basics#react-native');\n}\n/* Warning if there are several instances of styled-components */\n\n\nif (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test' && typeof window !== 'undefined' && typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Node.js') === -1 && navigator.userAgent.indexOf('jsdom') === -1) {\n window['__styled-components-init__'] = window['__styled-components-init__'] || 0;\n\n if (window['__styled-components-init__'] === 1) {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. \" + 'This may cause dynamic styles not rendering properly, errors happening during rehydration process ' + 'and makes your application bigger without a good reason.\\n\\n' + 'See https://s-c.sh/2BAXzed for more info.');\n }\n\n window['__styled-components-init__'] += 1;\n} //\n\n\nexport default styled;\nexport { createGlobalStyle, css, isStyledComponent, keyframes, ServerStyleSheet, StyleSheetConsumer, StyleSheetContext, StyleSheetManager, ThemeConsumer, ThemeContext, ThemeProvider, withTheme, __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS };","import { __read } from \"tslib\";\n/**\n * Validate whether a string is an ARN.\n */\n\nexport var validate = function validate(str) {\n return typeof str === \"string\" && str.indexOf(\"arn:\") === 0 && str.split(\":\").length >= 6;\n};\n/**\n * Parse an ARN string into structure with partition, service, region, accountId and resource values\n */\n\nexport var parse = function parse(arn) {\n var segments = arn.split(\":\");\n if (segments.length < 6 || segments[0] !== \"arn\") throw new Error(\"Malformed ARN\");\n\n var _a = __read(segments),\n //Skip \"arn\" literal\n partition = _a[1],\n service = _a[2],\n region = _a[3],\n accountId = _a[4],\n resource = _a.slice(5);\n\n return {\n partition: partition,\n service: service,\n region: region,\n accountId: accountId,\n resource: resource.join(\":\")\n };\n};\n/**\n * Build an ARN with service, partition, region, accountId, and resources strings\n */\n\nexport var build = function build(arnObject) {\n var _a = arnObject.partition,\n partition = _a === void 0 ? \"aws\" : _a,\n service = arnObject.service,\n region = arnObject.region,\n accountId = arnObject.accountId,\n resource = arnObject.resource;\n\n if ([service, region, accountId, resource].some(function (segment) {\n return typeof segment !== \"string\";\n })) {\n throw new Error(\"Input ARN object is invalid\");\n }\n\n return \"arn:\" + partition + \":\" + service + \":\" + region + \":\" + accountId + \":\" + resource;\n};","export var ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexport var CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexport var AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexport var SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexport var EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexport var SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nexport var TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nexport var AUTH_HEADER = \"authorization\";\nexport var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nexport var DATE_HEADER = \"date\";\nexport var GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\nexport var SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\nexport var SHA256_HEADER = \"x-amz-content-sha256\";\nexport var TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\nexport var HOST_HEADER = \"host\";\nexport var ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n \"cache-control\": true,\n connection: true,\n expect: true,\n from: true,\n \"keep-alive\": true,\n \"max-forwards\": true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n \"transfer-encoding\": true,\n upgrade: true,\n \"user-agent\": true,\n \"x-amzn-trace-id\": true\n};\nexport var PROXY_HEADER_PATTERN = /^proxy-/;\nexport var SEC_HEADER_PATTERN = /^sec-/;\nexport var UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\nexport var ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nexport var EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nexport var UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexport var MAX_CACHE_SIZE = 50;\nexport var KEY_TYPE_IDENTIFIER = \"aws4_request\";\nexport var MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;","import { __awaiter, __generator, __values } from \"tslib\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { KEY_TYPE_IDENTIFIER, MAX_CACHE_SIZE } from \"./constants\";\nvar signingKeyCache = {};\nvar cacheQueue = [];\n/**\n * Create a string describing the scope of credentials used to sign a request.\n *\n * @param shortDate The current calendar date in the form YYYYMMDD.\n * @param region The AWS region in which the service resides.\n * @param service The service to which the signed request is being sent.\n */\n\nexport function createScope(shortDate, region, service) {\n return shortDate + \"/\" + region + \"/\" + service + \"/\" + KEY_TYPE_IDENTIFIER;\n}\n/**\n * Derive a signing key from its composite parts\n *\n * @param sha256Constructor A constructor function that can instantiate SHA-256\n * hash objects.\n * @param credentials The credentials with which the request will be\n * signed.\n * @param shortDate The current calendar date in the form YYYYMMDD.\n * @param region The AWS region in which the service resides.\n * @param service The service to which the signed request is being\n * sent.\n */\n\nexport var getSigningKey = function getSigningKey(sha256Constructor, credentials, shortDate, region, service) {\n return __awaiter(void 0, void 0, void 0, function () {\n var credsHash, cacheKey, key, _a, _b, signable, e_1_1;\n\n var e_1, _c;\n\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n return [4\n /*yield*/\n , hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId)];\n\n case 1:\n credsHash = _d.sent();\n cacheKey = shortDate + \":\" + region + \":\" + service + \":\" + toHex(credsHash) + \":\" + credentials.sessionToken;\n\n if (cacheKey in signingKeyCache) {\n return [2\n /*return*/\n , signingKeyCache[cacheKey]];\n }\n\n cacheQueue.push(cacheKey);\n\n while (cacheQueue.length > MAX_CACHE_SIZE) {\n delete signingKeyCache[cacheQueue.shift()];\n }\n\n key = \"AWS4\" + credentials.secretAccessKey;\n _d.label = 2;\n\n case 2:\n _d.trys.push([2, 7, 8, 9]);\n\n _a = __values([shortDate, region, service, KEY_TYPE_IDENTIFIER]), _b = _a.next();\n _d.label = 3;\n\n case 3:\n if (!!_b.done) return [3\n /*break*/\n , 6];\n signable = _b.value;\n return [4\n /*yield*/\n , hmac(sha256Constructor, key, signable)];\n\n case 4:\n key = _d.sent();\n _d.label = 5;\n\n case 5:\n _b = _a.next();\n return [3\n /*break*/\n , 3];\n\n case 6:\n return [3\n /*break*/\n , 9];\n\n case 7:\n e_1_1 = _d.sent();\n e_1 = {\n error: e_1_1\n };\n return [3\n /*break*/\n , 9];\n\n case 8:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n } finally {\n if (e_1) throw e_1.error;\n }\n\n return [7\n /*endfinally*/\n ];\n\n case 9:\n return [2\n /*return*/\n , signingKeyCache[cacheKey] = key];\n }\n });\n });\n};\n/**\n * @internal\n */\n\nexport function clearCredentialCache() {\n cacheQueue.length = 0;\n Object.keys(signingKeyCache).forEach(function (cacheKey) {\n delete signingKeyCache[cacheKey];\n });\n}\n\nfunction hmac(ctor, secret, data) {\n var hash = new ctor(secret);\n hash.update(data);\n return hash.digest();\n}","import { __values } from \"tslib\";\nimport { ALWAYS_UNSIGNABLE_HEADERS, PROXY_HEADER_PATTERN, SEC_HEADER_PATTERN } from \"./constants\";\n/**\n * @internal\n */\n\nexport function getCanonicalHeaders(_a, unsignableHeaders, signableHeaders) {\n var e_1, _b;\n\n var headers = _a.headers;\n var canonical = {};\n\n try {\n for (var _c = __values(Object.keys(headers).sort()), _d = _c.next(); !_d.done; _d = _c.next()) {\n var headerName = _d.value;\n var canonicalHeaderName = headerName.toLowerCase();\n\n if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS || (unsignableHeaders === null || unsignableHeaders === void 0 ? void 0 : unsignableHeaders.has(canonicalHeaderName)) || PROXY_HEADER_PATTERN.test(canonicalHeaderName) || SEC_HEADER_PATTERN.test(canonicalHeaderName)) {\n if (!signableHeaders || signableHeaders && !signableHeaders.has(canonicalHeaderName)) {\n continue;\n }\n }\n\n canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\\s+/g, \" \");\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return canonical;\n}","import { __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayBuffer } from \"@aws-sdk/is-array-buffer\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\n/**\n * @internal\n */\n\nexport function getPayloadHash(_a, hashConstructor) {\n var headers = _a.headers,\n body = _a.body;\n return __awaiter(this, void 0, void 0, function () {\n var _b, _c, headerName, hashCtor, _d;\n\n var e_1, _e;\n\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n try {\n for (_b = __values(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n headerName = _c.value;\n\n if (headerName.toLowerCase() === SHA256_HEADER) {\n return [2\n /*return*/\n , headers[headerName]];\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_e = _b.return)) _e.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n if (!(body == undefined)) return [3\n /*break*/\n , 1];\n return [2\n /*return*/\n , \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"];\n\n case 1:\n if (!(typeof body === \"string\" || ArrayBuffer.isView(body) || isArrayBuffer(body))) return [3\n /*break*/\n , 3];\n hashCtor = new hashConstructor();\n hashCtor.update(body);\n _d = toHex;\n return [4\n /*yield*/\n , hashCtor.digest()];\n\n case 2:\n return [2\n /*return*/\n , _d.apply(void 0, [_f.sent()])];\n\n case 3:\n // As any defined body that is not a string or binary data is a stream, this\n // body is unsignable. Attempt to send the request with an unsigned payload,\n // which may or may not be accepted by the service.\n return [2\n /*return*/\n , UNSIGNED_PAYLOAD];\n }\n });\n });\n}","import { __assign, __read, __rest, __spreadArray } from \"tslib\";\n/**\n * @internal\n */\n\nexport function cloneRequest(_a) {\n var headers = _a.headers,\n query = _a.query,\n rest = __rest(_a, [\"headers\", \"query\"]);\n\n return __assign(__assign({}, rest), {\n headers: __assign({}, headers),\n query: query ? cloneQuery(query) : undefined\n });\n}\n\nfunction cloneQuery(query) {\n return Object.keys(query).reduce(function (carry, paramName) {\n var _a;\n\n var param = query[paramName];\n return __assign(__assign({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? __spreadArray([], __read(param)) : param, _a));\n }, {});\n}","import { __values } from \"tslib\";\nimport { cloneRequest } from \"./cloneRequest\";\nimport { GENERATED_HEADERS } from \"./constants\";\n/**\n * @internal\n */\n\nexport function prepareRequest(request) {\n var e_1, _a; // Create a clone of the request object that does not clone the body\n\n\n request = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request);\n\n try {\n for (var _b = __values(Object.keys(request.headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var headerName = _c.value;\n\n if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName];\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return request;\n}","export function iso8601(time) {\n return toDate(time).toISOString().replace(/\\.\\d{3}Z$/, \"Z\");\n}\nexport function toDate(time) {\n if (typeof time === \"number\") {\n return new Date(time * 1000);\n }\n\n if (typeof time === \"string\") {\n if (Number(time)) {\n return new Date(Number(time) * 1000);\n }\n\n return new Date(time);\n }\n\n return time;\n}","import { __awaiter, __generator } from \"tslib\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { ALGORITHM_IDENTIFIER, ALGORITHM_QUERY_PARAM, AMZ_DATE_HEADER, AMZ_DATE_QUERY_PARAM, AUTH_HEADER, CREDENTIAL_QUERY_PARAM, EVENT_ALGORITHM_IDENTIFIER, EXPIRES_QUERY_PARAM, MAX_PRESIGNED_TTL, SHA256_HEADER, SIGNATURE_QUERY_PARAM, SIGNED_HEADERS_QUERY_PARAM, TOKEN_HEADER, TOKEN_QUERY_PARAM } from \"./constants\";\nimport { createScope, getSigningKey } from \"./credentialDerivation\";\nimport { getCanonicalHeaders } from \"./getCanonicalHeaders\";\nimport { getCanonicalQuery } from \"./getCanonicalQuery\";\nimport { getPayloadHash } from \"./getPayloadHash\";\nimport { hasHeader } from \"./hasHeader\";\nimport { moveHeadersToQuery } from \"./moveHeadersToQuery\";\nimport { prepareRequest } from \"./prepareRequest\";\nimport { iso8601 } from \"./utilDate\";\n\nvar SignatureV4 =\n/** @class */\nfunction () {\n function SignatureV4(_a) {\n var applyChecksum = _a.applyChecksum,\n credentials = _a.credentials,\n region = _a.region,\n service = _a.service,\n sha256 = _a.sha256,\n _b = _a.uriEscapePath,\n uriEscapePath = _b === void 0 ? true : _b;\n this.service = service;\n this.sha256 = sha256;\n this.uriEscapePath = uriEscapePath; // default to true if applyChecksum isn't set\n\n this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n this.regionProvider = normalizeRegionProvider(region);\n this.credentialProvider = normalizeCredentialsProvider(credentials);\n }\n\n SignatureV4.prototype.presign = function (originalRequest, options) {\n if (options === void 0) {\n options = {};\n }\n\n return __awaiter(this, void 0, void 0, function () {\n var _a, signingDate, _b, expiresIn, unsignableHeaders, unhoistableHeaders, signableHeaders, signingRegion, signingService, credentials, region, _c, _d, longDate, shortDate, scope, request, canonicalHeaders, _e, _f, _g, _h, _j, _k;\n\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = options.signingDate, signingDate = _a === void 0 ? new Date() : _a, _b = options.expiresIn, expiresIn = _b === void 0 ? 3600 : _b, unsignableHeaders = options.unsignableHeaders, unhoistableHeaders = options.unhoistableHeaders, signableHeaders = options.signableHeaders, signingRegion = options.signingRegion, signingService = options.signingService;\n return [4\n /*yield*/\n , this.credentialProvider()];\n\n case 1:\n credentials = _l.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3\n /*break*/\n , 2];\n _c = signingRegion;\n return [3\n /*break*/\n , 4];\n\n case 2:\n return [4\n /*yield*/\n , this.regionProvider()];\n\n case 3:\n _c = _l.sent();\n _l.label = 4;\n\n case 4:\n region = _c;\n _d = formatDate(signingDate), longDate = _d.longDate, shortDate = _d.shortDate;\n\n if (expiresIn > MAX_PRESIGNED_TTL) {\n return [2\n /*return*/\n , Promise.reject(\"Signature version 4 presigned URLs\" + \" must have an expiration date less than one week in\" + \" the future\")];\n }\n\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n request = moveHeadersToQuery(prepareRequest(originalRequest), {\n unhoistableHeaders: unhoistableHeaders\n });\n\n if (credentials.sessionToken) {\n request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken;\n }\n\n request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER;\n request.query[CREDENTIAL_QUERY_PARAM] = credentials.accessKeyId + \"/\" + scope;\n request.query[AMZ_DATE_QUERY_PARAM] = longDate;\n request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10);\n canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n request.query[SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders);\n _e = request.query;\n _f = SIGNATURE_QUERY_PARAM;\n _g = this.getSignature;\n _h = [longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService)];\n _j = this.createCanonicalRequest;\n _k = [request, canonicalHeaders];\n return [4\n /*yield*/\n , getPayloadHash(originalRequest, this.sha256)];\n\n case 5:\n return [4\n /*yield*/\n , _g.apply(this, _h.concat([_j.apply(this, _k.concat([_l.sent()]))]))];\n\n case 6:\n _e[_f] = _l.sent();\n return [2\n /*return*/\n , request];\n }\n });\n });\n };\n\n SignatureV4.prototype.sign = function (toSign, options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (typeof toSign === \"string\") {\n return [2\n /*return*/\n , this.signString(toSign, options)];\n } else if (toSign.headers && toSign.payload) {\n return [2\n /*return*/\n , this.signEvent(toSign, options)];\n } else {\n return [2\n /*return*/\n , this.signRequest(toSign, options)];\n }\n\n return [2\n /*return*/\n ];\n });\n });\n };\n\n SignatureV4.prototype.signEvent = function (_a, _b) {\n var headers = _a.headers,\n payload = _a.payload;\n var _c = _b.signingDate,\n signingDate = _c === void 0 ? new Date() : _c,\n priorSignature = _b.priorSignature,\n signingRegion = _b.signingRegion,\n signingService = _b.signingService;\n return __awaiter(this, void 0, void 0, function () {\n var region, _d, _e, shortDate, longDate, scope, hashedPayload, hash, hashedHeaders, _f, stringToSign;\n\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3\n /*break*/\n , 1];\n _d = signingRegion;\n return [3\n /*break*/\n , 3];\n\n case 1:\n return [4\n /*yield*/\n , this.regionProvider()];\n\n case 2:\n _d = _g.sent();\n _g.label = 3;\n\n case 3:\n region = _d;\n _e = formatDate(signingDate), shortDate = _e.shortDate, longDate = _e.longDate;\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n return [4\n /*yield*/\n , getPayloadHash({\n headers: {},\n body: payload\n }, this.sha256)];\n\n case 4:\n hashedPayload = _g.sent();\n hash = new this.sha256();\n hash.update(headers);\n _f = toHex;\n return [4\n /*yield*/\n , hash.digest()];\n\n case 5:\n hashedHeaders = _f.apply(void 0, [_g.sent()]);\n stringToSign = [EVENT_ALGORITHM_IDENTIFIER, longDate, scope, priorSignature, hashedHeaders, hashedPayload].join(\"\\n\");\n return [2\n /*return*/\n , this.signString(stringToSign, {\n signingDate: signingDate,\n signingRegion: region,\n signingService: signingService\n })];\n }\n });\n });\n };\n\n SignatureV4.prototype.signString = function (stringToSign, _a) {\n var _b = _a === void 0 ? {} : _a,\n _c = _b.signingDate,\n signingDate = _c === void 0 ? new Date() : _c,\n signingRegion = _b.signingRegion,\n signingService = _b.signingService;\n\n return __awaiter(this, void 0, void 0, function () {\n var credentials, region, _d, shortDate, hash, _e, _f, _g;\n\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n return [4\n /*yield*/\n , this.credentialProvider()];\n\n case 1:\n credentials = _h.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3\n /*break*/\n , 2];\n _d = signingRegion;\n return [3\n /*break*/\n , 4];\n\n case 2:\n return [4\n /*yield*/\n , this.regionProvider()];\n\n case 3:\n _d = _h.sent();\n _h.label = 4;\n\n case 4:\n region = _d;\n shortDate = formatDate(signingDate).shortDate;\n _f = (_e = this.sha256).bind;\n return [4\n /*yield*/\n , this.getSigningKey(credentials, region, shortDate, signingService)];\n\n case 5:\n hash = new (_f.apply(_e, [void 0, _h.sent()]))();\n hash.update(stringToSign);\n _g = toHex;\n return [4\n /*yield*/\n , hash.digest()];\n\n case 6:\n return [2\n /*return*/\n , _g.apply(void 0, [_h.sent()])];\n }\n });\n });\n };\n\n SignatureV4.prototype.signRequest = function (requestToSign, _a) {\n var _b = _a === void 0 ? {} : _a,\n _c = _b.signingDate,\n signingDate = _c === void 0 ? new Date() : _c,\n signableHeaders = _b.signableHeaders,\n unsignableHeaders = _b.unsignableHeaders,\n signingRegion = _b.signingRegion,\n signingService = _b.signingService;\n\n return __awaiter(this, void 0, void 0, function () {\n var credentials, region, _d, request, _e, longDate, shortDate, scope, payloadHash, canonicalHeaders, signature;\n\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n return [4\n /*yield*/\n , this.credentialProvider()];\n\n case 1:\n credentials = _f.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3\n /*break*/\n , 2];\n _d = signingRegion;\n return [3\n /*break*/\n , 4];\n\n case 2:\n return [4\n /*yield*/\n , this.regionProvider()];\n\n case 3:\n _d = _f.sent();\n _f.label = 4;\n\n case 4:\n region = _d;\n request = prepareRequest(requestToSign);\n _e = formatDate(signingDate), longDate = _e.longDate, shortDate = _e.shortDate;\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n request.headers[AMZ_DATE_HEADER] = longDate;\n\n if (credentials.sessionToken) {\n request.headers[TOKEN_HEADER] = credentials.sessionToken;\n }\n\n return [4\n /*yield*/\n , getPayloadHash(request, this.sha256)];\n\n case 5:\n payloadHash = _f.sent();\n\n if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) {\n request.headers[SHA256_HEADER] = payloadHash;\n }\n\n canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n return [4\n /*yield*/\n , this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash))];\n\n case 6:\n signature = _f.sent();\n request.headers[AUTH_HEADER] = ALGORITHM_IDENTIFIER + \" \" + (\"Credential=\" + credentials.accessKeyId + \"/\" + scope + \", \") + (\"SignedHeaders=\" + getCanonicalHeaderList(canonicalHeaders) + \", \") + (\"Signature=\" + signature);\n return [2\n /*return*/\n , request];\n }\n });\n });\n };\n\n SignatureV4.prototype.createCanonicalRequest = function (request, canonicalHeaders, payloadHash) {\n var sortedHeaders = Object.keys(canonicalHeaders).sort();\n return request.method + \"\\n\" + this.getCanonicalPath(request) + \"\\n\" + getCanonicalQuery(request) + \"\\n\" + sortedHeaders.map(function (name) {\n return name + \":\" + canonicalHeaders[name];\n }).join(\"\\n\") + \"\\n\\n\" + sortedHeaders.join(\";\") + \"\\n\" + payloadHash;\n };\n\n SignatureV4.prototype.createStringToSign = function (longDate, credentialScope, canonicalRequest) {\n return __awaiter(this, void 0, void 0, function () {\n var hash, hashedRequest;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n hash = new this.sha256();\n hash.update(canonicalRequest);\n return [4\n /*yield*/\n , hash.digest()];\n\n case 1:\n hashedRequest = _a.sent();\n return [2\n /*return*/\n , ALGORITHM_IDENTIFIER + \"\\n\" + longDate + \"\\n\" + credentialScope + \"\\n\" + toHex(hashedRequest)];\n }\n });\n });\n };\n\n SignatureV4.prototype.getCanonicalPath = function (_a) {\n var path = _a.path;\n\n if (this.uriEscapePath) {\n var doubleEncoded = encodeURIComponent(path.replace(/^\\//, \"\"));\n return \"/\" + doubleEncoded.replace(/%2F/g, \"/\");\n }\n\n return path;\n };\n\n SignatureV4.prototype.getSignature = function (longDate, credentialScope, keyPromise, canonicalRequest) {\n return __awaiter(this, void 0, void 0, function () {\n var stringToSign, hash, _a, _b, _c;\n\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n return [4\n /*yield*/\n , this.createStringToSign(longDate, credentialScope, canonicalRequest)];\n\n case 1:\n stringToSign = _d.sent();\n _b = (_a = this.sha256).bind;\n return [4\n /*yield*/\n , keyPromise];\n\n case 2:\n hash = new (_b.apply(_a, [void 0, _d.sent()]))();\n hash.update(stringToSign);\n _c = toHex;\n return [4\n /*yield*/\n , hash.digest()];\n\n case 3:\n return [2\n /*return*/\n , _c.apply(void 0, [_d.sent()])];\n }\n });\n });\n };\n\n SignatureV4.prototype.getSigningKey = function (credentials, region, shortDate, service) {\n return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service);\n };\n\n return SignatureV4;\n}();\n\nexport { SignatureV4 };\n\nvar formatDate = function formatDate(now) {\n var longDate = iso8601(now).replace(/[\\-:]/g, \"\");\n return {\n longDate: longDate,\n shortDate: longDate.substr(0, 8)\n };\n};\n\nvar getCanonicalHeaderList = function getCanonicalHeaderList(headers) {\n return Object.keys(headers).sort().join(\";\");\n};\n\nvar normalizeRegionProvider = function normalizeRegionProvider(region) {\n if (typeof region === \"string\") {\n var promisified_1 = Promise.resolve(region);\n return function () {\n return promisified_1;\n };\n } else {\n return region;\n }\n};\n\nvar normalizeCredentialsProvider = function normalizeCredentialsProvider(credentials) {\n if (typeof credentials === \"object\") {\n var promisified_2 = Promise.resolve(credentials);\n return function () {\n return promisified_2;\n };\n } else {\n return credentials;\n }\n};","import { __assign, __values } from \"tslib\";\nimport { cloneRequest } from \"./cloneRequest\";\n/**\n * @internal\n */\n\nexport function moveHeadersToQuery(request, options) {\n var e_1, _a;\n\n var _b;\n\n if (options === void 0) {\n options = {};\n }\n\n var _c = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request),\n headers = _c.headers,\n _d = _c.query,\n query = _d === void 0 ? {} : _d;\n\n try {\n for (var _e = __values(Object.keys(headers)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var name = _f.value;\n var lname = name.toLowerCase();\n\n if (lname.substr(0, 6) === \"x-amz-\" && !((_b = options.unhoistableHeaders) === null || _b === void 0 ? void 0 : _b.has(lname))) {\n query[name] = headers[name];\n delete headers[name];\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_f && !_f.done && (_a = _e.return)) _a.call(_e);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return __assign(__assign({}, request), {\n headers: headers,\n query: query\n });\n}","import { __values } from \"tslib\";\nexport function hasHeader(soughtHeader, headers) {\n var e_1, _a;\n\n soughtHeader = soughtHeader.toLowerCase();\n\n try {\n for (var _b = __values(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var headerName = _c.value;\n\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return false;\n}","import { __values } from \"tslib\";\nimport { escapeUri } from \"@aws-sdk/util-uri-escape\";\nimport { SIGNATURE_HEADER } from \"./constants\";\n/**\n * @internal\n */\n\nexport function getCanonicalQuery(_a) {\n var e_1, _b;\n\n var _c = _a.query,\n query = _c === void 0 ? {} : _c;\n var keys = [];\n var serialized = {};\n\n var _loop_1 = function _loop_1(key) {\n if (key.toLowerCase() === SIGNATURE_HEADER) {\n return \"continue\";\n }\n\n keys.push(key);\n var value = query[key];\n\n if (typeof value === \"string\") {\n serialized[key] = escapeUri(key) + \"=\" + escapeUri(value);\n } else if (Array.isArray(value)) {\n serialized[key] = value.slice(0).sort().reduce(function (encoded, value) {\n return encoded.concat([escapeUri(key) + \"=\" + escapeUri(value)]);\n }, []).join(\"&\");\n }\n };\n\n try {\n for (var _d = __values(Object.keys(query).sort()), _e = _d.next(); !_e.done; _e = _d.next()) {\n var key = _e.value;\n\n _loop_1(key);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_e && !_e.done && (_b = _d.return)) _b.call(_d);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return keys.map(function (key) {\n return serialized[key];\n }).filter(function (serialized) {\n return serialized;\n }) // omit any falsy values\n .join(\"&\");\n}","import { __assign, __awaiter, __generator, __read } from \"tslib\";\nimport { memoize } from \"@aws-sdk/property-provider\";\nimport { SignatureV4 } from \"@aws-sdk/signature-v4\"; // 5 minutes buffer time the refresh the credential before it really expires\n\nvar CREDENTIAL_EXPIRE_WINDOW = 300000;\nexport var resolveAwsAuthConfig = function resolveAwsAuthConfig(input) {\n var normalizedCreds = input.credentials ? normalizeCredentialProvider(input.credentials) : input.credentialDefaultProvider(input);\n var _a = input.signingEscapePath,\n signingEscapePath = _a === void 0 ? true : _a,\n _b = input.systemClockOffset,\n systemClockOffset = _b === void 0 ? input.systemClockOffset || 0 : _b,\n sha256 = input.sha256;\n var signer;\n\n if (input.signer) {\n //if signer is supplied by user, normalize it to a function returning a promise for signer.\n signer = normalizeProvider(input.signer);\n } else {\n //construct a provider inferring signing from region.\n signer = function signer() {\n return normalizeProvider(input.region)().then(function (region) {\n return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , input.regionInfoProvider(region)];\n\n case 1:\n return [2\n /*return*/\n , [_a.sent() || {}, region]];\n }\n });\n });\n }).then(function (_a) {\n var _b = __read(_a, 2),\n regionInfo = _b[0],\n region = _b[1];\n\n var signingRegion = regionInfo.signingRegion,\n signingService = regionInfo.signingService; //update client's singing region and signing service config if they are resolved.\n //signing region resolving order: user supplied signingRegion -> endpoints.json inferred region -> client region\n\n input.signingRegion = input.signingRegion || signingRegion || region; //signing name resolving order:\n //user supplied signingName -> endpoints.json inferred (credential scope -> model arnNamespace) -> model service id\n\n input.signingName = input.signingName || signingService || input.serviceId;\n return new SignatureV4({\n credentials: normalizedCreds,\n region: input.signingRegion,\n service: input.signingName,\n sha256: sha256,\n uriEscapePath: signingEscapePath\n });\n });\n };\n }\n\n return __assign(__assign({}, input), {\n systemClockOffset: systemClockOffset,\n signingEscapePath: signingEscapePath,\n credentials: normalizedCreds,\n signer: signer\n });\n}; // TODO: reduce code duplication\n\nexport var resolveSigV4AuthConfig = function resolveSigV4AuthConfig(input) {\n var normalizedCreds = input.credentials ? normalizeCredentialProvider(input.credentials) : input.credentialDefaultProvider(input);\n var _a = input.signingEscapePath,\n signingEscapePath = _a === void 0 ? true : _a,\n _b = input.systemClockOffset,\n systemClockOffset = _b === void 0 ? input.systemClockOffset || 0 : _b,\n sha256 = input.sha256;\n var signer;\n\n if (input.signer) {\n //if signer is supplied by user, normalize it to a function returning a promise for signer.\n signer = normalizeProvider(input.signer);\n } else {\n signer = normalizeProvider(new SignatureV4({\n credentials: normalizedCreds,\n region: input.region,\n service: input.signingName,\n sha256: sha256,\n uriEscapePath: signingEscapePath\n }));\n }\n\n return __assign(__assign({}, input), {\n systemClockOffset: systemClockOffset,\n signingEscapePath: signingEscapePath,\n credentials: normalizedCreds,\n signer: signer\n });\n};\n\nvar normalizeProvider = function normalizeProvider(input) {\n if (typeof input === \"object\") {\n var promisified_1 = Promise.resolve(input);\n return function () {\n return promisified_1;\n };\n }\n\n return input;\n};\n\nvar normalizeCredentialProvider = function normalizeCredentialProvider(credentials) {\n if (typeof credentials === \"function\") {\n return memoize(credentials, function (credentials) {\n return credentials.expiration !== undefined && credentials.expiration.getTime() - Date.now() < CREDENTIAL_EXPIRE_WINDOW;\n }, function (credentials) {\n return credentials.expiration !== undefined;\n });\n }\n\n return normalizeProvider(credentials);\n};","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\n\nvar isClockSkewed = function isClockSkewed(newServerTime, systemClockOffset) {\n return Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - newServerTime) >= 300000;\n};\n\nvar getSkewCorrectedDate = function getSkewCorrectedDate(systemClockOffset) {\n return new Date(Date.now() + systemClockOffset);\n};\n\nexport function awsAuthMiddleware(options) {\n return function (next, context) {\n return function (args) {\n return __awaiter(this, void 0, void 0, function () {\n var signer, _a, output, _b, _c, headers, dateHeader, serverTime;\n\n var _d;\n\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n if (!HttpRequest.isInstance(args.request)) return [2\n /*return*/\n , next(args)];\n if (!(typeof options.signer === \"function\")) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , options.signer()];\n\n case 1:\n _a = _e.sent();\n return [3\n /*break*/\n , 3];\n\n case 2:\n _a = options.signer;\n _e.label = 3;\n\n case 3:\n signer = _a;\n _b = next;\n _c = [__assign({}, args)];\n _d = {};\n return [4\n /*yield*/\n , signer.sign(args.request, {\n signingDate: new Date(Date.now() + options.systemClockOffset),\n signingRegion: context[\"signing_region\"],\n signingService: context[\"signing_service\"]\n })];\n\n case 4:\n return [4\n /*yield*/\n , _b.apply(void 0, [__assign.apply(void 0, _c.concat([(_d.request = _e.sent(), _d)]))])];\n\n case 5:\n output = _e.sent();\n headers = output.response.headers;\n dateHeader = headers && (headers.date || headers.Date);\n\n if (dateHeader) {\n serverTime = Date.parse(dateHeader);\n\n if (isClockSkewed(serverTime, options.systemClockOffset)) {\n options.systemClockOffset = serverTime - Date.now();\n }\n }\n\n return [2\n /*return*/\n , output];\n }\n });\n });\n };\n };\n}\nexport var awsAuthMiddlewareOptions = {\n name: \"awsAuthMiddleware\",\n tags: [\"SIGNATURE\", \"AWSAUTH\"],\n relation: \"after\",\n toMiddleware: \"retryMiddleware\",\n override: true\n};\nexport var getAwsAuthPlugin = function getAwsAuthPlugin(options) {\n return {\n applyToStack: function applyToStack(clientStack) {\n clientStack.addRelativeTo(awsAuthMiddleware(options), awsAuthMiddlewareOptions);\n }\n };\n};\nexport var getSigV4AuthPlugin = getAwsAuthPlugin;","export * from \"./configurations\";\nexport * from \"./middleware\";","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n return function () {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (isNativeReflectConstruct()) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Much of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// Many optimizations have been made, so the bundle size is ultimately smaller but performance is similar.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\n\nvar wk = function wk(c, id, msg, transfer, cb) {\n var u = ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([c], {\n type: 'text/javascript'\n })));\n var w = new Worker(u);\n\n w.onerror = function (e) {\n return cb(e.error, null);\n };\n\n w.onmessage = function (e) {\n return cb(null, e.data);\n };\n\n w.postMessage(msg, transfer);\n return w;\n}; // aliases for shorter compressed code (most minifers don't do this)\n\n\nvar u8 = Uint8Array,\n u16 = Uint16Array,\n u32 = Uint32Array; // fixed length extra bits\n\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0,\n/* unused */\n0, 0,\n/* impossible */\n0]); // fixed distance extra bits\n// see fleb note\n\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13,\n/* unused */\n0, 0]); // code length index map\n\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); // get base, reverse index map from extra bits\n\nvar freb = function freb(eb, start) {\n var b = new u16(31);\n\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n } // numbers here are at max 18 bits\n\n\n var r = new u32(b[30]);\n\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = j - b[i] << 5 | i;\n }\n }\n\n return [b, r];\n};\n\nvar _a = freb(fleb, 2),\n fl = _a[0],\n revfl = _a[1]; // we can ignore the fact that the other numbers are wrong; they never happen anyway\n\n\nfl[28] = 258, revfl[258] = 28;\n\nvar _b = freb(fdeb, 0),\n fd = _b[0],\n revfd = _b[1]; // map of value to reverse (assuming 16 bits)\n\n\nvar rev = new u16(32768);\n\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = (i & 0xAAAA) >>> 1 | (i & 0x5555) << 1;\n x = (x & 0xCCCC) >>> 2 | (x & 0x3333) << 2;\n x = (x & 0xF0F0) >>> 4 | (x & 0x0F0F) << 4;\n rev[i] = ((x & 0xFF00) >>> 8 | (x & 0x00FF) << 8) >>> 1;\n} // create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\n\n\nvar hMap = function hMap(cd, mb, r) {\n var s = cd.length; // index\n\n var i = 0; // u16 \"map\": index -> # of codes with bit length = index\n\n var l = new u16(mb); // length of cd must be 288 (total # of codes)\n\n for (; i < s; ++i) {\n ++l[cd[i] - 1];\n } // u16 \"map\": index -> minimum code for bit length = index\n\n\n var le = new u16(mb);\n\n for (i = 0; i < mb; ++i) {\n le[i] = le[i - 1] + l[i - 1] << 1;\n }\n\n var co;\n\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb); // bits to remove for reverser\n\n var rvb = 15 - mb;\n\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = i << 4 | cd[i]; // free bits\n\n var r_1 = mb - cd[i]; // start value\n\n var v = le[cd[i] - 1]++ << r_1; // m is end value\n\n for (var m = v | (1 << r_1) - 1; v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n } else {\n co = new u16(s);\n\n for (i = 0; i < s; ++i) {\n co[i] = rev[le[cd[i] - 1]++] >>> 15 - cd[i];\n }\n }\n\n return co;\n}; // fixed length tree\n\n\nvar flt = new u8(288);\n\nfor (var i = 0; i < 144; ++i) {\n flt[i] = 8;\n}\n\nfor (var i = 144; i < 256; ++i) {\n flt[i] = 9;\n}\n\nfor (var i = 256; i < 280; ++i) {\n flt[i] = 7;\n}\n\nfor (var i = 280; i < 288; ++i) {\n flt[i] = 8;\n} // fixed distance tree\n\n\nvar fdt = new u8(32);\n\nfor (var i = 0; i < 32; ++i) {\n fdt[i] = 5;\n} // fixed length map\n\n\nvar flm = /*#__PURE__*/hMap(flt, 9, 0),\n flrm = /*#__PURE__*/hMap(flt, 9, 1); // fixed distance map\n\nvar fdm = /*#__PURE__*/hMap(fdt, 5, 0),\n fdrm = /*#__PURE__*/hMap(fdt, 5, 1); // find max of array\n\nvar max = function max(a) {\n var m = a[0];\n\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m) m = a[i];\n }\n\n return m;\n}; // read d, starting at bit p and mask with m\n\n\nvar bits = function bits(d, p, m) {\n var o = p / 8 >> 0;\n return (d[o] | d[o + 1] << 8) >>> (p & 7) & m;\n}; // read d, starting at bit p continuing for at least 16 bits\n\n\nvar bits16 = function bits16(d, p) {\n var o = p / 8 >> 0;\n return (d[o] | d[o + 1] << 8 | d[o + 2] << 16) >>> (p & 7);\n}; // get end of byte\n\n\nvar shft = function shft(p) {\n return (p / 8 >> 0) + (p & 7 && 1);\n}; // typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\n\n\nvar slc = function slc(v, s, e) {\n if (s == null || s < 0) s = 0;\n if (e == null || e > v.length) e = v.length; // can't use .constructor in case user-supplied\n\n var n = new (v instanceof u16 ? u16 : v instanceof u32 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n}; // expands raw DEFLATE data\n\n\nvar inflt = function inflt(dat, buf, st) {\n // source length\n var sl = dat.length; // have to estimate size\n\n var noBuf = !buf || st; // no state\n\n var noSt = !st || st.i;\n if (!st) st = {}; // Assumes roughly 33% compression ratio average\n\n if (!buf) buf = new u8(sl * 3); // ensure buffer can fit at least l elements\n\n var cbuf = function cbuf(l) {\n var bl = buf.length; // need to increase size to fit\n\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n }; // last chunk bitpos bytes\n\n\n var final = st.f || 0,\n pos = st.p || 0,\n bt = st.b || 0,\n lm = st.l,\n dm = st.d,\n lbt = st.m,\n dbt = st.n; // total bits\n\n var tbts = sl * 8;\n\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n st.f = final = bits(dat, pos, 1); // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4,\n l = dat[s - 4] | dat[s - 3] << 8,\n t = s + l;\n\n if (t > sl) {\n if (noSt) throw 'unexpected EOF';\n break;\n } // ensure size\n\n\n if (noBuf) cbuf(bt + l); // Copy over uncompressed data\n\n buf.set(dat.subarray(s, t), bt); // Get new bitpos, update byte count\n\n st.b = bt += l, st.p = pos = t * 8;\n continue;\n } else if (type == 1) lm = flrm, dm = fdrm, lbt = 9, dbt = 5;else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257,\n hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14; // length+distance tree\n\n var ldt = new u8(tl); // code length tree\n\n var clt = new u8(19);\n\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n\n pos += hcLen * 3; // code lengths bits\n\n var clb = max(clt),\n clbmsk = (1 << clb) - 1;\n if (!noSt && pos + tl * (clb + 7) > tbts) break; // code lengths map\n\n var clm = hMap(clt, clb, 1);\n\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)]; // bits read\n\n pos += r & 15; // symbol\n\n var s = r >>> 4; // code length to copy\n\n if (s < 16) {\n ldt[i++] = s;\n } else {\n // copy count\n var c = 0,\n n = 0;\n if (s == 16) n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];else if (s == 17) n = 3 + bits(dat, pos, 7), pos += 3;else if (s == 18) n = 11 + bits(dat, pos, 127), pos += 7;\n\n while (n--) {\n ldt[i++] = c;\n }\n }\n } // length tree distance tree\n\n\n var lt = ldt.subarray(0, hLit),\n dt = ldt.subarray(hLit); // max length bits\n\n lbt = max(lt); // max dist bits\n\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n } else throw 'invalid block type';\n\n if (pos > tbts) throw 'unexpected EOF';\n } // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17;\n\n\n if (noBuf) cbuf(bt + 131072);\n var lms = (1 << lbt) - 1,\n dms = (1 << dbt) - 1;\n var mxa = lbt + dbt + 18;\n\n while (noSt || pos + mxa < tbts) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms],\n sym = c >>> 4;\n pos += c & 15;\n if (pos > tbts) throw 'unexpected EOF';\n if (!c) throw 'invalid length/literal';\n if (sym < 256) buf[bt++] = sym;else if (sym == 256) {\n lm = null;\n break;\n } else {\n var add = sym - 254; // no extra bits needed if less\n\n if (sym > 264) {\n // index\n var i = sym - 257,\n b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n } // dist\n\n\n var d = dm[bits16(dat, pos) & dms],\n dsym = d >>> 4;\n if (!d) throw 'invalid distance';\n pos += d & 15;\n var dt = fd[dsym];\n\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n\n if (pos > tbts) throw 'unexpected EOF';\n if (noBuf) cbuf(bt + 131072);\n var end = bt + add;\n\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n\n bt = end;\n }\n }\n\n st.l = lm, st.p = pos, st.b = bt;\n if (lm) final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n\n return bt == buf.length ? buf : slc(buf, 0, bt);\n}; // starting at p, write the minimum number of bits that can hold v to d\n\n\nvar wbits = function wbits(d, p, v) {\n v <<= p & 7;\n var o = p / 8 >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n}; // starting at p, write the minimum number of bits (>8) that can hold v to d\n\n\nvar wbits16 = function wbits16(d, p, v) {\n v <<= p & 7;\n var o = p / 8 >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n}; // creates code lengths from a frequency table\n\n\nvar hTree = function hTree(d, mb) {\n // Need extra info to make a tree\n var t = [];\n\n for (var i = 0; i < d.length; ++i) {\n if (d[i]) t.push({\n s: i,\n f: d[i]\n });\n }\n\n var s = t.length;\n var t2 = t.slice();\n if (!s) return [new u8(0), 0];\n\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n\n t.sort(function (a, b) {\n return a.f - b.f;\n }); // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n\n t.push({\n s: -1,\n f: 25001\n });\n var l = t[0],\n r = t[1],\n i0 = 0,\n i1 = 1,\n i2 = 2;\n t[0] = {\n s: -1,\n f: l.f + r.f,\n l: l,\n r: r\n }; // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = {\n s: -1,\n f: l.f + r.f,\n l: l,\n r: r\n };\n }\n\n var maxSym = t2[0].s;\n\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym) maxSym = t2[i].s;\n } // code lengths\n\n\n var tr = new u16(maxSym + 1); // max bits in tree\n\n var mbt = ln(t[i1 - 1], tr, 0);\n\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0,\n dt = 0; // left cost\n\n var lft = mbt - mb,\n cst = 1 << lft;\n t2.sort(function (a, b) {\n return tr[b.s] - tr[a.s] || a.f - b.f;\n });\n\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n\n if (tr[i2_1] > mb) {\n dt += cst - (1 << mbt - tr[i2_1]);\n tr[i2_1] = mb;\n } else break;\n }\n\n dt >>>= lft;\n\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb) dt -= 1 << mb - tr[i2_2]++ - 1;else ++i;\n }\n\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n\n mbt = mb;\n }\n\n return [new u8(tr), mbt];\n}; // get the max length and assign length codes\n\n\nvar ln = function ln(n, l, d) {\n return n.s == -1 ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1)) : l[n.s] = d;\n}; // length codes generation\n\n\nvar lc = function lc(c) {\n var s = c.length; // Note that the semicolon was intentional\n\n while (s && !c[--s]) {\n ;\n }\n\n var cl = new u16(++s); // ind num streak\n\n var cli = 0,\n cln = c[0],\n cls = 1;\n\n var w = function w(v) {\n cl[cli++] = v;\n };\n\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s) ++cls;else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138) {\n w(32754);\n }\n\n if (cls > 2) {\n w(cls > 10 ? cls - 11 << 5 | 28690 : cls - 3 << 5 | 12305);\n cls = 0;\n }\n } else if (cls > 3) {\n w(cln), --cls;\n\n for (; cls > 6; cls -= 6) {\n w(8304);\n }\n\n if (cls > 2) w(cls - 3 << 5 | 8208), cls = 0;\n }\n\n while (cls--) {\n w(cln);\n }\n\n cls = 1;\n cln = c[i];\n }\n }\n\n return [cl.subarray(0, cli), s];\n}; // calculate the length of output from tree, code lengths\n\n\nvar clen = function clen(cf, cl) {\n var l = 0;\n\n for (var i = 0; i < cl.length; ++i) {\n l += cf[i] * cl[i];\n }\n\n return l;\n}; // writes a fixed block\n// returns the new bit pos\n\n\nvar wfblk = function wfblk(out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n\n for (var i = 0; i < s; ++i) {\n out[o + i + 4] = dat[i];\n }\n\n return (o + 4 + s) * 8;\n}; // writes a block\n\n\nvar wblk = function wblk(dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n\n var _a = hTree(lf, 15),\n dlt = _a[0],\n mlb = _a[1];\n\n var _b = hTree(df, 15),\n ddt = _b[0],\n mdb = _b[1];\n\n var _c = lc(dlt),\n lclt = _c[0],\n nlc = _c[1];\n\n var _d = lc(ddt),\n lcdt = _d[0],\n ndc = _d[1];\n\n var lcfreq = new u16(19);\n\n for (var i = 0; i < lclt.length; ++i) {\n lcfreq[lclt[i] & 31]++;\n }\n\n for (var i = 0; i < lcdt.length; ++i) {\n lcfreq[lcdt[i] & 31]++;\n }\n\n var _e = hTree(lcfreq, 7),\n lct = _e[0],\n mlcb = _e[1];\n\n var nlcc = 19;\n\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc) {\n ;\n }\n\n var flen = bl + 5 << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen) return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n\n for (var i = 0; i < nlcc; ++i) {\n wbits(out, p + 3 * i, lct[clim[i]]);\n }\n\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15) wbits(out, p, clct[i] >>> 5 & 127), p += clct[i] >>> 12;\n }\n }\n } else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = syms[i] >>> 18 & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7) wbits(out, p, syms[i] >>> 23 & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3) wbits16(out, p, syms[i] >>> 5 & 8191), p += fdeb[dst];\n } else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n\n wbits16(out, p, lm[256]);\n return p + ll[256];\n}; // deflate options (nice << 13) | chain\n\n\nvar deo = /*#__PURE__*/new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]); // empty\n\nvar et = /*#__PURE__*/new u8(0); // compresses data into a raw DEFLATE buffer\n\nvar dflt = function dflt(dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.floor(s / 7000)) + post); // writing to this writes to the output buffer\n\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n // end\n var e = i + 65535;\n\n if (e < s) {\n // write full block\n pos = wfblk(w, pos, dat.subarray(i, e));\n } else {\n // write final block\n w[i] = lst;\n pos = wfblk(w, pos, dat.subarray(i, s));\n }\n }\n } else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13,\n c = opt & 8191;\n var msk_1 = (1 << plvl) - 1; // prev 2-byte val map curr 2-byte val map\n\n var prev = new u16(32768),\n head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3),\n bs2_1 = 2 * bs1_1;\n\n var hsh = function hsh(i) {\n return (dat[i] ^ dat[i + 1] << bs1_1 ^ dat[i + 2] << bs2_1) & msk_1;\n }; // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n\n\n var syms = new u32(25000); // length/literal freq distance freq\n\n var lf = new u16(288),\n df = new u16(32); // l/lcnt exbits index l/lind waitdx bitpos\n\n var lc_1 = 0,\n eb = 0,\n i = 0,\n li = 0,\n wi = 0,\n bs = 0;\n\n for (; i < s; ++i) {\n // hash value\n var hv = hsh(i); // index mod 32768\n\n var imod = i & 32767; // previous index with this value\n\n var pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod; // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n\n for (var j = 0; j < 286; ++j) {\n lf[j] = 0;\n }\n\n for (var j = 0; j < 30; ++j) {\n df[j] = 0;\n }\n } // len dist chain\n\n\n var l = 2,\n d = 0,\n ch_1 = c,\n dif = imod - pimod & 32767;\n\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i); // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n\n var ml = Math.min(258, rem);\n\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl) {\n ;\n }\n\n if (nl > l) {\n l = nl, d = dif; // break out early when we reach \"nice\" (we are satisfied enough)\n\n if (nl > maxn) break; // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j + 32768 & 32767;\n var pti = prev[ti];\n var cd = ti - pti + 32768 & 32767;\n if (cd > md) md = cd, pimod = ti;\n }\n }\n } // check the previous match\n\n\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod + 32768 & 32767;\n }\n } // d will be nonzero only when a match was found\n\n\n if (d) {\n // store both dist and len data in one Uint32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | revfl[l] << 18 | revfd[d];\n var lin = revfl[l] & 31,\n din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n } else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos); // this is the easiest way to avoid needing to maintain state\n\n if (!lst) pos = wfblk(w, pos, et);\n }\n\n return slc(o, 0, pre + shft(pos) + post);\n}; // CRC32 table\n\n\nvar crct = /*#__PURE__*/function () {\n var t = new u32(256);\n\n for (var i = 0; i < 256; ++i) {\n var c = i,\n k = 9;\n\n while (--k) {\n c = (c & 1 && 0xEDB88320) ^ c >>> 1;\n }\n\n t[i] = c;\n }\n\n return t;\n}(); // CRC32\n\n\nvar crc = function crc() {\n var c = 0xFFFFFFFF;\n return {\n p: function p(d) {\n // closures have awful performance\n var cr = c;\n\n for (var i = 0; i < d.length; ++i) {\n cr = crct[cr & 255 ^ d[i]] ^ cr >>> 8;\n }\n\n c = cr;\n },\n d: function d() {\n return c ^ 0xFFFFFFFF;\n }\n };\n}; // Alder32\n\n\nvar adler = function adler() {\n var a = 1,\n b = 0;\n return {\n p: function p(d) {\n // closures have awful performance\n var n = a,\n m = b;\n var l = d.length;\n\n for (var i = 0; i != l;) {\n var e = Math.min(i + 5552, l);\n\n for (; i < e; ++i) {\n n += d[i], m += n;\n }\n\n n %= 65521, m %= 65521;\n }\n\n a = n, b = m;\n },\n d: function d() {\n return (a >>> 8 << 16 | (b & 255) << 8 | b >>> 8) + ((a & 255) << 23) * 2;\n }\n };\n};\n\n; // deflate with opts\n\nvar dopt = function dopt(dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 12 + opt.mem, pre, post, !st);\n}; // Walmart object spread\n\n\nvar mrg = function mrg(a, b) {\n var o = {};\n\n for (var k in a) {\n o[k] = a[k];\n }\n\n for (var k in b) {\n o[k] = b[k];\n }\n\n return o;\n}; // worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\n\n\nvar wcln = function wcln(fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/ /g, '').split(',');\n\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i],\n k = ks[i];\n\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n } else {\n fnStr += st_1;\n\n for (var t in v.prototype) {\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n } else fnStr += st_1;\n } else td[k] = v;\n }\n\n return [fnStr, td];\n};\n\nvar ch = []; // clone bufs\n\nvar cbfs = function cbfs(v) {\n var tl = [];\n\n for (var k in v) {\n if (v[k] instanceof u8 || v[k] instanceof u16 || v[k] instanceof u32) tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n\n return tl;\n}; // use a worker to execute code\n\n\nvar wrkr = function wrkr(fns, init, id, cb) {\n var _a;\n\n if (!ch[id]) {\n var fnStr = '',\n td_1 = {},\n m = fns.length - 1;\n\n for (var i = 0; i < m; ++i) {\n _a = wcln(fns[i], fnStr, td_1), fnStr = _a[0], td_1 = _a[1];\n }\n\n ch[id] = wcln(fns[m], fnStr, td_1);\n }\n\n var td = mrg({}, ch[id][1]);\n return wk(ch[id][0] + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n}; // base async inflate fn\n\n\nvar bInflt = function bInflt() {\n return [u8, u16, u32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, hMap, max, bits, bits16, shft, slc, inflt, inflateSync, pbf, gu8];\n};\n\nvar bDflt = function bDflt() {\n return [u8, u16, u32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf];\n}; // gzip extra\n\n\nvar gze = function gze() {\n return [gzh, gzhl, wbytes, crc, crct];\n}; // gunzip extra\n\n\nvar guze = function guze() {\n return [gzs, gzl];\n}; // zlib extra\n\n\nvar zle = function zle() {\n return [zlh, wbytes, adler];\n}; // unzlib extra\n\n\nvar zule = function zule() {\n return [zlv];\n}; // post buf\n\n\nvar pbf = function pbf(msg) {\n return postMessage(msg, [msg.buffer]);\n}; // get u8\n\n\nvar gu8 = function gu8(o) {\n return o && o.size && new u8(o.size);\n}; // async helper\n\n\nvar cbify = function cbify(dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n if (!opts.consume) dat = new u8(dat);\n w.postMessage([dat, opts], [dat.buffer]);\n return function () {\n w.terminate();\n };\n}; // auto stream\n\n\nvar astrm = function astrm(strm) {\n strm.ondata = function (dat, final) {\n return postMessage([dat, final], [dat.buffer]);\n };\n\n return function (ev) {\n return strm.push(ev.data[0], ev.data[1]);\n };\n}; // async stream attach\n\n\nvar astrmify = function astrmify(fns, strm, opts, init, id) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err) w.terminate(), strm.ondata.call(strm, err);else {\n if (dat[1]) w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n\n strm.push = function (d, f) {\n if (t) throw 'stream finished';\n if (!strm.ondata) throw 'no stream handler';\n w.postMessage([d, t = f], [d.buffer]);\n };\n\n strm.terminate = function () {\n w.terminate();\n };\n}; // read 2 bytes\n\n\nvar b2 = function b2(d, b) {\n return d[b] | d[b + 1] << 8;\n}; // read 4 bytes\n\n\nvar b4 = function b4(d, b) {\n return (d[b] | d[b + 1] << 8 | d[b + 2] << 16) + (d[b + 3] << 23) * 2;\n}; // write bytes\n\n\nvar wbytes = function wbytes(d, b, v) {\n for (; v; ++b) {\n d[b] = v, v >>>= 8;\n }\n}; // gzip header\n\n\nvar gzh = function gzh(c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n\n if (o.mtime != 0) wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n\n if (fn) {\n c[3] = 8;\n\n for (var i = 0; i <= fn.length; ++i) {\n c[i + 10] = fn.charCodeAt(i);\n }\n }\n}; // gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\n\n\nvar gzs = function gzs(d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8) throw 'invalid gzip data';\n var flg = d[3];\n var st = 10;\n if (flg & 4) st += d[10] | (d[11] << 8) + 2;\n\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++]) {\n ;\n }\n\n return st + (flg & 2);\n}; // gzip length\n\n\nvar gzl = function gzl(d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16) + 2 * (d[l - 1] << 23);\n}; // gzip header length\n\n\nvar gzhl = function gzhl(o) {\n return 10 + (o.filename && o.filename.length + 1 || 0);\n}; // zlib header\n\n\nvar zlh = function zlh(c, o) {\n var lv = o.level,\n fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = fl << 6 | (fl ? 32 - 2 * fl : 1);\n}; // zlib valid\n\n\nvar zlv = function zlv(d) {\n if ((d[0] & 15) != 8 || d[0] >>> 4 > 7 || (d[0] << 8 | d[1]) % 31) throw 'invalid zlib data';\n if (d[1] & 32) throw 'invalid zlib data: preset dictionaries not supported';\n};\n\nfunction AsyncCmpStrm(opts, cb) {\n if (!cb && typeof opts == 'function') cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n} // zlib footer: -4 to -0 is Adler32\n\n/**\n * Streaming DEFLATE compression\n */\n\n\nvar Deflate = /*#__PURE__*/function () {\n function Deflate(opts, cb) {\n if (!cb && typeof opts == 'function') cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n }\n\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, !f), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n\n\n Deflate.prototype.push = function (chunk, final) {\n if (this.d) throw 'stream finished';\n if (!this.ondata) throw 'no stream handler';\n this.d = final;\n this.p(chunk, final || false);\n };\n\n return Deflate;\n}();\n\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\n\nvar AsyncDeflate = /*#__PURE__*/function () {\n function AsyncDeflate(opts, cb) {\n astrmify([bDflt, function () {\n return [astrm, Deflate];\n }], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6);\n }\n\n return AsyncDeflate;\n}();\n\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return cbify(data, opts, [bDflt], function (ev) {\n return pbf(deflateSync(ev.data[0], ev.data[1]));\n }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\n\nexport function deflateSync(data, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n return dopt(data, opts, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\n\nvar Inflate = /*#__PURE__*/function () {\n /**\n * Creates an inflation stream\n * @param cb The callback to call whenever data is inflated\n */\n function Inflate(cb) {\n this.s = {};\n this.p = new u8(0);\n this.ondata = cb;\n }\n\n Inflate.prototype.e = function (c) {\n if (this.d) throw 'stream finished';\n if (!this.ondata) throw 'no stream handler';\n var l = this.p.length;\n var n = new u8(l + c.length);\n n.set(this.p), n.set(c, l), this.p = n;\n };\n\n Inflate.prototype.c = function (final) {\n this.d = this.s.i = final || false;\n var bts = this.s.b;\n var dt = inflt(this.p, this.o, this.s);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, this.s.p / 8 >> 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n\n\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n\n return Inflate;\n}();\n\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\n\nvar AsyncInflate = /*#__PURE__*/function () {\n /**\n * Creates an asynchronous inflation stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncInflate(cb) {\n this.ondata = cb;\n astrmify([bInflt, function () {\n return [astrm, Inflate];\n }], this, 0, function () {\n var strm = new Inflate();\n onmessage = astrm(strm);\n }, 7);\n }\n\n return AsyncInflate;\n}();\n\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return cbify(data, opts, [bInflt], function (ev) {\n return pbf(inflateSync(ev.data[0], gu8(ev.data[1])));\n }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\n\nexport function inflateSync(data, out) {\n return inflt(data, out);\n} // before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n\n/**\n * Streaming GZIP compression\n */\n\nvar Gzip = /*#__PURE__*/function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n\n\n Gzip.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n\n Gzip.prototype.p = function (c, f) {\n this.c.p(c);\n this.l += c.length;\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, !f);\n if (this.v) gzh(raw, this.o), this.v = 0;\n if (f) wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n\n return Gzip;\n}();\n\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\n\nvar AsyncGzip = /*#__PURE__*/function () {\n function AsyncGzip(opts, cb) {\n astrmify([bDflt, gze, function () {\n return [astrm, Deflate, Gzip];\n }], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8);\n }\n\n return AsyncGzip;\n}();\n\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return cbify(data, opts, [bDflt, gze, function () {\n return [gzipSync];\n }], function (ev) {\n return pbf(gzipSync(ev.data[0], ev.data[1]));\n }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\n\nexport function gzipSync(data, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n var c = crc(),\n l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8),\n s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming GZIP decompression\n */\n\nvar Gunzip = /*#__PURE__*/function () {\n /**\n * Creates a GUNZIP stream\n * @param cb The callback to call whenever data is inflated\n */\n function Gunzip(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n\n\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n\n if (this.v) {\n var s = gzs(this.p);\n if (s >= this.p.length && !final) return;\n this.p = this.p.subarray(s), this.v = 0;\n }\n\n if (final) {\n if (this.p.length < 8) throw 'invalid gzip stream';\n this.p = this.p.subarray(0, -8);\n } // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n\n\n Inflate.prototype.c.call(this, final);\n };\n\n return Gunzip;\n}();\n\nexport { Gunzip };\n/**\n * Asynchronous streaming GZIP decompression\n */\n\nvar AsyncGunzip = /*#__PURE__*/function () {\n /**\n * Creates an asynchronous GUNZIP stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncGunzip(cb) {\n this.ondata = cb;\n astrmify([bInflt, guze, function () {\n return [astrm, Inflate, Gunzip];\n }], this, 0, function () {\n var strm = new Gunzip();\n onmessage = astrm(strm);\n }, 9);\n }\n\n return AsyncGunzip;\n}();\n\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return cbify(data, opts, [bInflt, guze, function () {\n return [gunzipSync];\n }], function (ev) {\n return pbf(gunzipSync(ev.data[0]));\n }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param out Where to write the data. GZIP already encodes the output size, so providing this doesn't save memory.\n * @returns The decompressed version of the data\n */\n\nexport function gunzipSync(data, out) {\n return inflt(data.subarray(gzs(data), -8), out || new u8(gzl(data)));\n}\n/**\n * Streaming Zlib compression\n */\n\nvar Zlib = /*#__PURE__*/function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n\n\n Zlib.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n\n Zlib.prototype.p = function (c, f) {\n this.c.p(c);\n var raw = dopt(c, this.o, this.v && 2, f && 4, !f);\n if (this.v) zlh(raw, this.o), this.v = 0;\n if (f) wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n\n return Zlib;\n}();\n\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\n\nvar AsyncZlib = /*#__PURE__*/function () {\n function AsyncZlib(opts, cb) {\n astrmify([bDflt, zle, function () {\n return [astrm, Deflate, Zlib];\n }], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10);\n }\n\n return AsyncZlib;\n}();\n\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return cbify(data, opts, [bDflt, zle, function () {\n return [zlibSync];\n }], function (ev) {\n return pbf(zlibSync(ev.data[0], ev.data[1]));\n }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\n\nexport function zlibSync(data, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\n\nvar Unzlib = /*#__PURE__*/function () {\n /**\n * Creates a Zlib decompression stream\n * @param cb The callback to call whenever data is inflated\n */\n function Unzlib(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n\n\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n\n if (this.v) {\n if (this.p.length < 2 && !final) return;\n this.p = this.p.subarray(2), this.v = 0;\n }\n\n if (final) {\n if (this.p.length < 4) throw 'invalid zlib stream';\n this.p = this.p.subarray(0, -4);\n } // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n\n\n Inflate.prototype.c.call(this, final);\n };\n\n return Unzlib;\n}();\n\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\n\nvar AsyncUnzlib = /*#__PURE__*/function () {\n /**\n * Creates an asynchronous Zlib decompression stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncUnzlib(cb) {\n this.ondata = cb;\n astrmify([bInflt, zule, function () {\n return [astrm, Inflate, Unzlib];\n }], this, 0, function () {\n var strm = new Unzlib();\n onmessage = astrm(strm);\n }, 11);\n }\n\n return AsyncUnzlib;\n}();\n\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return cbify(data, opts, [bInflt, zule, function () {\n return [unzlibSync];\n }], function (ev) {\n return pbf(unzlibSync(ev.data[0], gu8(ev.data[1])));\n }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\n\nexport function unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n} // Default algorithm for compression (used because having a known output size allows faster decompression)\n\nexport { gzip as compress, AsyncGzip as AsyncCompress }; // Default algorithm for compression (used because having a known output size allows faster decompression)\n\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\n\nvar Decompress = /*#__PURE__*/function () {\n /**\n * Creates a decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function Decompress(cb) {\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n\n\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata) throw 'no stream handler';\n\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n } else this.p = chunk;\n\n if (this.p.length > 2) {\n var _this_1 = this;\n\n var cb = function cb() {\n _this_1.ondata.apply(_this_1, arguments);\n };\n\n this.s = this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8 ? new this.G(cb) : (this.p[0] & 15) != 8 || this.p[0] >> 4 > 7 || (this.p[0] << 8 | this.p[1]) % 31 ? new this.I(cb) : new this.Z(cb);\n this.s.push(this.p, final);\n this.p = null;\n }\n } else this.s.push(chunk, final);\n };\n\n return Decompress;\n}();\n\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\n\nvar AsyncDecompress = /*#__PURE__*/function () {\n /**\n * Creates an asynchronous decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function AsyncDecompress(cb) {\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n\n\n AsyncDecompress.prototype.push = function (chunk, final) {\n Decompress.prototype.push.call(this, chunk, final);\n };\n\n return AsyncDecompress;\n}();\n\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return data[0] == 31 && data[1] == 139 && data[2] == 8 ? gunzip(data, opts, cb) : (data[0] & 15) != 8 || data[0] >> 4 > 7 || (data[0] << 8 | data[1]) % 31 ? inflate(data, opts, cb) : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\n\nexport function decompressSync(data, out) {\n return data[0] == 31 && data[1] == 139 && data[2] == 8 ? gunzipSync(data, out) : (data[0] & 15) != 8 || data[0] >> 4 > 7 || (data[0] << 8 | data[1]) % 31 ? inflateSync(data, out) : unzlibSync(data, out);\n} // flatten a directory structure\n\nvar fltn = function fltn(d, p, t, o) {\n for (var k in d) {\n var val = d[k],\n n = p + k;\n if (val instanceof u8) t[n] = [val, o];else if (Array.isArray(val)) t[n] = [val[0], mrg(o, val[1])];else fltn(val, n + '/', t, o);\n }\n};\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\n\n\nexport function strToU8(str, latin1) {\n var l = str.length;\n if (!latin1 && typeof TextEncoder != 'undefined') return new TextEncoder().encode(str);\n var ar = new u8(str.length + (str.length >>> 1));\n var ai = 0;\n\n var w = function w(v) {\n ar[ai++] = v;\n };\n\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + (l - i << 1));\n n.set(ar);\n ar = n;\n }\n\n var c = str.charCodeAt(i);\n if (c < 128 || latin1) w(c);else if (c < 2048) w(192 | c >>> 6), w(128 | c & 63);else if (c > 55295 && c < 57344) c = 65536 + (c & 1023 << 10) | str.charCodeAt(++i) & 1023, w(240 | c >>> 18), w(128 | c >>> 12 & 63), w(128 | c >>> 6 & 63), w(128 | c & 63);else w(224 | c >>> 12), w(128 | c >>> 6 & 63), w(128 | c & 63);\n }\n\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\n\nexport function strFromU8(dat, latin1) {\n var r = '';\n if (!latin1 && typeof TextDecoder != 'undefined') return new TextDecoder().decode(dat);\n\n for (var i = 0; i < dat.length;) {\n var c = dat[i++];\n if (c < 128 || latin1) r += String.fromCharCode(c);else if (c < 224) r += String.fromCharCode((c & 31) << 6 | dat[i++] & 63);else if (c < 240) r += String.fromCharCode((c & 15) << 12 | (dat[i++] & 63) << 6 | dat[i++] & 63);else c = ((c & 15) << 18 | (dat[i++] & 63) << 12 | (dat[i++] & 63) << 6 | dat[i++] & 63) - 65536, r += String.fromCharCode(55296 | c >> 10, 56320 | c & 1023);\n }\n\n return r;\n}\n; // skip local zip header\n\nvar slzh = function slzh(d, b) {\n return b + 30 + b2(d, b + 26) + b2(d, b + 28);\n}; // read zip header\n\n\nvar zh = function zh(d, b, z) {\n var fnl = b2(d, b + 28),\n fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)),\n es = b + 46 + fnl;\n\n var _a = z ? z64e(d, es) : [b4(d, b + 20), b4(d, b + 24), b4(d, b + 42)],\n sc = _a[0],\n su = _a[1],\n off = _a[2];\n\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n}; // read zip64 extra field\n\n\nvar z64e = function z64e(d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2)) {\n ;\n }\n\n return [b4(d, b + 12), b4(d, b + 4), b4(d, b + 20)];\n}; // write zip header\n\n\nvar wzh = function wzh(d, b, c, cmp, su, fn, u, o, ce, t) {\n var fl = fn.length,\n l = cmp.length;\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null) d[b] = 20, b += 2;\n d[b] = 20, b += 2; // spec compliance? what's that?\n\n d[b++] = t == 8 && (o.level == 1 ? 6 : o.level < 6 ? 4 : o.level == 9 ? 2 : 0), d[b++] = u && 8;\n d[b] = t, b += 2;\n var dt = new Date(o.mtime || Date.now()),\n y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119) throw 'date not in range 1980-2099';\n wbytes(d, b, (y << 24) * 2 | dt.getMonth() + 1 << 21 | dt.getDate() << 16 | dt.getHours() << 11 | dt.getMinutes() << 5 | dt.getSeconds() >>> 1);\n b += 4;\n wbytes(d, b, c);\n wbytes(d, b + 4, l);\n wbytes(d, b + 8, su);\n wbytes(d, b + 12, fl), b += 16; // skip extra field, comment\n\n if (ce != null) wbytes(d, b += 10, ce), b += 4;\n d.set(fn, b);\n b += fl;\n if (ce == null) d.set(cmp, b);\n}; // write zip footer (end of central directory)\n\n\nvar wzf = function wzf(o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n\nexport function zip(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length,\n o = 0,\n tot = 0;\n var slft = lft,\n files = new Array(lft);\n var term = [];\n\n var tAll = function tAll() {\n for (var i = 0; i < term.length; ++i) {\n term[i]();\n }\n };\n\n var cbf = function cbf() {\n var out = new u8(tot + 22),\n oe = o,\n cdl = tot - o;\n tot = 0;\n\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n\n try {\n wzh(out, tot, f.c, f.d, f.m, f.n, f.u, f.p, null, f.t);\n wzh(out, o, f.c, f.d, f.m, f.n, f.u, f.p, tot, f.t), o += 46 + f.n.length, tot += 30 + f.n.length + f.d.length;\n } catch (e) {\n return cb(e, null);\n }\n }\n\n wzf(out, o, files.length, cdl, oe);\n cb(null, out);\n };\n\n if (!lft) cbf();\n\n var _loop_1 = function _loop_1(i) {\n var fn = k[i];\n var _a = r[fn],\n file = _a[0],\n p = _a[1];\n var c = crc(),\n m = file.length;\n c.p(file);\n var n = strToU8(fn),\n s = n.length;\n var t = p.level == 0 ? 0 : 8;\n\n var cbl = function cbl(e, d) {\n if (e) {\n tAll();\n cb(e, null);\n } else {\n var l = d.length;\n files[i] = {\n t: t,\n d: d,\n m: m,\n c: c.d(),\n u: fn.length != l,\n n: n,\n p: p\n };\n o += 30 + s + l;\n tot += 76 + 2 * s + l;\n if (! --lft) cbf();\n }\n };\n\n if (n.length > 65535) cbl('filename too long', null);\n if (!t) cbl(null, file);else if (m < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n } catch (e) {\n cbl(e, null);\n }\n } else term.push(deflate(file, p, cbl));\n }; // Cannot use lft because it can decrease\n\n\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\n\nexport function zipSync(data, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n\n for (var fn in r) {\n var _a = r[fn],\n file = _a[0],\n p = _a[1];\n var t = p.level == 0 ? 0 : 8;\n var n = strToU8(fn),\n s = n.length;\n if (n.length > 65535) throw 'filename too long';\n var d = t ? deflateSync(file, p) : file,\n l = d.length;\n var c = crc();\n c.p(file);\n files.push({\n t: t,\n d: d,\n m: file.length,\n c: c.d(),\n u: fn.length != s,\n n: n,\n o: o,\n p: p\n });\n o += 30 + s + l;\n tot += 76 + 2 * s + l;\n }\n\n var out = new u8(tot + 22),\n oe = o,\n cdl = tot - o;\n\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f.c, f.d, f.m, f.n, f.u, f.p, null, f.t);\n wzh(out, o, f.c, f.d, f.m, f.n, f.u, f.p, f.o, f.t), o += 46 + f.n.length;\n }\n\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Asynchronously decompresses a ZIP archive\n * @param data The raw compressed ZIP file\n * @param cb The callback to call with the decompressed files\n * @returns A function that can be used to immediately terminate the unzipping\n */\n\nexport function unzip(data, cb) {\n if (typeof cb != 'function') throw 'no callback';\n var term = [];\n\n var tAll = function tAll() {\n for (var i = 0; i < term.length; ++i) {\n term[i]();\n }\n };\n\n var files = {};\n var e = data.length - 22;\n\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cb('invalid zip file', null);\n return;\n }\n }\n\n ;\n var lft = b2(data, e + 8);\n if (!lft) cb(null, {});\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50) throw 'invalid zip file';\n c = lft = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n\n var _loop_2 = function _loop_2(i) {\n var _a = zh(data, o, z),\n c_1 = _a[0],\n sc = _a[1],\n su = _a[2],\n fn = _a[3],\n no = _a[4],\n off = _a[5],\n b = slzh(data, off);\n\n o = no;\n\n var cbl = function cbl(e, d) {\n if (e) {\n tAll();\n cb(e, null);\n } else {\n files[fn] = d;\n if (! --lft) cb(null, files);\n }\n };\n\n if (!c_1) cbl(null, slc(data, b, b + sc));else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n\n if (sc < 320000) {\n try {\n cbl(null, inflateSync(infl, new u8(su)));\n } catch (e) {\n cbl(e, null);\n }\n } else term.push(inflate(infl, {\n size: su\n }, cbl));\n } else cbl('unknown compression type ' + c_1, null);\n };\n\n for (var i = 0; i < c; ++i) {\n _loop_2(i);\n }\n\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @returns The decompressed files\n */\n\nexport function unzipSync(data) {\n var files = {};\n var e = data.length - 22;\n\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) throw 'invalid zip file';\n }\n\n ;\n var c = b2(data, e + 8);\n if (!c) return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50) throw 'invalid zip file';\n c = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z),\n c_2 = _a[0],\n sc = _a[1],\n su = _a[2],\n fn = _a[3],\n no = _a[4],\n off = _a[5],\n b = slzh(data, off);\n\n o = no;\n if (!c_2) files[fn] = slc(data, b, b + sc);else if (c_2 == 8) files[fn] = inflateSync(data.subarray(b, b + sc), new u8(su));else throw 'unknown compression type ' + c_2;\n }\n\n return files;\n}","'use strict';\n\nvar $ = require('../internals/export');\n\nvar global = require('../internals/global');\n\nvar isForced = require('../internals/is-forced');\n\nvar redefine = require('../internals/redefine');\n\nvar InternalMetadataModule = require('../internals/internal-metadata');\n\nvar iterate = require('../internals/iterate');\n\nvar anInstance = require('../internals/an-instance');\n\nvar isObject = require('../internals/is-object');\n\nvar fails = require('../internals/fails');\n\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar setToStringTag = require('../internals/set-to-string-tag');\n\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 fixMethod(KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY, KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n });\n }; // eslint-disable-next-line max-len\n\n\n if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n })))) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor(); // early implementations not supports chaining\n\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n\n var THROWS_ON_PRIMITIVES = fails(function () {\n instance.has(1);\n }); // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new\n\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) {\n new NativeConstructor(iterable);\n }); // for early implementations -0 and +0 not the same\n\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\n while (index--) {\n $instance[ADDER](index, index);\n }\n\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], that, 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); // weak collections should not contains .clear method\n\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({\n global: true,\n forced: Constructor != NativeConstructor\n }, exported);\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n return Constructor;\n};","'use strict';\n\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Nashorn ~ JDK8 bug\n\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({\n 1: 2\n}, 1); // `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\n\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;","var shared = require('../internals/shared');\n\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function next() {\n return {\n done: !!called++\n };\n },\n 'return': function _return() {\n SAFE_CLOSING = true;\n }\n };\n\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n }; // eslint-disable-next-line no-throw-literal\n\n\n Array.from(iteratorWithReturn, function () {\n throw 2;\n });\n} catch (error) {\n /* empty */\n}\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n\n try {\n var object = {};\n\n object[ITERATOR] = function () {\n return {\n next: function next() {\n return {\n done: ITERATION_SUPPORT = true\n };\n }\n };\n };\n\n exec(object);\n } catch (error) {\n /* empty */\n }\n\n return ITERATION_SUPPORT;\n};","var isObject = require('../internals/is-object');\n\nvar setPrototypeOf = require('../internals/object-set-prototype-of'); // makes subclassing work correct for wrapped built-ins\n\n\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if ( // it can work only with native `setPrototypeOf`\n setPrototypeOf && // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' && NewTarget !== Wrapper && isObject(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};","'use strict';\n\nvar charAt = require('../internals/string-multibyte').charAt;\n\nvar InternalStateModule = require('../internals/internal-state');\n\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); // `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\n\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n }); // `%StringIteratorPrototype%.next` method\n // https://tc39.github.io/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 {\n value: undefined,\n done: true\n };\n point = charAt(string, index);\n state.index += point.length;\n return {\n value: point,\n done: false\n };\n});","var toInteger = require('../internals/to-integer');\n\nvar requireObjectCoercible = require('../internals/require-object-coercible'); // `String.prototype.{ codePointAt, at }` methods implementation\n\n\nvar createMethod = function createMethod(CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF ? CONVERT_TO_STRING ? S.charAt(position) : first : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/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};","var anObject = require('../internals/an-object');\n\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n }\n\n return anObject(iteratorMethod.call(it));\n};","'use strict';\n\nvar toIndexedObject = require('../internals/to-indexed-object');\n\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar Iterators = require('../internals/iterators');\n\nvar InternalStateModule = require('../internals/internal-state');\n\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); // `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\n\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated),\n // target\n index: 0,\n // next index\n kind: kind // kind\n\n }); // `%ArrayIteratorPrototype%.next` method\n // https://tc39.github.io/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\n if (!target || index >= target.length) {\n state.target = undefined;\n return {\n value: undefined,\n done: true\n };\n }\n\n if (kind == 'keys') return {\n value: index,\n done: false\n };\n if (kind == 'values') return {\n value: target[index],\n done: false\n };\n return {\n value: [index, target[index]],\n done: false\n };\n}, 'values'); // argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\n\nIterators.Arguments = Iterators.Array; // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');","var aFunction = require('../internals/a-function');\n\nvar toObject = require('../internals/to-object');\n\nvar IndexedObject = require('../internals/indexed-object');\n\nvar toLength = require('../internals/to-length'); // `Array.prototype.{ reduce, reduceRight }` methods implementation\n\n\nvar createMethod = function createMethod(IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n\n index += i;\n\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n\n for (; IS_RIGHT ? index >= 0 : length > index; index += i) {\n if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n }\n\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};","var nativeExpm1 = Math.expm1;\nvar exp = Math.exp; // `Math.expm1` method implementation\n// https://tc39.github.io/ecma262/#sec-math.expm1\n\nmodule.exports = !nativeExpm1 // Old FF bug\n|| nativeExpm1(10) > 22025.465794806719 || nativeExpm1(10) < 22025.4657948067165168 // Tor Browser bug\n|| nativeExpm1(-2e-17) != -2e-17 ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : exp(x) - 1;\n} : nativeExpm1;","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = \"\\t\\n\\x0B\\f\\r \\xA0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF\";","'use strict';\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar global = require('../internals/global');\n\nvar fails = require('../internals/fails'); // Forced replacement object prototype accessors methods\n\n\nmodule.exports = IS_PURE || !fails(function () {\n var key = Math.random(); // In FF throws only define methods\n // eslint-disable-next-line no-undef, no-useless-call\n\n __defineSetter__.call(null, key, function () {\n /* empty */\n });\n\n delete global[key];\n});","'use strict';\n\nvar anObject = require('../internals/an-object'); // `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\n\n\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};","'use strict';\n\nvar regexpFlags = require('./regexp-flags');\n\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec; // This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\n\nvar nativeReplace = String.prototype.replace;\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n}();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET; // nonparticipating capturing group, copied from es5-shim's String#split patch.\n\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex); // Support anchored sticky behavior.\n\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n } // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n\n\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;","'use strict'; // TODO: Remove from `core-js@4` since it's moved to entry points\n\nrequire('../modules/es.regexp.exec');\n\nvar redefine = require('../internals/redefine');\n\nvar fails = require('../internals/fails');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar regexpExec = require('../internals/regexp-exec');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n\n re.exec = function () {\n var result = [];\n result.groups = {\n a: '7'\n };\n return result;\n };\n\n return ''.replace(re, '$') !== '7';\n}); // IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\n\nvar REPLACE_KEEPS_$0 = function () {\n return 'a'.replace(/./, '$0') === '$0';\n}();\n\nvar REPLACE = wellKnownSymbol('replace'); // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\n\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n\n return false;\n}(); // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\n\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n var re = /(?:)/;\n var originalExec = re.exec;\n\n re.exec = function () {\n return originalExec.apply(this, arguments);\n };\n\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n\n O[SYMBOL] = function () {\n return 7;\n };\n\n return ''[KEY](O) != 7;\n });\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {}; // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n\n re.constructor = {};\n\n re.constructor[SPECIES] = function () {\n return re;\n };\n\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () {\n execCalled = true;\n return null;\n };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (!DELEGATES_TO_SYMBOL || !DELEGATES_TO_EXEC || KEY === 'replace' && !(REPLACE_SUPPORTS_NAMED_GROUPS && REPLACE_KEEPS_$0 && !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE) || KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return {\n done: true,\n value: nativeRegExpMethod.call(regexp, str, arg2)\n };\n }\n\n return {\n done: true,\n value: nativeMethod.call(str, regexp, arg2)\n };\n }\n\n return {\n done: false\n };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2 // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) {\n return regexMethod.call(string, this, arg);\n } // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) {\n return regexMethod.call(string, this);\n });\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};","var classof = require('./classof-raw');\n\nvar regexpExec = require('./regexp-exec'); // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\n\n\nmodule.exports = function (R, S) {\n var exec = R.exec;\n\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};","/**\n * Lo-Dash 2.3.0 (Custom Build) \n * Build: `lodash modularize modern exports=\"npm\" -o ./npm/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar objectTypes = require('lodash._objecttypes');\n/**\n * Checks if `value` is the language type of Object.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\n\n\nfunction isObject(value) {\n // check if the value is the ECMAScript language type of Object\n // http://es5.github.io/#x8\n // and avoid a V8 bug\n // http://code.google.com/p/v8/issues/detail?id=2291\n return !!(value && objectTypes[typeof value]);\n}\n\nmodule.exports = isObject;","/**\n * @module color-space/hsl\n */\n'use strict';\n\nvar rgb = require('./rgb');\n\nmodule.exports = {\n name: 'hsl',\n min: [0, 0, 0],\n max: [360, 100, 100],\n channel: ['hue', 'saturation', 'lightness'],\n alias: ['HSL'],\n rgb: function rgb(hsl) {\n var h = hsl[0] / 360,\n s = hsl[1] / 100,\n l = hsl[2] / 100,\n t1,\n t2,\n t3,\n rgb,\n val;\n\n if (s === 0) {\n val = l * 255;\n return [val, val, val];\n }\n\n if (l < 0.5) {\n t2 = l * (1 + s);\n } else {\n t2 = l + s - l * s;\n }\n\n t1 = 2 * l - t2;\n rgb = [0, 0, 0];\n\n for (var i = 0; i < 3; i++) {\n t3 = h + 1 / 3 * -(i - 1);\n\n if (t3 < 0) {\n t3++;\n } else if (t3 > 1) {\n t3--;\n }\n\n if (6 * t3 < 1) {\n val = t1 + (t2 - t1) * 6 * t3;\n } else if (2 * t3 < 1) {\n val = t2;\n } else if (3 * t3 < 2) {\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n } else {\n val = t1;\n }\n\n rgb[i] = val * 255;\n }\n\n return rgb;\n }\n}; //extend rgb\n\nrgb.hsl = function (rgb) {\n var r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n delta = max - min,\n h,\n s,\n l;\n\n if (max === min) {\n h = 0;\n } else if (r === max) {\n h = (g - b) / delta;\n } else if (g === max) {\n h = 2 + (b - r) / delta;\n } else if (b === max) {\n h = 4 + (r - g) / delta;\n }\n\n h = Math.min(h * 60, 360);\n\n if (h < 0) {\n h += 360;\n }\n\n l = (min + max) / 2;\n\n if (max === min) {\n s = 0;\n } else if (l <= 0.5) {\n s = delta / (max + min);\n } else {\n s = delta / (2 - max - min);\n }\n\n return [h, s * 100, l * 100];\n};","/**\n * https://en.wikipedia.org/?title=YPbPr\n *\n * YPbPr is analog form of YCbCr\n * hence limits are [0..1]\n *\n * Default conversion is ITU-R BT.709\n *\n * @module color-space/ypbpr\n */\n'use strict';\n\nvar rgb = require('./rgb');\n\nvar ypbpr = module.exports = {\n name: 'ypbpr',\n min: [0, -0.5, -0.5],\n max: [1, 0.5, 0.5],\n channel: ['Y', 'Pb', 'Pr'],\n alias: ['YPbPr', 'Y/PB/PR', 'YPRPB', 'PRPBY', 'PBPRY', 'Y/Pb/Pr', 'YPrPb', 'PrPbY', 'PbPrY', 'Y/R-Y/B-Y', 'Y(R-Y)(B-Y)', 'R-Y', 'B-Y']\n};\n/**\n * YPbPr to RGB\n *\n * @param {Array} ypbpr RGB values\n *\n * @return {Array} YPbPr values\n */\n\nypbpr.rgb = function (ypbpr, kb, kr) {\n var y = ypbpr[0],\n pb = ypbpr[1],\n pr = ypbpr[2]; //default conversion is ITU-R BT.709\n\n kb = kb || 0.0722;\n kr = kr || 0.2126;\n var r = y + 2 * pr * (1 - kr);\n var b = y + 2 * pb * (1 - kb);\n var g = (y - kr * r - kb * b) / (1 - kr - kb);\n return [r * 255, g * 255, b * 255];\n};\n/**\n * RGB to YPbPr\n *\n * @param {Array} ypbpr YPbPr values\n *\n * @return {Array} RGB values\n */\n\n\nrgb.ypbpr = function (rgb, kb, kr) {\n var r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255; //ITU-R BT.709\n\n kb = kb || 0.0722;\n kr = kr || 0.2126;\n var y = kr * r + (1 - kr - kb) * g + kb * b;\n var pb = 0.5 * (b - y) / (1 - kb);\n var pr = 0.5 * (r - y) / (1 - kr);\n return [y, pb, pr];\n};","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n\n\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n} // Add methods to `ListCache`.\n\n\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\nmodule.exports = ListCache;","var eq = require('./eq');\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n\n\nfunction assocIndexOf(array, key) {\n var length = array.length;\n\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n\n return -1;\n}\n\nmodule.exports = assocIndexOf;","var getNative = require('./_getNative');\n/* Built-in method references that are verified to be native. */\n\n\nvar nativeCreate = getNative(Object, 'create');\nmodule.exports = nativeCreate;","var isKeyable = require('./_isKeyable');\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n\n\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;\n}\n\nmodule.exports = getMapData;","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n/** `Object#toString` result references. */\n\n\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\nvar dataViewTag = '[object DataView]';\n/** Used to detect maps, sets, and weakmaps. */\n\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n\nvar getTag = baseGetTag; // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n\nif (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map && getTag(new Map()) != mapTag || Promise && getTag(Promise.resolve()) != promiseTag || Set && getTag(new Set()) != setTag || WeakMap && getTag(new WeakMap()) != weakMapTag) {\n getTag = function getTag(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString:\n return dataViewTag;\n\n case mapCtorString:\n return mapTag;\n\n case promiseCtorString:\n return promiseTag;\n\n case setCtorString:\n return setTag;\n\n case weakMapCtorString:\n return weakMapTag;\n }\n }\n\n return result;\n };\n}\n\nmodule.exports = getTag;","var isSymbol = require('./isSymbol');\n/** Used as references for various `Number` constants. */\n\n\nvar INFINITY = 1 / 0;\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n}\n\nmodule.exports = toKey;","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n\n\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n\n return object;\n}\n\nmodule.exports = copyObject;","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n} // Add methods to `ListCache`.\n\n\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\nmodule.exports = ListCache;","var eq = require('./eq');\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n\n\nfunction assocIndexOf(array, key) {\n var length = array.length;\n\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n\n return -1;\n}\n\nmodule.exports = assocIndexOf;","var root = require('./_root');\n/** Built-in value references. */\n\n\nvar Symbol = root.Symbol;\nmodule.exports = Symbol;","var getNative = require('./_getNative');\n/* Built-in method references that are verified to be native. */\n\n\nvar nativeCreate = getNative(Object, 'create');\nmodule.exports = nativeCreate;","var isKeyable = require('./_isKeyable');\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n\n\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;\n}\n\nmodule.exports = getMapData;","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar symbolTag = '[object Symbol]';\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n\nfunction isSymbol(value) {\n return typeof value == 'symbol' || isObjectLike(value) && baseGetTag(value) == symbolTag;\n}\n\nmodule.exports = isSymbol;","var isSymbol = require('./isSymbol');\n/** Used as references for various `Number` constants. */\n\n\nvar INFINITY = 1 / 0;\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n}\n\nmodule.exports = toKey;","/*\n * JavaScript Load Image Meta\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Image meta data handling implementation\n * based on the help and contribution of\n * Achim Stöhr.\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require, DataView, Uint8Array */\n;\n\n(function (factory) {\n 'use strict';\n\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image'], factory);\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'));\n } else {\n // Browser globals:\n factory(window.loadImage);\n }\n})(function (loadImage) {\n 'use strict';\n\n var hasblobSlice = typeof Blob !== 'undefined' && (Blob.prototype.slice || Blob.prototype.webkitSlice || Blob.prototype.mozSlice);\n\n loadImage.blobSlice = hasblobSlice && function () {\n var slice = this.slice || this.webkitSlice || this.mozSlice;\n return slice.apply(this, arguments);\n };\n\n loadImage.metaDataParsers = {\n jpeg: {\n 0xffe1: [],\n // APP1 marker\n 0xffed: [] // APP13 marker\n\n }\n }; // Parses image meta data and calls the callback with an object argument\n // with the following properties:\n // * imageHead: The complete image head as ArrayBuffer (Uint8Array for IE10)\n // The options argument accepts an object and supports the following\n // properties:\n // * maxMetaDataSize: Defines the maximum number of bytes to parse.\n // * disableImageHead: Disables creating the imageHead property.\n\n loadImage.parseMetaData = function (file, callback, options, data) {\n // eslint-disable-next-line no-param-reassign\n options = options || {}; // eslint-disable-next-line no-param-reassign\n\n data = data || {};\n var that = this; // 256 KiB should contain all EXIF/ICC/IPTC segments:\n\n var maxMetaDataSize = options.maxMetaDataSize || 262144;\n var noMetaData = !(typeof DataView !== 'undefined' && file && file.size >= 12 && file.type === 'image/jpeg' && loadImage.blobSlice);\n\n if (noMetaData || !loadImage.readFile(loadImage.blobSlice.call(file, 0, maxMetaDataSize), function (e) {\n if (e.target.error) {\n // FileReader error\n // eslint-disable-next-line no-console\n console.log(e.target.error);\n callback(data);\n return;\n } // Note on endianness:\n // Since the marker and length bytes in JPEG files are always\n // stored in big endian order, we can leave the endian parameter\n // of the DataView methods undefined, defaulting to big endian.\n\n\n var buffer = e.target.result;\n var dataView = new DataView(buffer);\n var offset = 2;\n var maxOffset = dataView.byteLength - 4;\n var headLength = offset;\n var markerBytes;\n var markerLength;\n var parsers;\n var i; // Check for the JPEG marker (0xffd8):\n\n if (dataView.getUint16(0) === 0xffd8) {\n while (offset < maxOffset) {\n markerBytes = dataView.getUint16(offset); // Search for APPn (0xffeN) and COM (0xfffe) markers,\n // which contain application-specific meta-data like\n // Exif, ICC and IPTC data and text comments:\n\n if (markerBytes >= 0xffe0 && markerBytes <= 0xffef || markerBytes === 0xfffe) {\n // The marker bytes (2) are always followed by\n // the length bytes (2), indicating the length of the\n // marker segment, which includes the length bytes,\n // but not the marker bytes, so we add 2:\n markerLength = dataView.getUint16(offset + 2) + 2;\n\n if (offset + markerLength > dataView.byteLength) {\n // eslint-disable-next-line no-console\n console.log('Invalid meta data: Invalid segment size.');\n break;\n }\n\n parsers = loadImage.metaDataParsers.jpeg[markerBytes];\n\n if (parsers && !options.disableMetaDataParsers) {\n for (i = 0; i < parsers.length; i += 1) {\n parsers[i].call(that, dataView, offset, markerLength, data, options);\n }\n }\n\n offset += markerLength;\n headLength = offset;\n } else {\n // Not an APPn or COM marker, probably safe to\n // assume that this is the end of the meta data\n break;\n }\n } // Meta length must be longer than JPEG marker (2)\n // plus APPn marker (2), followed by length bytes (2):\n\n\n if (!options.disableImageHead && headLength > 6) {\n if (buffer.slice) {\n data.imageHead = buffer.slice(0, headLength);\n } else {\n // Workaround for IE10, which does not yet\n // support ArrayBuffer.slice:\n data.imageHead = new Uint8Array(buffer).subarray(0, headLength);\n }\n }\n } else {\n // eslint-disable-next-line no-console\n console.log('Invalid JPEG file: Missing JPEG marker.');\n }\n\n callback(data);\n }, 'readAsArrayBuffer')) {\n callback(data);\n }\n }; // Replaces the image head of a JPEG blob with the given one.\n // Calls the callback with the new Blob:\n\n\n loadImage.replaceHead = function (blob, head, callback) {\n loadImage.parseMetaData(blob, function (data) {\n callback(new Blob([head, loadImage.blobSlice.call(blob, data.imageHead.byteLength)], {\n type: 'image/jpeg'\n }));\n }, {\n maxMetaDataSize: 256,\n disableMetaDataParsers: true\n });\n };\n\n var originalTransform = loadImage.transform;\n\n loadImage.transform = function (img, options, callback, file, data) {\n if (loadImage.hasMetaOption(options)) {\n loadImage.parseMetaData(file, function (data) {\n originalTransform.call(loadImage, img, options, callback, file, data);\n }, options, data);\n } else {\n originalTransform.apply(loadImage, arguments);\n }\n };\n});","'use strict';\n\nvar util = require('./util');\n\nvar buildOptions = require('./util').buildOptions;\n\nvar xmlNode = require('./xmlNode');\n\nvar regx = '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'.replace(/NAME/g, util.nameRegexp); //const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n//polyfill\n\nif (!Number.parseInt && window.parseInt) {\n Number.parseInt = window.parseInt;\n}\n\nif (!Number.parseFloat && window.parseFloat) {\n Number.parseFloat = window.parseFloat;\n}\n\nvar defaultOptions = {\n attributeNamePrefix: '@_',\n attrNodeName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n ignoreNameSpace: false,\n allowBooleanAttributes: false,\n //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseNodeValue: true,\n parseAttributeValue: false,\n arrayMode: false,\n trimValues: true,\n //Trim string values of tag and attributes\n cdataTagName: false,\n cdataPositionChar: '\\\\c',\n tagValueProcessor: function tagValueProcessor(a, tagName) {\n return a;\n },\n attrValueProcessor: function attrValueProcessor(a, attrName) {\n return a;\n },\n stopNodes: [] //decodeStrict: false,\n\n};\nexports.defaultOptions = defaultOptions;\nvar props = ['attributeNamePrefix', 'attrNodeName', 'textNodeName', 'ignoreAttributes', 'ignoreNameSpace', 'allowBooleanAttributes', 'parseNodeValue', 'parseAttributeValue', 'arrayMode', 'trimValues', 'cdataTagName', 'cdataPositionChar', 'tagValueProcessor', 'attrValueProcessor', 'parseTrueNumberOnly', 'stopNodes'];\nexports.props = props;\n/**\n * Trim -> valueProcessor -> parse value\n * @param {string} tagName\n * @param {string} val\n * @param {object} options\n */\n\nfunction processTagValue(tagName, val, options) {\n if (val) {\n if (options.trimValues) {\n val = val.trim();\n }\n\n val = options.tagValueProcessor(val, tagName);\n val = parseValue(val, options.parseNodeValue, options.parseTrueNumberOnly);\n }\n\n return val;\n}\n\nfunction resolveNameSpace(tagname, options) {\n if (options.ignoreNameSpace) {\n var tags = tagname.split(':');\n var prefix = tagname.charAt(0) === '/' ? '/' : '';\n\n if (tags[0] === 'xmlns') {\n return '';\n }\n\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n\n return tagname;\n}\n\nfunction parseValue(val, shouldParse, parseTrueNumberOnly) {\n if (shouldParse && typeof val === 'string') {\n var parsed;\n\n if (val.trim() === '' || isNaN(val)) {\n parsed = val === 'true' ? true : val === 'false' ? false : val;\n } else {\n if (val.indexOf('0x') !== -1) {\n //support hexa decimal\n parsed = Number.parseInt(val, 16);\n } else if (val.indexOf('.') !== -1) {\n parsed = Number.parseFloat(val);\n val = val.replace(/\\.?0+$/, \"\");\n } else {\n parsed = Number.parseInt(val, 10);\n }\n\n if (parseTrueNumberOnly) {\n parsed = String(parsed) === val ? parsed : val;\n }\n }\n\n return parsed;\n } else {\n if (util.isExist(val)) {\n return val;\n } else {\n return '';\n }\n }\n} //TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\n\n\nvar attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])(.*?)\\\\3)?', 'g');\n\nfunction buildAttributesMap(attrStr, options) {\n if (!options.ignoreAttributes && typeof attrStr === 'string') {\n attrStr = attrStr.replace(/\\r?\\n/g, ' '); //attrStr = attrStr || attrStr.trim();\n\n var matches = util.getAllMatches(attrStr, attrsRegx);\n var len = matches.length; //don't make it inline\n\n var attrs = {};\n\n for (var i = 0; i < len; i++) {\n var attrName = resolveNameSpace(matches[i][1], options);\n\n if (attrName.length) {\n if (matches[i][4] !== undefined) {\n if (options.trimValues) {\n matches[i][4] = matches[i][4].trim();\n }\n\n matches[i][4] = options.attrValueProcessor(matches[i][4], attrName);\n attrs[options.attributeNamePrefix + attrName] = parseValue(matches[i][4], options.parseAttributeValue, options.parseTrueNumberOnly);\n } else if (options.allowBooleanAttributes) {\n attrs[options.attributeNamePrefix + attrName] = true;\n }\n }\n }\n\n if (!Object.keys(attrs).length) {\n return;\n }\n\n if (options.attrNodeName) {\n var attrCollection = {};\n attrCollection[options.attrNodeName] = attrs;\n return attrCollection;\n }\n\n return attrs;\n }\n}\n\nvar getTraversalObj = function getTraversalObj(xmlData, options) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\");\n options = buildOptions(options, defaultOptions, props);\n var xmlObj = new xmlNode('!xml');\n var currentNode = xmlObj;\n var textData = \"\"; //function match(xmlData){\n\n for (var i = 0; i < xmlData.length; i++) {\n var ch = xmlData[i];\n\n if (ch === '<') {\n if (xmlData[i + 1] === '/') {\n //Closing Tag\n var closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\");\n var tagName = xmlData.substring(i + 2, closeIndex).trim();\n\n if (options.ignoreNameSpace) {\n var colonIndex = tagName.indexOf(\":\");\n\n if (colonIndex !== -1) {\n tagName = tagName.substr(colonIndex + 1);\n }\n }\n /* if (currentNode.parent) {\n currentNode.parent.val = util.getValue(currentNode.parent.val) + '' + processTagValue2(tagName, textData , options);\n } */\n\n\n if (currentNode) {\n if (currentNode.val) {\n currentNode.val = util.getValue(currentNode.val) + '' + processTagValue(tagName, textData, options);\n } else {\n currentNode.val = processTagValue(tagName, textData, options);\n }\n }\n\n if (options.stopNodes.length && options.stopNodes.includes(currentNode.tagname)) {\n currentNode.child = [];\n\n if (currentNode.attrsMap == undefined) {\n currentNode.attrsMap = {};\n }\n\n currentNode.val = xmlData.substr(currentNode.startIndex + 1, i - currentNode.startIndex - 1);\n }\n\n currentNode = currentNode.parent;\n textData = \"\";\n i = closeIndex;\n } else if (xmlData[i + 1] === '?') {\n i = findClosingIndex(xmlData, \"?>\", i, \"Pi Tag is not closed.\");\n } else if (xmlData.substr(i + 1, 3) === '!--') {\n i = findClosingIndex(xmlData, \"-->\", i, \"Comment is not closed.\");\n } else if (xmlData.substr(i + 1, 2) === '!D') {\n var _closeIndex = findClosingIndex(xmlData, \">\", i, \"DOCTYPE is not closed.\");\n\n var tagExp = xmlData.substring(i, _closeIndex);\n\n if (tagExp.indexOf(\"[\") >= 0) {\n i = xmlData.indexOf(\"]>\", i) + 1;\n } else {\n i = _closeIndex;\n }\n } else if (xmlData.substr(i + 1, 2) === '![') {\n var _closeIndex2 = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n\n var _tagExp = xmlData.substring(i + 9, _closeIndex2); //considerations\n //1. CDATA will always have parent node\n //2. A tag with CDATA is not a leaf node so it's value would be string type.\n\n\n if (textData) {\n currentNode.val = util.getValue(currentNode.val) + '' + processTagValue(currentNode.tagname, textData, options);\n textData = \"\";\n }\n\n if (options.cdataTagName) {\n //add cdata node\n var childNode = new xmlNode(options.cdataTagName, currentNode, _tagExp);\n currentNode.addChild(childNode); //for backtracking\n\n currentNode.val = util.getValue(currentNode.val) + options.cdataPositionChar; //add rest value to parent node\n\n if (_tagExp) {\n childNode.val = _tagExp;\n }\n } else {\n currentNode.val = (currentNode.val || '') + (_tagExp || '');\n }\n\n i = _closeIndex2 + 2;\n } else {\n //Opening tag\n var result = closingIndexForOpeningTag(xmlData, i + 1);\n var _tagExp2 = result.data;\n var _closeIndex3 = result.index;\n\n var separatorIndex = _tagExp2.indexOf(\" \");\n\n var _tagName = _tagExp2;\n var shouldBuildAttributesMap = true;\n\n if (separatorIndex !== -1) {\n _tagName = _tagExp2.substr(0, separatorIndex).replace(/\\s\\s*$/, '');\n _tagExp2 = _tagExp2.substr(separatorIndex + 1);\n }\n\n if (options.ignoreNameSpace) {\n var _colonIndex = _tagName.indexOf(\":\");\n\n if (_colonIndex !== -1) {\n _tagName = _tagName.substr(_colonIndex + 1);\n shouldBuildAttributesMap = _tagName !== result.data.substr(_colonIndex + 1);\n }\n } //save text to parent node\n\n\n if (currentNode && textData) {\n if (currentNode.tagname !== '!xml') {\n currentNode.val = util.getValue(currentNode.val) + '' + processTagValue(currentNode.tagname, textData, options);\n }\n }\n\n if (_tagExp2.length > 0 && _tagExp2.lastIndexOf(\"/\") === _tagExp2.length - 1) {\n //selfClosing tag\n if (_tagName[_tagName.length - 1] === \"/\") {\n //remove trailing '/'\n _tagName = _tagName.substr(0, _tagName.length - 1);\n _tagExp2 = _tagName;\n } else {\n _tagExp2 = _tagExp2.substr(0, _tagExp2.length - 1);\n }\n\n var _childNode = new xmlNode(_tagName, currentNode, '');\n\n if (_tagName !== _tagExp2) {\n _childNode.attrsMap = buildAttributesMap(_tagExp2, options);\n }\n\n currentNode.addChild(_childNode);\n } else {\n //opening tag\n var _childNode2 = new xmlNode(_tagName, currentNode);\n\n if (options.stopNodes.length && options.stopNodes.includes(_childNode2.tagname)) {\n _childNode2.startIndex = _closeIndex3;\n }\n\n if (_tagName !== _tagExp2 && shouldBuildAttributesMap) {\n _childNode2.attrsMap = buildAttributesMap(_tagExp2, options);\n }\n\n currentNode.addChild(_childNode2);\n currentNode = _childNode2;\n }\n\n textData = \"\";\n i = _closeIndex3;\n }\n } else {\n textData += xmlData[i];\n }\n }\n\n return xmlObj;\n};\n\nfunction closingIndexForOpeningTag(data, i) {\n var attrBoundary;\n var tagExp = \"\";\n\n for (var index = i; index < data.length; index++) {\n var ch = data[index];\n\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\"; //reset\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === '>') {\n return {\n data: tagExp,\n index: index\n };\n } else if (ch === '\\t') {\n ch = \" \";\n }\n\n tagExp += ch;\n }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg) {\n var closingIndex = xmlData.indexOf(str, i);\n\n if (closingIndex === -1) {\n throw new Error(errMsg);\n } else {\n return closingIndex + str.length - 1;\n }\n}\n\nexports.getTraversalObj = getTraversalObj;",";\n\n(function (root, factory) {\n if (typeof exports === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function (undefined) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var X32WordArray = C_lib.WordArray;\n /**\n * x64 namespace.\n */\n\n var C_x64 = C.x64 = {};\n /**\n * A 64-bit word.\n */\n\n var X64Word = C_x64.Word = Base.extend({\n /**\n * Initializes a newly created 64-bit word.\n *\n * @param {number} high The high 32 bits.\n * @param {number} low The low 32 bits.\n *\n * @example\n *\n * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n */\n init: function init(high, low) {\n this.high = high;\n this.low = low;\n }\n /**\n * Bitwise NOTs this word.\n *\n * @return {X64Word} A new x64-Word object after negating.\n *\n * @example\n *\n * var negated = x64Word.not();\n */\n // not: function () {\n // var high = ~this.high;\n // var low = ~this.low;\n // return X64Word.create(high, low);\n // },\n\n /**\n * Bitwise ANDs this word with the passed word.\n *\n * @param {X64Word} word The x64-Word to AND with this word.\n *\n * @return {X64Word} A new x64-Word object after ANDing.\n *\n * @example\n *\n * var anded = x64Word.and(anotherX64Word);\n */\n // and: function (word) {\n // var high = this.high & word.high;\n // var low = this.low & word.low;\n // return X64Word.create(high, low);\n // },\n\n /**\n * Bitwise ORs this word with the passed word.\n *\n * @param {X64Word} word The x64-Word to OR with this word.\n *\n * @return {X64Word} A new x64-Word object after ORing.\n *\n * @example\n *\n * var ored = x64Word.or(anotherX64Word);\n */\n // or: function (word) {\n // var high = this.high | word.high;\n // var low = this.low | word.low;\n // return X64Word.create(high, low);\n // },\n\n /**\n * Bitwise XORs this word with the passed word.\n *\n * @param {X64Word} word The x64-Word to XOR with this word.\n *\n * @return {X64Word} A new x64-Word object after XORing.\n *\n * @example\n *\n * var xored = x64Word.xor(anotherX64Word);\n */\n // xor: function (word) {\n // var high = this.high ^ word.high;\n // var low = this.low ^ word.low;\n // return X64Word.create(high, low);\n // },\n\n /**\n * Shifts this word n bits to the left.\n *\n * @param {number} n The number of bits to shift.\n *\n * @return {X64Word} A new x64-Word object after shifting.\n *\n * @example\n *\n * var shifted = x64Word.shiftL(25);\n */\n // shiftL: function (n) {\n // if (n < 32) {\n // var high = (this.high << n) | (this.low >>> (32 - n));\n // var low = this.low << n;\n // } else {\n // var high = this.low << (n - 32);\n // var low = 0;\n // }\n // return X64Word.create(high, low);\n // },\n\n /**\n * Shifts this word n bits to the right.\n *\n * @param {number} n The number of bits to shift.\n *\n * @return {X64Word} A new x64-Word object after shifting.\n *\n * @example\n *\n * var shifted = x64Word.shiftR(7);\n */\n // shiftR: function (n) {\n // if (n < 32) {\n // var low = (this.low >>> n) | (this.high << (32 - n));\n // var high = this.high >>> n;\n // } else {\n // var low = this.high >>> (n - 32);\n // var high = 0;\n // }\n // return X64Word.create(high, low);\n // },\n\n /**\n * Rotates this word n bits to the left.\n *\n * @param {number} n The number of bits to rotate.\n *\n * @return {X64Word} A new x64-Word object after rotating.\n *\n * @example\n *\n * var rotated = x64Word.rotL(25);\n */\n // rotL: function (n) {\n // return this.shiftL(n).or(this.shiftR(64 - n));\n // },\n\n /**\n * Rotates this word n bits to the right.\n *\n * @param {number} n The number of bits to rotate.\n *\n * @return {X64Word} A new x64-Word object after rotating.\n *\n * @example\n *\n * var rotated = x64Word.rotR(7);\n */\n // rotR: function (n) {\n // return this.shiftR(n).or(this.shiftL(64 - n));\n // },\n\n /**\n * Adds this word with the passed word.\n *\n * @param {X64Word} word The x64-Word to add with this word.\n *\n * @return {X64Word} A new x64-Word object after adding.\n *\n * @example\n *\n * var added = x64Word.add(anotherX64Word);\n */\n // add: function (word) {\n // var low = (this.low + word.low) | 0;\n // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n // var high = (this.high + word.high + carry) | 0;\n // return X64Word.create(high, low);\n // }\n\n });\n /**\n * An array of 64-bit words.\n *\n * @property {Array} words The array of CryptoJS.x64.Word objects.\n * @property {number} sigBytes The number of significant bytes in this word array.\n */\n\n var X64WordArray = C_x64.WordArray = Base.extend({\n /**\n * Initializes a newly created word array.\n *\n * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n *\n * @example\n *\n * var wordArray = CryptoJS.x64.WordArray.create();\n *\n * var wordArray = CryptoJS.x64.WordArray.create([\n * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n * ]);\n *\n * var wordArray = CryptoJS.x64.WordArray.create([\n * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n * ], 10);\n */\n init: function init(words, sigBytes) {\n words = this.words = words || [];\n\n if (sigBytes != undefined) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 8;\n }\n },\n\n /**\n * Converts this 64-bit word array to a 32-bit word array.\n *\n * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\n *\n * @example\n *\n * var x32WordArray = x64WordArray.toX32();\n */\n toX32: function toX32() {\n // Shortcuts\n var x64Words = this.words;\n var x64WordsLength = x64Words.length; // Convert\n\n var x32Words = [];\n\n for (var i = 0; i < x64WordsLength; i++) {\n var x64Word = x64Words[i];\n x32Words.push(x64Word.high);\n x32Words.push(x64Word.low);\n }\n\n return X32WordArray.create(x32Words, this.sigBytes);\n },\n\n /**\n * Creates a copy of this word array.\n *\n * @return {X64WordArray} The clone.\n *\n * @example\n *\n * var clone = x64WordArray.clone();\n */\n clone: function clone() {\n var clone = Base.clone.call(this); // Clone \"words\" array\n\n var words = clone.words = this.words.slice(0); // Clone each X64Word object\n\n var wordsLength = words.length;\n\n for (var i = 0; i < wordsLength; i++) {\n words[i] = words[i].clone();\n }\n\n return clone;\n }\n });\n })();\n\n return CryptoJS;\n});","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends, __rest } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Classes } from \"../../common\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\"; // eslint-disable-next-line import/no-cycle\n\nimport { Popover, PopoverInteractionKind } from \"../popover/popover\";\n\nvar Tooltip =\n/** @class */\nfunction (_super) {\n __extends(Tooltip, _super);\n\n function Tooltip() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.popover = null;\n return _this;\n }\n\n Tooltip.prototype.render = function () {\n var _this = this;\n\n var _a = this.props,\n children = _a.children,\n intent = _a.intent,\n popoverClassName = _a.popoverClassName,\n restProps = __rest(_a, [\"children\", \"intent\", \"popoverClassName\"]);\n\n var classes = classNames(Classes.TOOLTIP, Classes.intentClass(intent), popoverClassName);\n return React.createElement(Popover, __assign({\n interactionKind: PopoverInteractionKind.HOVER_TARGET_ONLY\n }, restProps, {\n autoFocus: false,\n canEscapeKeyClose: false,\n enforceFocus: false,\n lazy: true,\n popoverClassName: classes,\n portalContainer: this.props.portalContainer,\n ref: function ref(_ref) {\n return _this.popover = _ref;\n }\n }), children);\n };\n\n Tooltip.prototype.reposition = function () {\n if (this.popover != null) {\n this.popover.reposition();\n }\n };\n\n Tooltip.displayName = DISPLAYNAME_PREFIX + \".Tooltip\";\n Tooltip.defaultProps = {\n hoverCloseDelay: 0,\n hoverOpenDelay: 100,\n transitionDuration: 100\n };\n Tooltip = __decorate([polyfill], Tooltip);\n return Tooltip;\n}(AbstractPureComponent2);\n\nexport { Tooltip };","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { CSSTransition, TransitionGroup } from \"react-transition-group\";\nimport { findDOMNode } from \"react-dom\";\nimport { AbstractPureComponent2, Classes, Keys } from \"../../common\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { safeInvoke } from \"../../common/utils\";\nimport { Portal } from \"../portal/portal\";\n\nvar Overlay =\n/** @class */\nfunction (_super) {\n __extends(Overlay, _super);\n\n function Overlay(props, context) {\n var _this = _super.call(this, props, context) || this;\n\n _this.refHandlers = {\n container: function container(ref) {\n return _this.containerElement = findDOMNode(ref);\n }\n };\n\n _this.maybeRenderChild = function (child) {\n if (child == null) {\n return null;\n } // add a special class to each child element that will automatically set the appropriate\n // CSS position mode under the hood. also, make the container focusable so we can\n // trap focus inside it (via `enforceFocus`).\n\n\n var decoratedChild = typeof child === \"object\" ? React.cloneElement(child, {\n className: classNames(child.props.className, Classes.OVERLAY_CONTENT),\n tabIndex: 0\n }) : React.createElement(\"span\", {\n className: Classes.OVERLAY_CONTENT\n }, child);\n var _a = _this.props,\n onOpening = _a.onOpening,\n onOpened = _a.onOpened,\n onClosing = _a.onClosing,\n onClosed = _a.onClosed,\n transitionDuration = _a.transitionDuration,\n transitionName = _a.transitionName; // a breaking change in react-transition-group types requires us to be explicit about the type overload here,\n // using a technique similar to Select.ofType() in @blueprintjs/select\n\n var CSSTransitionImplicit = CSSTransition;\n return React.createElement(CSSTransitionImplicit, {\n classNames: transitionName,\n onEntering: onOpening,\n onEntered: onOpened,\n onExiting: onClosing,\n onExited: onClosed,\n timeout: transitionDuration\n }, decoratedChild);\n };\n\n _this.handleBackdropMouseDown = function (e) {\n var _a = _this.props,\n backdropProps = _a.backdropProps,\n canOutsideClickClose = _a.canOutsideClickClose,\n enforceFocus = _a.enforceFocus,\n onClose = _a.onClose;\n\n if (canOutsideClickClose) {\n safeInvoke(onClose, e);\n }\n\n if (enforceFocus) {\n // make sure document.activeElement is updated before bringing the focus back\n _this.bringFocusInsideOverlay();\n }\n\n safeInvoke(backdropProps.onMouseDown, e);\n };\n\n _this.handleDocumentClick = function (e) {\n var _a = _this.props,\n canOutsideClickClose = _a.canOutsideClickClose,\n isOpen = _a.isOpen,\n onClose = _a.onClose;\n var eventTarget = e.target;\n var stackIndex = Overlay_1.openStack.indexOf(_this);\n var isClickInThisOverlayOrDescendant = Overlay_1.openStack.slice(stackIndex).some(function (_a) {\n var elem = _a.containerElement; // `elem` is the container of backdrop & content, so clicking on that container\n // should not count as being \"inside\" the overlay.\n\n return elem && elem.contains(eventTarget) && !elem.isSameNode(eventTarget);\n });\n\n if (isOpen && canOutsideClickClose && !isClickInThisOverlayOrDescendant) {\n // casting to any because this is a native event\n safeInvoke(onClose, e);\n }\n };\n\n _this.handleDocumentFocus = function (e) {\n if (_this.props.enforceFocus && _this.containerElement != null && e.target instanceof Node && !_this.containerElement.contains(e.target)) {\n // prevent default focus behavior (sometimes auto-scrolls the page)\n e.preventDefault();\n e.stopImmediatePropagation();\n\n _this.bringFocusInsideOverlay();\n }\n };\n\n _this.handleKeyDown = function (e) {\n var _a = _this.props,\n canEscapeKeyClose = _a.canEscapeKeyClose,\n onClose = _a.onClose;\n\n if (e.which === Keys.ESCAPE && canEscapeKeyClose) {\n safeInvoke(onClose, e); // prevent browser-specific escape key behavior (Safari exits fullscreen)\n\n e.preventDefault();\n }\n };\n\n _this.state = {\n hasEverOpened: props.isOpen\n };\n return _this;\n }\n\n Overlay_1 = Overlay;\n\n Overlay.getDerivedStateFromProps = function (_a) {\n var hasEverOpened = _a.isOpen;\n\n if (hasEverOpened) {\n return {\n hasEverOpened: hasEverOpened\n };\n }\n\n return null;\n };\n\n Overlay.prototype.render = function () {\n var _a; // oh snap! no reason to render anything at all if we're being truly lazy\n\n\n if (this.props.lazy && !this.state.hasEverOpened) {\n return null;\n }\n\n var _b = this.props,\n children = _b.children,\n className = _b.className,\n usePortal = _b.usePortal,\n isOpen = _b.isOpen; // TransitionGroup types require single array of children; does not support nested arrays.\n // So we must collapse backdrop and children into one array, and every item must be wrapped in a\n // Transition element (no ReactText allowed).\n\n var childrenWithTransitions = isOpen ? React.Children.map(children, this.maybeRenderChild) : [];\n childrenWithTransitions.unshift(this.maybeRenderBackdrop());\n var containerClasses = classNames(Classes.OVERLAY, (_a = {}, _a[Classes.OVERLAY_OPEN] = isOpen, _a[Classes.OVERLAY_INLINE] = !usePortal, _a), className);\n var transitionGroup = React.createElement(TransitionGroup, {\n appear: true,\n className: containerClasses,\n component: \"div\",\n onKeyDown: this.handleKeyDown,\n ref: this.refHandlers.container\n }, childrenWithTransitions);\n\n if (usePortal) {\n return React.createElement(Portal, {\n className: this.props.portalClassName,\n container: this.props.portalContainer\n }, transitionGroup);\n } else {\n return transitionGroup;\n }\n };\n\n Overlay.prototype.componentDidMount = function () {\n if (this.props.isOpen) {\n this.overlayWillOpen();\n }\n };\n\n Overlay.prototype.componentDidUpdate = function (prevProps) {\n if (prevProps.isOpen && !this.props.isOpen) {\n this.overlayWillClose();\n } else if (!prevProps.isOpen && this.props.isOpen) {\n this.overlayWillOpen();\n }\n };\n\n Overlay.prototype.componentWillUnmount = function () {\n this.overlayWillClose();\n };\n /**\n * @public for testing\n * @internal\n */\n\n\n Overlay.prototype.bringFocusInsideOverlay = function () {\n var _this = this; // always delay focus manipulation to just before repaint to prevent scroll jumping\n\n\n return requestAnimationFrame(function () {\n // container ref may be undefined between component mounting and Portal rendering\n // activeElement may be undefined in some rare cases in IE\n if (_this.containerElement == null || document.activeElement == null || !_this.props.isOpen) {\n return;\n }\n\n var isFocusOutsideModal = !_this.containerElement.contains(document.activeElement);\n\n if (isFocusOutsideModal) {\n // element marked autofocus has higher priority than the other clowns\n var autofocusElement = _this.containerElement.querySelector(\"[autofocus]\");\n\n var wrapperElement = _this.containerElement.querySelector(\"[tabindex]\");\n\n if (autofocusElement != null) {\n autofocusElement.focus();\n } else if (wrapperElement != null) {\n wrapperElement.focus();\n }\n }\n });\n };\n\n Overlay.prototype.maybeRenderBackdrop = function () {\n var _a = this.props,\n backdropClassName = _a.backdropClassName,\n backdropProps = _a.backdropProps,\n hasBackdrop = _a.hasBackdrop,\n isOpen = _a.isOpen,\n transitionDuration = _a.transitionDuration,\n transitionName = _a.transitionName;\n\n if (hasBackdrop && isOpen) {\n return React.createElement(CSSTransition, {\n classNames: transitionName,\n key: \"__backdrop\",\n timeout: transitionDuration\n }, React.createElement(\"div\", __assign({}, backdropProps, {\n className: classNames(Classes.OVERLAY_BACKDROP, backdropClassName, backdropProps.className),\n onMouseDown: this.handleBackdropMouseDown,\n tabIndex: this.props.canOutsideClickClose ? 0 : null\n })));\n } else {\n return null;\n }\n };\n\n Overlay.prototype.overlayWillClose = function () {\n document.removeEventListener(\"focus\", this.handleDocumentFocus,\n /* useCapture */\n true);\n document.removeEventListener(\"mousedown\", this.handleDocumentClick);\n var openStack = Overlay_1.openStack;\n var stackIndex = openStack.indexOf(this);\n\n if (stackIndex !== -1) {\n openStack.splice(stackIndex, 1);\n\n if (openStack.length > 0) {\n var lastOpenedOverlay = Overlay_1.getLastOpened();\n\n if (lastOpenedOverlay.props.enforceFocus) {\n document.addEventListener(\"focus\", lastOpenedOverlay.handleDocumentFocus,\n /* useCapture */\n true);\n }\n }\n\n if (openStack.filter(function (o) {\n return o.props.usePortal && o.props.hasBackdrop;\n }).length === 0) {\n document.body.classList.remove(Classes.OVERLAY_OPEN);\n }\n }\n };\n\n Overlay.prototype.overlayWillOpen = function () {\n var openStack = Overlay_1.openStack;\n\n if (openStack.length > 0) {\n document.removeEventListener(\"focus\", Overlay_1.getLastOpened().handleDocumentFocus,\n /* useCapture */\n true);\n }\n\n openStack.push(this);\n\n if (this.props.autoFocus) {\n this.bringFocusInsideOverlay();\n }\n\n if (this.props.enforceFocus) {\n document.addEventListener(\"focus\", this.handleDocumentFocus,\n /* useCapture */\n true);\n }\n\n if (this.props.canOutsideClickClose && !this.props.hasBackdrop) {\n document.addEventListener(\"mousedown\", this.handleDocumentClick);\n }\n\n if (this.props.hasBackdrop && this.props.usePortal) {\n // add a class to the body to prevent scrolling of content below the overlay\n document.body.classList.add(Classes.OVERLAY_OPEN);\n }\n };\n\n var Overlay_1;\n Overlay.displayName = DISPLAYNAME_PREFIX + \".Overlay\";\n Overlay.defaultProps = {\n autoFocus: true,\n backdropProps: {},\n canEscapeKeyClose: true,\n canOutsideClickClose: true,\n enforceFocus: true,\n hasBackdrop: true,\n isOpen: false,\n lazy: true,\n transitionDuration: 300,\n transitionName: Classes.OVERLAY,\n usePortal: true\n };\n Overlay.openStack = [];\n\n Overlay.getLastOpened = function () {\n return Overlay_1.openStack[Overlay_1.openStack.length - 1];\n };\n\n Overlay = Overlay_1 = __decorate([polyfill], Overlay);\n return Overlay;\n}(AbstractPureComponent2);\n\nexport { Overlay };","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __extends } from \"tslib\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport * as Classes from \"../../common/classes\";\nimport * as Errors from \"../../common/errors\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { isFunction } from \"../../common/utils\";\n/** Detect if `React.createPortal()` API method does not exist. */\n\nvar cannotCreatePortal = !isFunction(ReactDOM.createPortal);\nvar REACT_CONTEXT_TYPES = {\n blueprintPortalClassName: function blueprintPortalClassName(obj, key) {\n if (obj[key] != null && typeof obj[key] !== \"string\") {\n return new Error(Errors.PORTAL_CONTEXT_CLASS_NAME_STRING);\n }\n\n return undefined;\n }\n};\n/**\n * This component detaches its contents and re-attaches them to document.body.\n * Use it when you need to circumvent DOM z-stacking (for dialogs, popovers, etc.).\n * Any class names passed to this element will be propagated to the new container element on document.body.\n */\n\nvar Portal =\n/** @class */\nfunction (_super) {\n __extends(Portal, _super);\n\n function Portal() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n hasMounted: false\n };\n return _this;\n }\n\n Portal.prototype.render = function () {\n // Only render `children` once this component has mounted in a browser environment, so they are\n // immediately attached to the DOM tree and can do DOM things like measuring or `autoFocus`.\n // See long comment on componentDidMount in https://reactjs.org/docs/portals.html#event-bubbling-through-portals\n if (cannotCreatePortal || typeof document === \"undefined\" || !this.state.hasMounted) {\n return null;\n } else {\n return ReactDOM.createPortal(this.props.children, this.portalElement);\n }\n };\n\n Portal.prototype.componentDidMount = function () {\n if (!this.props.container) {\n return;\n }\n\n this.portalElement = this.createContainerElement();\n this.props.container.appendChild(this.portalElement);\n this.setState({\n hasMounted: true\n }, this.props.onChildrenMount);\n\n if (cannotCreatePortal) {\n this.unstableRenderNoPortal();\n }\n };\n\n Portal.prototype.componentDidUpdate = function (prevProps) {\n // update className prop on portal DOM element\n if (this.portalElement != null && prevProps.className !== this.props.className) {\n this.portalElement.classList.remove(prevProps.className);\n maybeAddClass(this.portalElement.classList, this.props.className);\n }\n\n if (cannotCreatePortal) {\n this.unstableRenderNoPortal();\n }\n };\n\n Portal.prototype.componentWillUnmount = function () {\n if (this.portalElement != null) {\n if (cannotCreatePortal) {\n ReactDOM.unmountComponentAtNode(this.portalElement);\n }\n\n this.portalElement.remove();\n }\n };\n\n Portal.prototype.createContainerElement = function () {\n var container = document.createElement(\"div\");\n container.classList.add(Classes.PORTAL);\n maybeAddClass(container.classList, this.props.className);\n\n if (this.context != null) {\n maybeAddClass(container.classList, this.context.blueprintPortalClassName);\n }\n\n return container;\n };\n\n Portal.prototype.unstableRenderNoPortal = function () {\n ReactDOM.unstable_renderSubtreeIntoContainer(\n /* parentComponent */\n this, React.createElement(\"div\", null, this.props.children), this.portalElement);\n };\n\n Portal.displayName = DISPLAYNAME_PREFIX + \".Portal\";\n Portal.contextTypes = REACT_CONTEXT_TYPES;\n Portal.defaultProps = {\n container: typeof document !== \"undefined\" ? document.body : null\n };\n return Portal;\n}(React.Component);\n\nexport { Portal };\n\nfunction maybeAddClass(classList, className) {\n if (className != null && className !== \"\") {\n classList.add.apply(classList, className.split(\" \"));\n }\n}","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __decorate, __extends } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Classes } from \"../../common\";\nimport { SPINNER_WARN_CLASSES_SIZE } from \"../../common/errors\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { clamp } from \"../../common/utils\"; // see http://stackoverflow.com/a/18473154/3124288 for calculating arc path\n\nvar R = 45;\nvar SPINNER_TRACK = \"M 50,50 m 0,-\" + R + \" a \" + R + \",\" + R + \" 0 1 1 0,\" + R * 2 + \" a \" + R + \",\" + R + \" 0 1 1 0,-\" + R * 2; // unitless total length of SVG path, to which stroke-dash* properties are relative.\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/pathLength\n// this value is the result of `.getTotalLength()` and works in all browsers:\n\nvar PATH_LENGTH = 280;\nvar MIN_SIZE = 10;\nvar STROKE_WIDTH = 4;\nvar MIN_STROKE_WIDTH = 16;\n\nvar Spinner =\n/** @class */\nfunction (_super) {\n __extends(Spinner, _super);\n\n function Spinner() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Spinner_1 = Spinner;\n\n Spinner.prototype.componentDidUpdate = function (prevProps) {\n if (prevProps.value !== this.props.value) {\n // IE/Edge: re-render after changing value to force SVG update\n this.forceUpdate();\n }\n };\n\n Spinner.prototype.render = function () {\n var _a;\n\n var _b = this.props,\n className = _b.className,\n intent = _b.intent,\n value = _b.value,\n _c = _b.tagName,\n tagName = _c === void 0 ? \"div\" : _c;\n var size = this.getSize();\n var classes = classNames(Classes.SPINNER, Classes.intentClass(intent), (_a = {}, _a[Classes.SPINNER_NO_SPIN] = value != null, _a), className); // keep spinner track width consistent at all sizes (down to about 10px).\n\n var strokeWidth = Math.min(MIN_STROKE_WIDTH, STROKE_WIDTH * Spinner_1.SIZE_LARGE / size);\n var strokeOffset = PATH_LENGTH - PATH_LENGTH * (value == null ? 0.25 : clamp(value, 0, 1)); // multiple DOM elements around SVG are necessary to properly isolate animation:\n // - SVG elements in IE do not support anim/trans so they must be set on a parent HTML element.\n // - SPINNER_ANIMATION isolates svg from parent display and is always centered inside root element.\n\n return React.createElement(tagName, {\n className: classes\n }, React.createElement(tagName, {\n className: Classes.SPINNER_ANIMATION\n }, React.createElement(\"svg\", {\n width: size,\n height: size,\n strokeWidth: strokeWidth.toFixed(2),\n viewBox: this.getViewBox(strokeWidth)\n }, React.createElement(\"path\", {\n className: Classes.SPINNER_TRACK,\n d: SPINNER_TRACK\n }), React.createElement(\"path\", {\n className: Classes.SPINNER_HEAD,\n d: SPINNER_TRACK,\n pathLength: PATH_LENGTH,\n strokeDasharray: PATH_LENGTH + \" \" + PATH_LENGTH,\n strokeDashoffset: strokeOffset\n }))));\n };\n\n Spinner.prototype.validateProps = function (_a) {\n var _b = _a.className,\n className = _b === void 0 ? \"\" : _b,\n size = _a.size;\n\n if (size != null && (className.indexOf(Classes.SMALL) >= 0 || className.indexOf(Classes.LARGE) >= 0)) {\n console.warn(SPINNER_WARN_CLASSES_SIZE);\n }\n };\n /**\n * Resolve size to a pixel value.\n * Size can be set by className, props, default, or minimum constant.\n */\n\n\n Spinner.prototype.getSize = function () {\n var _a = this.props,\n _b = _a.className,\n className = _b === void 0 ? \"\" : _b,\n size = _a.size;\n\n if (size == null) {\n // allow Classes constants to determine default size.\n if (className.indexOf(Classes.SMALL) >= 0) {\n return Spinner_1.SIZE_SMALL;\n } else if (className.indexOf(Classes.LARGE) >= 0) {\n return Spinner_1.SIZE_LARGE;\n }\n\n return Spinner_1.SIZE_STANDARD;\n }\n\n return Math.max(MIN_SIZE, size);\n };\n /** Compute viewbox such that stroked track sits exactly at edge of image frame. */\n\n\n Spinner.prototype.getViewBox = function (strokeWidth) {\n var radius = R + strokeWidth / 2;\n var viewBoxX = (50 - radius).toFixed(2);\n var viewBoxWidth = (radius * 2).toFixed(2);\n return viewBoxX + \" \" + viewBoxX + \" \" + viewBoxWidth + \" \" + viewBoxWidth;\n };\n\n var Spinner_1;\n Spinner.displayName = DISPLAYNAME_PREFIX + \".Spinner\";\n Spinner.SIZE_SMALL = 20;\n Spinner.SIZE_STANDARD = 50;\n Spinner.SIZE_LARGE = 100;\n Spinner = Spinner_1 = __decorate([polyfill], Spinner);\n return Spinner;\n}(AbstractPureComponent2);\n\nexport { Spinner };","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __rest } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { BLOCKQUOTE, CODE, CODE_BLOCK, HEADING, LABEL, LIST } from \"../../common/classes\";\n\nfunction htmlElement(tagName, tagClassName) {\n return function (props) {\n var className = props.className,\n elementRef = props.elementRef,\n htmlProps = __rest(props, [\"className\", \"elementRef\"]);\n\n return React.createElement(tagName, __assign(__assign({}, htmlProps), {\n className: classNames(tagClassName, className),\n ref: elementRef\n }));\n };\n} // the following components are linted by blueprint-html-components because\n// they should rarely be used without the Blueprint classes/styles:\n\n\nexport var H1 = htmlElement(\"h1\", HEADING);\nexport var H2 = htmlElement(\"h2\", HEADING);\nexport var H3 = htmlElement(\"h3\", HEADING);\nexport var H4 = htmlElement(\"h4\", HEADING);\nexport var H5 = htmlElement(\"h5\", HEADING);\nexport var H6 = htmlElement(\"h6\", HEADING);\nexport var Blockquote = htmlElement(\"blockquote\", BLOCKQUOTE);\nexport var Code = htmlElement(\"code\", CODE);\nexport var Pre = htmlElement(\"pre\", CODE_BLOCK);\nexport var Label = htmlElement(\"label\", LABEL); // these two are not linted by blueprint-html-components because there are valid\n// uses of these elements without Blueprint styles:\n\nexport var OL = htmlElement(\"ol\", LIST);\nexport var UL = htmlElement(\"ul\", LIST);","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends, __rest } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Classes } from \"../../common\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { MenuDivider } from \"./menuDivider\"; // eslint-disable-next-line import/no-cycle\n\nimport { MenuItem } from \"./menuItem\";\n\nvar Menu =\n/** @class */\nfunction (_super) {\n __extends(Menu, _super);\n\n function Menu() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Menu.prototype.render = function () {\n var _a;\n\n var _b = this.props,\n className = _b.className,\n children = _b.children,\n large = _b.large,\n ulRef = _b.ulRef,\n htmlProps = __rest(_b, [\"className\", \"children\", \"large\", \"ulRef\"]);\n\n var classes = classNames(Classes.MENU, (_a = {}, _a[Classes.LARGE] = large, _a), className);\n return React.createElement(\"ul\", __assign({}, htmlProps, {\n className: classes,\n ref: ulRef\n }), children);\n };\n\n Menu.displayName = DISPLAYNAME_PREFIX + \".Menu\";\n Menu.Divider = MenuDivider;\n Menu.Item = MenuItem;\n Menu = __decorate([polyfill], Menu);\n return Menu;\n}(AbstractPureComponent2);\n\nexport { Menu };","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __extends } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport * as Classes from \"../../common/classes\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { H6 } from \"../html/html\";\n\nvar MenuDivider =\n/** @class */\nfunction (_super) {\n __extends(MenuDivider, _super);\n\n function MenuDivider() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n MenuDivider.prototype.render = function () {\n var _a = this.props,\n className = _a.className,\n title = _a.title;\n\n if (title == null) {\n // simple divider\n return React.createElement(\"li\", {\n className: classNames(Classes.MENU_DIVIDER, className)\n });\n } else {\n // section header with title\n return React.createElement(\"li\", {\n className: classNames(Classes.MENU_HEADER, className)\n }, React.createElement(H6, null, title));\n }\n };\n\n MenuDivider.displayName = DISPLAYNAME_PREFIX + \".MenuDivider\";\n return MenuDivider;\n}(React.Component);\n\nexport { MenuDivider };","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends, __rest } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Classes, Position } from \"../../common\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { Icon } from \"../icon/icon\";\nimport { Popover, PopoverInteractionKind } from \"../popover/popover\";\nimport { Text } from \"../text/text\"; // eslint-disable-next-line import/no-cycle\n\nimport { Menu } from \"./menu\";\n\nvar MenuItem =\n/** @class */\nfunction (_super) {\n __extends(MenuItem, _super);\n\n function MenuItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n MenuItem.prototype.render = function () {\n var _a, _b;\n\n var _c = this.props,\n active = _c.active,\n className = _c.className,\n children = _c.children,\n disabled = _c.disabled,\n icon = _c.icon,\n intent = _c.intent,\n labelClassName = _c.labelClassName,\n labelElement = _c.labelElement,\n multiline = _c.multiline,\n popoverProps = _c.popoverProps,\n shouldDismissPopover = _c.shouldDismissPopover,\n text = _c.text,\n textClassName = _c.textClassName,\n _d = _c.tagName,\n tagName = _d === void 0 ? \"a\" : _d,\n htmlProps = __rest(_c, [\"active\", \"className\", \"children\", \"disabled\", \"icon\", \"intent\", \"labelClassName\", \"labelElement\", \"multiline\", \"popoverProps\", \"shouldDismissPopover\", \"text\", \"textClassName\", \"tagName\"]);\n\n var hasSubmenu = children != null;\n var intentClass = Classes.intentClass(intent);\n var anchorClasses = classNames(Classes.MENU_ITEM, intentClass, (_a = {}, _a[Classes.ACTIVE] = active, _a[Classes.INTENT_PRIMARY] = active && intentClass == null, _a[Classes.DISABLED] = disabled, // prevent popover from closing when clicking on submenu trigger or disabled item\n _a[Classes.POPOVER_DISMISS] = shouldDismissPopover && !disabled && !hasSubmenu, _a), className);\n var target = React.createElement(tagName, __assign(__assign(__assign({}, htmlProps), disabled ? DISABLED_PROPS : {}), {\n className: anchorClasses\n }), React.createElement(Icon, {\n icon: icon\n }), React.createElement(Text, {\n className: classNames(Classes.FILL, textClassName),\n ellipsize: !multiline\n }, text), this.maybeRenderLabel(labelElement), hasSubmenu ? React.createElement(Icon, {\n icon: \"caret-right\"\n }) : undefined);\n var liClasses = classNames((_b = {}, _b[Classes.MENU_SUBMENU] = hasSubmenu, _b));\n return React.createElement(\"li\", {\n className: liClasses\n }, this.maybeRenderPopover(target, children));\n };\n\n MenuItem.prototype.maybeRenderLabel = function (labelElement) {\n var _a = this.props,\n label = _a.label,\n labelClassName = _a.labelClassName;\n\n if (label == null && labelElement == null) {\n return null;\n }\n\n return React.createElement(\"span\", {\n className: classNames(Classes.MENU_ITEM_LABEL, labelClassName)\n }, label, labelElement);\n };\n\n MenuItem.prototype.maybeRenderPopover = function (target, children) {\n if (children == null) {\n return target;\n }\n\n var _a = this.props,\n disabled = _a.disabled,\n popoverProps = _a.popoverProps;\n return React.createElement(Popover, __assign({\n autoFocus: false,\n captureDismiss: false,\n disabled: disabled,\n enforceFocus: false,\n hoverCloseDelay: 0,\n interactionKind: PopoverInteractionKind.HOVER,\n modifiers: SUBMENU_POPOVER_MODIFIERS,\n position: Position.RIGHT_TOP,\n usePortal: false\n }, popoverProps, {\n content: React.createElement(Menu, null, children),\n minimal: true,\n popoverClassName: classNames(Classes.MENU_SUBMENU, popoverProps.popoverClassName),\n target: target\n }));\n };\n\n MenuItem.defaultProps = {\n disabled: false,\n multiline: false,\n popoverProps: {},\n shouldDismissPopover: true,\n text: \"\"\n };\n MenuItem.displayName = DISPLAYNAME_PREFIX + \".MenuItem\";\n MenuItem = __decorate([polyfill], MenuItem);\n return MenuItem;\n}(AbstractPureComponent2);\n\nexport { MenuItem };\nvar SUBMENU_POPOVER_MODIFIERS = {\n // 20px padding - scrollbar width + a bit\n flip: {\n boundariesElement: \"viewport\",\n padding: 20\n },\n // shift popover up 5px so MenuItems align\n offset: {\n offset: -5\n },\n preventOverflow: {\n boundariesElement: \"viewport\",\n padding: 20\n }\n}; // props to ignore when disabled\n\nvar DISABLED_PROPS = {\n href: undefined,\n onClick: undefined,\n onMouseDown: undefined,\n onMouseEnter: undefined,\n onMouseLeave: undefined,\n tabIndex: -1\n};","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __decorate, __extends } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Classes } from \"../../common\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\n\nvar Text =\n/** @class */\nfunction (_super) {\n __extends(Text, _super);\n\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n isContentOverflowing: false,\n textContent: \"\"\n };\n _this.textRef = null;\n return _this;\n }\n\n Text.prototype.componentDidMount = function () {\n this.update();\n };\n\n Text.prototype.componentDidUpdate = function () {\n this.update();\n };\n\n Text.prototype.render = function () {\n var _a;\n\n var _this = this;\n\n var classes = classNames((_a = {}, _a[Classes.TEXT_OVERFLOW_ELLIPSIS] = this.props.ellipsize, _a), this.props.className);\n var _b = this.props,\n children = _b.children,\n _c = _b.tagName,\n tagName = _c === void 0 ? \"div\" : _c;\n return React.createElement(tagName, {\n className: classes,\n ref: function ref(_ref) {\n return _this.textRef = _ref;\n },\n title: this.state.isContentOverflowing ? this.state.textContent : undefined\n }, children);\n };\n\n Text.prototype.update = function () {\n if (this.textRef == null) {\n return;\n }\n\n var newState = {\n isContentOverflowing: this.props.ellipsize && this.textRef.scrollWidth > this.textRef.clientWidth,\n textContent: this.textRef.textContent\n };\n this.setState(newState);\n };\n\n Text.displayName = DISPLAYNAME_PREFIX + \".Text\";\n Text = __decorate([polyfill], Text);\n return Text;\n}(AbstractPureComponent2);\n\nexport { Text };","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","/**\r\n * Color space data and conversions\r\n *\r\n * @module color-space\r\n *\r\n */\n'use strict';\n/** Exported spaces */\n\nvar spaces = {\n rgb: require('./rgb'),\n hsl: require('./hsl'),\n hsv: require('./hsv'),\n hsi: require('./hsi'),\n hwb: require('./hwb'),\n cmyk: require('./cmyk'),\n cmy: require('./cmy'),\n xyz: require('./xyz'),\n xyy: require('./xyy'),\n yiq: require('./yiq'),\n yuv: require('./yuv'),\n ydbdr: require('./ydbdr'),\n ycgco: require('./ycgco'),\n ypbpr: require('./ypbpr'),\n ycbcr: require('./ycbcr'),\n xvycc: require('./xvycc'),\n yccbccrc: require('./yccbccrc'),\n ucs: require('./ucs'),\n uvw: require('./uvw'),\n jpeg: require('./jpeg'),\n lab: require('./lab'),\n labh: require('./labh'),\n lms: require('./lms'),\n lchab: require('./lchab'),\n luv: require('./luv'),\n lchuv: require('./lchuv'),\n hsluv: require('./hsluv'),\n hpluv: require('./hpluv'),\n cubehelix: require('./cubehelix'),\n coloroid: require('./coloroid'),\n hcg: require('./hcg'),\n hcy: require('./hcy'),\n tsl: require('./tsl'),\n yes: require('./yes'),\n osaucs: require('./osaucs'),\n hsp: require('./hsp')\n}; //build absent convertors from each to every space\n\nvar fromSpace;\n\nfor (var fromSpaceName in spaces) {\n fromSpace = spaces[fromSpaceName];\n\n for (var toSpaceName in spaces) {\n if (!fromSpace[toSpaceName]) fromSpace[toSpaceName] = getConvertor(fromSpaceName, toSpaceName);\n }\n}\n/** return converter through xyz/rgb space */\n\n\nfunction getConvertor(fromSpaceName, toSpaceName) {\n var fromSpace = spaces[fromSpaceName]; //create straight converter\n\n if (fromSpaceName === toSpaceName) {\n return function (a) {\n return a;\n };\n } //create xyz converter, if available\n else if (fromSpace.xyz && spaces.xyz[toSpaceName]) {\n return function (arg) {\n return spaces.xyz[toSpaceName](fromSpace.xyz(arg));\n };\n } //create rgb converter\n else if (fromSpace.rgb && spaces.rgb[toSpaceName]) {\n return function (arg) {\n return spaces.rgb[toSpaceName](fromSpace.rgb(arg));\n };\n }\n}\n\nmodule.exports = spaces;","import { useEffect } from 'react';\n\nvar useEffectOnce = function useEffectOnce(effect) {\n useEffect(effect, []);\n};\n\nexport default useEffectOnce;","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nvar CONTENT_LENGTH_HEADER = \"content-length\";\nexport function contentLengthMiddleware(bodyLengthChecker) {\n var _this = this;\n\n return function (next) {\n return function (args) {\n return __awaiter(_this, void 0, void 0, function () {\n var request, body, headers, length;\n\n var _a;\n\n return __generator(this, function (_b) {\n request = args.request;\n\n if (HttpRequest.isInstance(request)) {\n body = request.body, headers = request.headers;\n\n if (body && Object.keys(headers).map(function (str) {\n return str.toLowerCase();\n }).indexOf(CONTENT_LENGTH_HEADER) === -1) {\n length = bodyLengthChecker(body);\n\n if (length !== undefined) {\n request.headers = __assign(__assign({}, request.headers), (_a = {}, _a[CONTENT_LENGTH_HEADER] = String(length), _a));\n }\n }\n }\n\n return [2\n /*return*/\n , next(__assign(__assign({}, args), {\n request: request\n }))];\n });\n });\n };\n };\n}\nexport var contentLengthMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true\n};\nexport var getContentLengthPlugin = function getContentLengthPlugin(options) {\n return {\n applyToStack: function applyToStack(clientStack) {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n }\n };\n};","export var isArrayBuffer = function isArrayBuffer(arg) {\n return typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer || Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WebCryptoSha256 = exports.Ie11Sha256 = void 0;\n\nvar tslib_1 = require(\"tslib\");\n\ntslib_1.__exportStar(require(\"./crossPlatformSha256\"), exports);\n\nvar ie11Sha256_1 = require(\"./ie11Sha256\");\n\nObject.defineProperty(exports, \"Ie11Sha256\", {\n enumerable: true,\n get: function get() {\n return ie11Sha256_1.Sha256;\n }\n});\n\nvar webCryptoSha256_1 = require(\"./webCryptoSha256\");\n\nObject.defineProperty(exports, \"WebCryptoSha256\", {\n enumerable: true,\n get: function get() {\n return webCryptoSha256_1.Sha256;\n }\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Crc32 = exports.crc32 = void 0;\n\nvar tslib_1 = require(\"tslib\");\n\nfunction crc32(data) {\n return new Crc32().update(data).digest();\n}\n\nexports.crc32 = crc32;\n\nvar Crc32 =\n/** @class */\nfunction () {\n function Crc32() {\n this.checksum = 0xffffffff;\n }\n\n Crc32.prototype.update = function (data) {\n var e_1, _a;\n\n try {\n for (var data_1 = tslib_1.__values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var byte = data_1_1.value;\n this.checksum = this.checksum >>> 8 ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return this;\n };\n\n Crc32.prototype.digest = function () {\n return (this.checksum ^ 0xffffffff) >>> 0;\n };\n\n return Crc32;\n}();\n\nexports.Crc32 = Crc32; // prettier-ignore\n\nvar lookupTable = Uint32Array.from([0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D]);","export function calculateBodyLength(body) {\n if (typeof body === \"string\") {\n var len = body.length;\n\n for (var i = len - 1; i >= 0; i--) {\n var code = body.charCodeAt(i);\n if (code > 0x7f && code <= 0x7ff) len++;else if (code > 0x7ff && code <= 0xffff) len += 2;\n }\n\n return len;\n } else if (typeof body.byteLength === \"number\") {\n // handles Uint8Array, ArrayBuffer, Buffer, and ArrayBufferView\n return body.byteLength;\n } else if (typeof body.size === \"number\") {\n // handles browser File object\n return body.size;\n }\n}","import { __awaiter, __generator } from \"tslib\";\nimport bowser from \"bowser\";\n/**\n * Default provider to the user agent in browsers. It's a best effort to infer\n * the device information. It uses bowser library to detect the browser and version\n */\n\nexport var defaultUserAgent = function defaultUserAgent(_a) {\n var serviceId = _a.serviceId,\n clientVersion = _a.clientVersion;\n return function () {\n return __awaiter(void 0, void 0, void 0, function () {\n var parsedUA, sections;\n\n var _a, _b, _c, _d, _e, _f, _g;\n\n return __generator(this, function (_h) {\n parsedUA = typeof window !== \"undefined\" && ((_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) ? bowser.parse(window.navigator.userAgent) : undefined;\n sections = [// sdk-metadata\n [\"aws-sdk-js\", clientVersion], // os-metadata\n [\"os/\" + (((_b = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os) === null || _b === void 0 ? void 0 : _b.name) || \"other\"), (_c = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os) === null || _c === void 0 ? void 0 : _c.version], // language-metadata\n // ECMAScript edition doesn't matter in JS.\n [\"lang/js\"], // browser vendor and version.\n [\"md/browser\", ((_e = (_d = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.browser) === null || _d === void 0 ? void 0 : _d.name) !== null && _e !== void 0 ? _e : \"unknown\") + \"_\" + ((_g = (_f = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.browser) === null || _f === void 0 ? void 0 : _f.version) !== null && _g !== void 0 ? _g : \"unknown\")]];\n\n if (serviceId) {\n // api-metadata\n // service Id may not appear in non-AWS clients\n sections.push([\"api/\" + serviceId, clientVersion]);\n }\n\n return [2\n /*return*/\n , sections];\n });\n });\n };\n};","export var invalidFunction = function invalidFunction(message) {\n return function () {\n throw new Error(message);\n };\n};","export var invalidProvider = function invalidProvider(message) {\n return function () {\n return Promise.reject(message);\n };\n};","export * from \"./invalidFunction\";\nexport * from \"./invalidProvider\";","import { __awaiter, __generator, __rest } from \"tslib\";\nexport var loggerMiddleware = function loggerMiddleware() {\n return function (next, context) {\n return function (args) {\n return __awaiter(void 0, void 0, void 0, function () {\n var clientName, commandName, inputFilterSensitiveLog, logger, outputFilterSensitiveLog, response, _a, $metadata, outputWithoutMetadata;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n clientName = context.clientName, commandName = context.commandName, inputFilterSensitiveLog = context.inputFilterSensitiveLog, logger = context.logger, outputFilterSensitiveLog = context.outputFilterSensitiveLog;\n return [4\n /*yield*/\n , next(args)];\n\n case 1:\n response = _b.sent();\n\n if (!logger) {\n return [2\n /*return*/\n , response];\n }\n\n if (typeof logger.info === \"function\") {\n _a = response.output, $metadata = _a.$metadata, outputWithoutMetadata = __rest(_a, [\"$metadata\"]);\n logger.info({\n clientName: clientName,\n commandName: commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata\n });\n }\n\n return [2\n /*return*/\n , response];\n }\n });\n });\n };\n };\n};\nexport var loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true\n}; // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\nexport var getLoggerPlugin = function getLoggerPlugin(options) {\n return {\n applyToStack: function applyToStack(clientStack) {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n }\n };\n};","export * from \"./loggerMiddleware\";","import { parseQueryString } from \"@aws-sdk/querystring-parser\";\nexport var parseUrl = function parseUrl(url) {\n var _a = new URL(url),\n hostname = _a.hostname,\n pathname = _a.pathname,\n port = _a.port,\n protocol = _a.protocol,\n search = _a.search;\n\n var query;\n\n if (search) {\n query = parseQueryString(search);\n }\n\n return {\n hostname: hostname,\n port: port ? parseInt(port) : undefined,\n protocol: protocol,\n path: pathname,\n query: query\n };\n};","import { __read, __values } from \"tslib\";\nexport function parseQueryString(querystring) {\n var e_1, _a;\n\n var query = {};\n querystring = querystring.replace(/^\\?/, \"\");\n\n if (querystring) {\n try {\n for (var _b = __values(querystring.split(\"&\")), _c = _b.next(); !_c.done; _c = _b.next()) {\n var pair = _c.value;\n\n var _d = __read(pair.split(\"=\"), 2),\n key = _d[0],\n _e = _d[1],\n value = _e === void 0 ? null : _e;\n\n key = decodeURIComponent(key);\n\n if (value) {\n value = decodeURIComponent(value);\n }\n\n if (!(key in query)) {\n query[key] = value;\n } else if (Array.isArray(query[key])) {\n query[key].push(value);\n } else {\n query[key] = [query[key], value];\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n }\n\n return query;\n}","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};","/*!\n * react-paypal-js v7.3.3 (2021-08-31T21:55:23.426Z)\n * Copyright 2020-present, PayPal, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport React, { createContext, useContext, useRef, useState, useEffect, useReducer } from 'react';\nvar SCRIPT_LOADING_STATE;\n\n(function (SCRIPT_LOADING_STATE) {\n SCRIPT_LOADING_STATE[\"INITIAL\"] = \"initial\";\n SCRIPT_LOADING_STATE[\"PENDING\"] = \"pending\";\n SCRIPT_LOADING_STATE[\"REJECTED\"] = \"rejected\";\n SCRIPT_LOADING_STATE[\"RESOLVED\"] = \"resolved\";\n})(SCRIPT_LOADING_STATE || (SCRIPT_LOADING_STATE = {}));\n\nvar DISPATCH_ACTION;\n\n(function (DISPATCH_ACTION) {\n DISPATCH_ACTION[\"LOADING_STATUS\"] = \"setLoadingStatus\";\n DISPATCH_ACTION[\"RESET_OPTIONS\"] = \"resetOptions\";\n DISPATCH_ACTION[\"SET_BRAINTREE_INSTANCE\"] = \"braintreeInstance\";\n})(DISPATCH_ACTION || (DISPATCH_ACTION = {})); // Common reference to the script identifier\n\n\nvar SCRIPT_ID = \"data-react-paypal-script-id\";\nvar DATA_CLIENT_TOKEN = \"data-client-token\";\nvar DATA_SDK_INTEGRATION_SOURCE = \"data-sdk-integration-source\";\nvar DATA_SDK_INTEGRATION_SOURCE_VALUE = \"react-paypal-js\";\nvar EMPTY_PROVIDER_CONTEXT_ERROR_MESSAGE = \"usePayPalScriptReducer must be used within a PayPalScriptProvider\";\nvar EMPTY_PROVIDER_CONTEXT_CLIENT_TOKEN_ERROR_MESSAGE = \"A client token wasn't found in the provider parent component\";\nvar braintreeVersion = \"3.81.0\";\nvar BRAINTREE_SOURCE = \"https://js.braintreegateway.com/web/\" + braintreeVersion + \"/js/client.min.js\";\nvar BRAINTREE_PAYPAL_CHECKOUT_SOURCE = \"https://js.braintreegateway.com/web/\" + braintreeVersion + \"/js/paypal-checkout.min.js\"; // Namespaces\n\nvar DEFAULT_PAYPAL_NAMESPACE = \"paypal\";\nvar DEFAULT_BRAINTREE_NAMESPACE = \"braintree\";\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nfunction __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nfunction __spreadArray(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 || from);\n}\n/**\n * Get the namespace from the window in the browser\n * this is useful to get the paypal object from window\n * after load PayPal SDK script\n *\n * @param namespace the name space to return\n * @returns the namespace if exists or undefined otherwise\n */\n\n\nfunction getPayPalWindowNamespace$1(namespace) {\n if (namespace === void 0) {\n namespace = DEFAULT_PAYPAL_NAMESPACE;\n } // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n return window[namespace];\n}\n/**\n * Get a namespace from the window in the browser\n * this is useful to get the braintree from window\n * after load Braintree script\n *\n * @param namespace the name space to return\n * @returns the namespace if exists or undefined otherwise\n */\n\n\nfunction getBraintreeWindowNamespace(namespace) {\n if (namespace === void 0) {\n namespace = DEFAULT_BRAINTREE_NAMESPACE;\n } // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n return window[namespace];\n}\n/**\n * Creates a string hash code based on the string argument\n *\n * @param str the source input string to hash\n * @returns string hash code\n */\n\n\nfunction hashStr(str) {\n var hash = \"\";\n\n for (var i = 0; i < str.length; i++) {\n var total = str[i].charCodeAt(0) * i;\n\n if (str[i + 1]) {\n total += str[i + 1].charCodeAt(0) * (i - 1);\n }\n\n hash += String.fromCharCode(97 + Math.abs(total) % 26);\n }\n\n return hash;\n}\n/**\n * Generate a new random identifier for react-paypal-js\n *\n * @returns the {@code string} containing the random library name\n */\n\n\nfunction getScriptID(options) {\n return \"react-paypal-js-\" + hashStr(JSON.stringify(options));\n}\n/**\n * Destroy the PayPal SDK from the document page\n *\n * @param reactPayPalScriptID the script identifier\n */\n\n\nfunction destroySDKScript(reactPayPalScriptID) {\n var scriptNode = self.document.querySelector(\"script[\" + SCRIPT_ID + \"=\\\"\" + reactPayPalScriptID + \"\\\"]\");\n if (scriptNode != null && scriptNode.parentNode) scriptNode.parentNode.removeChild(scriptNode);\n}\n/**\n * Reducer function to handle complex state changes on the context\n *\n * @param state the current state on the context object\n * @param action the action to be executed on the previous state\n * @returns a the same state if the action wasn't found, or a new state otherwise\n */\n\n\nfunction scriptReducer(state, action) {\n var _a;\n\n switch (action.type) {\n case DISPATCH_ACTION.LOADING_STATUS:\n return _assign(_assign({}, state), {\n loadingStatus: action.value\n });\n\n case DISPATCH_ACTION.RESET_OPTIONS:\n // destroy existing script to make sure only one script loads at a time\n destroySDKScript(state.options[SCRIPT_ID]); // exclude the old data-react-paypal-script-id value from the hash generated by getScriptID()\n\n delete action.value[SCRIPT_ID];\n return _assign(_assign({}, state), {\n loadingStatus: SCRIPT_LOADING_STATE.PENDING,\n options: _assign(_assign({}, action.value), (_a = {}, _a[SCRIPT_ID] = \"\" + getScriptID(action.value), _a[DATA_SDK_INTEGRATION_SOURCE] = DATA_SDK_INTEGRATION_SOURCE_VALUE, _a))\n });\n\n case DISPATCH_ACTION.SET_BRAINTREE_INSTANCE:\n return _assign(_assign({}, state), {\n braintreePayPalCheckoutInstance: action.value\n });\n\n default:\n {\n return state;\n }\n }\n} // Create the React context to use in the script provider component\n\n\nvar ScriptContext = createContext(null);\n/**\n * Check if the context is valid and ready to dispatch actions.\n *\n * @param scriptContext the result of connecting to the context provider\n * @returns strict context avoiding null values in the type\n */\n\nfunction contextNotEmptyValidator(scriptContext) {\n if (typeof (scriptContext === null || scriptContext === void 0 ? void 0 : scriptContext.dispatch) !== \"function\") {\n throw new Error(EMPTY_PROVIDER_CONTEXT_ERROR_MESSAGE);\n }\n\n return scriptContext;\n}\n/**\n * Check if the data-client-token is set in the options of the context\n * This is required to create a Braintree client\n *\n * @param scriptContext the result of connecting to the context provider\n * @returns strict context avoiding null values in the type and client token\n */\n\n\nvar contextOptionClientTokenNotEmptyValidator = function contextOptionClientTokenNotEmptyValidator(scriptContext) {\n var _a;\n\n if (!((_a = scriptContext === null || scriptContext === void 0 ? void 0 : scriptContext.options) === null || _a === void 0 ? void 0 : _a[DATA_CLIENT_TOKEN])) {\n throw new Error(EMPTY_PROVIDER_CONTEXT_CLIENT_TOKEN_ERROR_MESSAGE);\n }\n\n return scriptContext;\n};\n/**\n * Custom hook to get access to the Script context and\n * dispatch actions to modify the state on the {@link ScriptProvider} component\n *\n * @returns a tuple containing the state of the context and\n * a dispatch function to modify the state\n */\n\n\nfunction usePayPalScriptReducer() {\n var scriptContext = contextNotEmptyValidator(useContext(ScriptContext));\n\n var derivedStatusContext = _assign(_assign({}, scriptContext), {\n isInitial: scriptContext.loadingStatus === SCRIPT_LOADING_STATE.INITIAL,\n isPending: scriptContext.loadingStatus === SCRIPT_LOADING_STATE.PENDING,\n isResolved: scriptContext.loadingStatus === SCRIPT_LOADING_STATE.RESOLVED,\n isRejected: scriptContext.loadingStatus === SCRIPT_LOADING_STATE.REJECTED\n });\n\n return [derivedStatusContext, scriptContext.dispatch];\n}\n/**\nThis `` component renders the [Smart Payment Buttons](https://developer.paypal.com/docs/business/javascript-sdk/javascript-sdk-reference/#buttons).\nIt relies on the `` parent component for managing state related to loading the JS SDK script.\n\nUse props for customizing your buttons. For example, here's how you would use the `style`, `createOrder`, and `onApprove` options:\n\n```jsx\n import { PayPalScriptProvider, PayPalButtons } from \"@paypal/react-paypal-js\";\n\n \n {\n return actions.order.create({\n purchase_units: [\n {\n amount: {\n value: \"2.00\",\n },\n },\n ],\n });\n }}\n />;\n \n```\n*/\n\n\nvar PayPalButtons = function PayPalButtons(_a) {\n var _b = _a.className,\n className = _b === void 0 ? \"\" : _b,\n _c = _a.disabled,\n disabled = _c === void 0 ? false : _c,\n _d = _a.children,\n children = _d === void 0 ? null : _d,\n _e = _a.forceReRender,\n forceReRender = _e === void 0 ? [] : _e,\n buttonProps = __rest(_a, [\"className\", \"disabled\", \"children\", \"forceReRender\"]);\n\n var buttonsContainerRef = useRef(null);\n var buttons = useRef(null);\n var _f = usePayPalScriptReducer()[0],\n isResolved = _f.isResolved,\n options = _f.options;\n\n var _g = useState(null),\n initActions = _g[0],\n setInitActions = _g[1];\n\n var _h = useState(true),\n isEligible = _h[0],\n setIsEligible = _h[1];\n\n var _j = useState(null),\n setErrorState = _j[1];\n\n function closeButtonsComponent() {\n if (buttons.current !== null) {\n buttons.current.close().catch(function () {// ignore errors when closing the component\n });\n }\n } // useEffect hook for rendering the buttons\n\n\n useEffect(function () {\n // verify the sdk script has successfully loaded\n if (isResolved === false) {\n return closeButtonsComponent;\n }\n\n var paypalWindowNamespace = getPayPalWindowNamespace$1(options[\"data-namespace\"]); // verify dependency on window object\n\n if (paypalWindowNamespace === undefined || paypalWindowNamespace.Buttons === undefined) {\n setErrorState(function () {\n throw new Error(getErrorMessage$2(options));\n });\n return closeButtonsComponent;\n }\n\n var decoratedOnInit = function decoratedOnInit(data, actions) {\n setInitActions(actions);\n\n if (typeof buttonProps.onInit === \"function\") {\n buttonProps.onInit(data, actions);\n }\n };\n\n try {\n buttons.current = paypalWindowNamespace.Buttons(_assign(_assign({}, buttonProps), {\n onInit: decoratedOnInit\n }));\n } catch (err) {\n return setErrorState(function () {\n throw new Error(\"Failed to render component. Failed to initialize: \" + err);\n });\n } // only render the button when eligible\n\n\n if (buttons.current.isEligible() === false) {\n setIsEligible(false);\n return closeButtonsComponent;\n }\n\n if (buttonsContainerRef.current === null) {\n return closeButtonsComponent;\n }\n\n buttons.current.render(buttonsContainerRef.current).catch(function (err) {\n // component failed to render, possibly because it was closed or destroyed.\n if (buttonsContainerRef.current === null || buttonsContainerRef.current.children.length === 0) {\n // paypal buttons container is no longer in the DOM, we can safely ignore the error\n return;\n } // paypal buttons container is still in the DOM\n\n\n setErrorState(function () {\n throw new Error(\"Failed to render component. \" + err);\n });\n });\n return closeButtonsComponent; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, __spreadArray(__spreadArray([isResolved], forceReRender), [buttonProps.fundingSource])); // useEffect hook for managing disabled state\n\n useEffect(function () {\n if (initActions === null) {\n return;\n }\n\n if (disabled === true) {\n initActions.disable().catch(function () {// ignore errors when disabling the component\n });\n } else {\n initActions.enable().catch(function () {// ignore errors when enabling the component\n });\n }\n }, [disabled, initActions]);\n var isDisabledStyle = disabled ? {\n opacity: 0.38\n } : {};\n var classNames = (className + \" \" + (disabled ? \"paypal-buttons-disabled\" : \"\")).trim();\n\n if (isEligible === false) {\n return children;\n }\n\n return React.createElement(\"div\", {\n ref: buttonsContainerRef,\n style: isDisabledStyle,\n className: classNames\n });\n};\n\nfunction getErrorMessage$2(_a) {\n var _b = _a.components,\n components = _b === void 0 ? \"\" : _b,\n _c = _a[\"data-namespace\"],\n dataNamespace = _c === void 0 ? DEFAULT_PAYPAL_NAMESPACE : _c;\n var errorMessage = \"Unable to render because window.\" + dataNamespace + \".Buttons is undefined.\"; // the JS SDK includes the Buttons component by default when no 'components' are specified.\n // The 'buttons' component must be included in the 'components' list when using it with other components.\n\n if (components.length && !components.includes(\"buttons\")) {\n var expectedComponents = components + \",buttons\";\n errorMessage += \"\\nTo fix the issue, add 'buttons' to the list of components passed to the parent PayPalScriptProvider:\" + (\"\\n``.\");\n }\n\n return errorMessage;\n}\n\nfunction findScript(url, attributes) {\n var currentScript = document.querySelector(\"script[src=\\\"\" + url + \"\\\"]\");\n if (currentScript === null) return null;\n var nextScript = createScriptElement(url, attributes);\n var currentScriptDataset = Object.assign({}, currentScript.dataset);\n delete currentScriptDataset.uidAuto;\n\n if (Object.keys(currentScriptDataset).length !== Object.keys(nextScript.dataset).length) {\n return null;\n }\n\n var isExactMatch = true;\n Object.keys(currentScriptDataset).forEach(function (key) {\n if (currentScriptDataset[key] !== nextScript.dataset[key]) {\n isExactMatch = false;\n }\n });\n return isExactMatch ? currentScript : null;\n}\n\nfunction insertScriptElement(_a) {\n var url = _a.url,\n attributes = _a.attributes,\n onSuccess = _a.onSuccess,\n onError = _a.onError;\n var newScript = createScriptElement(url, attributes);\n newScript.onerror = onError;\n newScript.onload = onSuccess;\n document.head.insertBefore(newScript, document.head.firstElementChild);\n}\n\nfunction processOptions(options) {\n var sdkBaseURL = \"https://www.paypal.com/sdk/js\";\n\n if (options.sdkBaseURL) {\n sdkBaseURL = options.sdkBaseURL;\n delete options.sdkBaseURL;\n }\n\n var processedMerchantIDAttributes = processMerchantID(options[\"merchant-id\"], options[\"data-merchant-id\"]);\n var newOptions = Object.assign({}, options, processedMerchantIDAttributes);\n\n var _a = Object.keys(newOptions).filter(function (key) {\n return typeof newOptions[key] !== \"undefined\" && newOptions[key] !== null && newOptions[key] !== \"\";\n }).reduce(function (accumulator, key) {\n var value = newOptions[key].toString();\n\n if (key.substring(0, 5) === \"data-\") {\n accumulator.dataAttributes[key] = value;\n } else {\n accumulator.queryParams[key] = value;\n }\n\n return accumulator;\n }, {\n queryParams: {},\n dataAttributes: {}\n }),\n queryParams = _a.queryParams,\n dataAttributes = _a.dataAttributes;\n\n return {\n url: sdkBaseURL + \"?\" + objectToQueryString(queryParams),\n dataAttributes: dataAttributes\n };\n}\n\nfunction objectToQueryString(params) {\n var queryString = \"\";\n Object.keys(params).forEach(function (key) {\n if (queryString.length !== 0) queryString += \"&\";\n queryString += key + \"=\" + params[key];\n });\n return queryString;\n}\n\nfunction createScriptElement(url, attributes) {\n if (attributes === void 0) {\n attributes = {};\n }\n\n var newScript = document.createElement(\"script\");\n newScript.src = url;\n Object.keys(attributes).forEach(function (key) {\n newScript.setAttribute(key, attributes[key]);\n\n if (key === \"data-csp-nonce\") {\n newScript.setAttribute(\"nonce\", attributes[\"data-csp-nonce\"]);\n }\n });\n return newScript;\n}\n\nfunction processMerchantID(merchantID, dataMerchantID) {\n var newMerchantID = \"\";\n var newDataMerchantID = \"\";\n\n if (Array.isArray(merchantID)) {\n if (merchantID.length > 1) {\n newMerchantID = \"*\";\n newDataMerchantID = merchantID.toString();\n } else {\n newMerchantID = merchantID.toString();\n }\n } else if (typeof merchantID === \"string\" && merchantID.length > 0) {\n newMerchantID = merchantID;\n } else if (typeof dataMerchantID === \"string\" && dataMerchantID.length > 0) {\n newMerchantID = \"*\";\n newDataMerchantID = dataMerchantID;\n }\n\n return {\n \"merchant-id\": newMerchantID,\n \"data-merchant-id\": newDataMerchantID\n };\n}\n\nfunction loadScript(options, PromisePonyfill) {\n if (PromisePonyfill === void 0) {\n PromisePonyfill = getDefaultPromiseImplementation();\n }\n\n validateArguments(options, PromisePonyfill);\n if (typeof window === \"undefined\") return PromisePonyfill.resolve(null);\n\n var _a = processOptions(options),\n url = _a.url,\n dataAttributes = _a.dataAttributes;\n\n var namespace = dataAttributes[\"data-namespace\"] || \"paypal\";\n var existingWindowNamespace = getPayPalWindowNamespace(namespace);\n\n if (findScript(url, dataAttributes) && existingWindowNamespace) {\n return PromisePonyfill.resolve(existingWindowNamespace);\n }\n\n return loadCustomScript({\n url: url,\n attributes: dataAttributes\n }, PromisePonyfill).then(function () {\n var newWindowNamespace = getPayPalWindowNamespace(namespace);\n\n if (newWindowNamespace) {\n return newWindowNamespace;\n }\n\n throw new Error(\"The window.\" + namespace + \" global variable is not available.\");\n });\n}\n\nfunction loadCustomScript(options, PromisePonyfill) {\n if (PromisePonyfill === void 0) {\n PromisePonyfill = getDefaultPromiseImplementation();\n }\n\n validateArguments(options, PromisePonyfill);\n var url = options.url,\n attributes = options.attributes;\n\n if (typeof url !== \"string\" || url.length === 0) {\n throw new Error(\"Invalid url.\");\n }\n\n if (typeof attributes !== \"undefined\" && typeof attributes !== \"object\") {\n throw new Error(\"Expected attributes to be an object.\");\n }\n\n return new PromisePonyfill(function (resolve, reject) {\n if (typeof window === \"undefined\") return resolve();\n insertScriptElement({\n url: url,\n attributes: attributes,\n onSuccess: function onSuccess() {\n return resolve();\n },\n onError: function onError() {\n return reject(new Error(\"The script \\\"\" + url + \"\\\" failed to load.\"));\n }\n });\n });\n}\n\nfunction getDefaultPromiseImplementation() {\n if (typeof Promise === \"undefined\") {\n throw new Error(\"Promise is undefined. To resolve the issue, use a Promise polyfill.\");\n }\n\n return Promise;\n}\n\nfunction getPayPalWindowNamespace(namespace) {\n return window[namespace];\n}\n\nfunction validateArguments(options, PromisePonyfill) {\n if (typeof options !== \"object\" || options === null) {\n throw new Error(\"Expected an options object.\");\n }\n\n if (typeof PromisePonyfill !== \"undefined\" && typeof PromisePonyfill !== \"function\") {\n throw new Error(\"Expected PromisePonyfill to be a function.\");\n }\n}\n/**\n * Custom hook to get access to the ScriptProvider context\n *\n * @returns the state of the context\n */\n\n\nfunction useBraintreeProviderContext() {\n var scriptContext = contextOptionClientTokenNotEmptyValidator(contextNotEmptyValidator(useContext(ScriptContext)));\n return [scriptContext, scriptContext.dispatch];\n}\n/**\n * Override the createOrder callback to send the PayPal checkout instance as argument\n * to the defined createOrder function for braintree component button\n *\n * @param braintreeButtonProps the component button options\n */\n\n\nvar decorateCreateOrder = function decorateCreateOrder(braintreeButtonProps, payPalCheckoutInstance) {\n if (typeof braintreeButtonProps.createOrder === \"function\") {\n // Keep the createOrder function reference\n var functionReference_1 = braintreeButtonProps.createOrder;\n\n braintreeButtonProps.createOrder = function (data, actions) {\n return functionReference_1(data, _assign(_assign({}, actions), {\n braintree: payPalCheckoutInstance\n }));\n };\n }\n};\n/**\n * Override the onApprove callback to send the payload as argument\n * to the defined onApprove function for braintree component button\n *\n * @param braintreeButtonProps the component button options\n */\n\n\nvar decorateOnApprove = function decorateOnApprove(braintreeButtonProps, payPalCheckoutInstance) {\n if (typeof braintreeButtonProps.onApprove === \"function\") {\n // Store the createOrder function reference\n var braintreeOnApprove_1 = braintreeButtonProps.onApprove;\n\n braintreeButtonProps.onApprove = function (data, actions) {\n return braintreeOnApprove_1(data, _assign(_assign({}, actions), {\n braintree: payPalCheckoutInstance\n }));\n };\n }\n};\n/**\n * Use `actions.braintree` to provide an interface for the paypalCheckoutInstance\n * through the createOrder and onApprove callbacks\n *\n * @param braintreeButtonProps the component button options\n * @returns a new copy of the component button options casted as {@link PayPalButtonsComponentProps}\n */\n\n\nvar decorateActions = function decorateActions(buttonProps, payPalCheckoutInstance) {\n decorateCreateOrder(buttonProps, payPalCheckoutInstance);\n decorateOnApprove(buttonProps, payPalCheckoutInstance);\n return _assign({}, buttonProps);\n};\n/**\nThis `` component renders the [Braintree PayPal Buttons](https://developer.paypal.com/braintree/docs/guides/paypal/overview) for Braintree Merchants.\nIt relies on the `` parent component for managing state related to loading the JS SDK script.\n\nUse props for customizing your buttons. For example, here's how you would use the `style`, `createOrder`, and `onApprove` options:\n\n```jsx\n import { PayPalScriptProvider, BraintreePayPalButtons } from \"@paypal/react-paypal-js\";\n\n \n {\n // the paypalCheckoutInstance from the braintree sdk integration is added to `actions.braintree`\n return actions.braintree.createPayment({\n flow: \"checkout\",\n amount: \"10.0\",\n currency: \"USD\",\n intent: \"capture\"\n })\n }}\n onApprove={(data, actions) => {\n return actions.braintree.tokenizePayment(data)\n .then((payload) => {\n // call server-side endpoint to finish the sale\n })\n }\n />;\n \n```\n\n*/\n\n\nvar BraintreePayPalButtons = function BraintreePayPalButtons(_a) {\n var _b = _a.className,\n className = _b === void 0 ? \"\" : _b,\n _c = _a.disabled,\n disabled = _c === void 0 ? false : _c,\n _d = _a.children,\n children = _d === void 0 ? null : _d,\n _e = _a.forceReRender,\n forceReRender = _e === void 0 ? [] : _e,\n buttonProps = __rest(_a, [\"className\", \"disabled\", \"children\", \"forceReRender\"]);\n\n var _f = useState(null),\n setErrorState = _f[1];\n\n var _g = useBraintreeProviderContext(),\n providerContext = _g[0],\n dispatch = _g[1];\n\n useEffect(function () {\n Promise.all([loadCustomScript({\n url: BRAINTREE_SOURCE\n }), loadCustomScript({\n url: BRAINTREE_PAYPAL_CHECKOUT_SOURCE\n })]).then(function () {\n var clientToken = providerContext.options[DATA_CLIENT_TOKEN];\n var braintreeNamespace = getBraintreeWindowNamespace();\n return braintreeNamespace.client.create({\n authorization: clientToken\n }).then(function (clientInstance) {\n return braintreeNamespace.paypalCheckout.create({\n client: clientInstance\n });\n }).then(function (paypalCheckoutInstance) {\n dispatch({\n type: DISPATCH_ACTION.SET_BRAINTREE_INSTANCE,\n value: paypalCheckoutInstance\n });\n });\n }).catch(function (err) {\n setErrorState(function () {\n throw new Error(\"An error occurred when loading the Braintree scripts: \" + err);\n });\n });\n }, [providerContext.options, dispatch]);\n return React.createElement(React.Fragment, null, providerContext.braintreePayPalCheckoutInstance && React.createElement(PayPalButtons, _assign({\n className: className,\n disabled: disabled,\n forceReRender: forceReRender\n }, decorateActions(buttonProps, providerContext.braintreePayPalCheckoutInstance)), children));\n};\n/**\nThe `` component is used for conditionally rendering different payment options using radio buttons.\nThe [Display PayPal Buttons with other Payment Methods guide](https://developer.paypal.com/docs/business/checkout/add-capabilities/buyer-experience/#display-paypal-buttons-with-other-payment-methods) describes this style of integration in detail.\nIt relies on the `` parent component for managing state related to loading the JS SDK script.\n\n```jsx\n \n```\n\nThis component can also be configured to use a single funding source similar to the [standalone buttons](https://developer.paypal.com/docs/business/checkout/configure-payments/standalone-buttons/) approach.\nA `FUNDING` object is exported by this library which has a key for every available funding source option.\n\n```jsx\n import { PayPalScriptProvider, PayPalMarks, FUNDING } from \"@paypal/react-paypal-js\";\n\n \n \n \n```\n*/\n\n\nvar PayPalMarks = function PayPalMarks(_a) {\n var _b = _a.className,\n className = _b === void 0 ? \"\" : _b,\n markProps = __rest(_a, [\"className\"]);\n\n var _c = usePayPalScriptReducer()[0],\n isResolved = _c.isResolved,\n options = _c.options;\n var markContainerRef = useRef(null);\n var mark = useRef(null);\n\n var _d = useState(null),\n setErrorState = _d[1];\n\n useEffect(function () {\n // verify the sdk script has successfully loaded\n if (isResolved === false) {\n return;\n } // don't rerender when already rendered\n\n\n if (mark.current !== null) {\n return;\n }\n\n var paypalWindowNamespace = getPayPalWindowNamespace$1(options[\"data-namespace\"]); // verify dependency on window object\n\n if (paypalWindowNamespace === undefined || paypalWindowNamespace.Marks === undefined) {\n setErrorState(function () {\n throw new Error(getErrorMessage$1(options));\n });\n return;\n }\n\n mark.current = paypalWindowNamespace.Marks(_assign({}, markProps)); // only render the mark when eligible\n\n if (mark.current.isEligible() === false) {\n return;\n }\n\n if (markContainerRef.current === null) {\n return;\n }\n\n mark.current.render(markContainerRef.current).catch(function (err) {\n // component failed to render, possibly because it was closed or destroyed.\n if (markContainerRef.current === null || markContainerRef.current.children.length === 0) {\n // paypal marks container is no longer in the DOM, we can safely ignore the error\n return;\n } // paypal marks container is still in the DOM\n\n\n setErrorState(function () {\n throw new Error(\"Failed to render component. \" + err);\n });\n }); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isResolved, markProps.fundingSource]);\n return React.createElement(\"div\", {\n ref: markContainerRef,\n className: className\n });\n};\n\nfunction getErrorMessage$1(_a) {\n var _b = _a.components,\n components = _b === void 0 ? \"\" : _b,\n _c = _a[\"data-namespace\"],\n dataNamespace = _c === void 0 ? DEFAULT_PAYPAL_NAMESPACE : _c;\n var errorMessage = \"Unable to render because window.\" + dataNamespace + \".Marks is undefined.\"; // the JS SDK does not load the Marks component by default. It must be passed into the \"components\" query parameter.\n\n if (!components.includes(\"marks\")) {\n var expectedComponents = components ? components + \",marks\" : \"marks\";\n errorMessage += \"\\nTo fix the issue, add 'marks' to the list of components passed to the parent PayPalScriptProvider:\" + (\"\\n``.\");\n }\n\n return errorMessage;\n}\n\nvar PayPalMessages = function PayPalMessages(_a) {\n var _b = _a.className,\n className = _b === void 0 ? \"\" : _b,\n _c = _a.forceReRender,\n forceReRender = _c === void 0 ? [] : _c,\n messageProps = __rest(_a, [\"className\", \"forceReRender\"]);\n\n var _d = usePayPalScriptReducer()[0],\n isResolved = _d.isResolved,\n options = _d.options;\n var messagesContainerRef = useRef(null);\n var messages = useRef(null);\n\n var _e = useState(null),\n setErrorState = _e[1];\n\n useEffect(function () {\n // verify the sdk script has successfully loaded\n if (isResolved === false) {\n return;\n }\n\n var paypalWindowNamespace = getPayPalWindowNamespace$1(options[\"data-namespace\"]); // verify dependency on window object\n\n if (paypalWindowNamespace === undefined || paypalWindowNamespace.Messages === undefined) {\n setErrorState(function () {\n throw new Error(getErrorMessage(options));\n });\n return;\n }\n\n messages.current = paypalWindowNamespace.Messages(_assign({}, messageProps));\n\n if (messagesContainerRef.current === null) {\n return;\n }\n\n messages.current.render(messagesContainerRef.current).catch(function (err) {\n // component failed to render, possibly because it was closed or destroyed.\n if (messagesContainerRef.current === null || messagesContainerRef.current.children.length === 0) {\n // paypal messages container is no longer in the DOM, we can safely ignore the error\n return;\n } // paypal messages container is still in the DOM\n\n\n setErrorState(function () {\n throw new Error(\"Failed to render component. \" + err);\n });\n }); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, __spreadArray([isResolved], forceReRender));\n return React.createElement(\"div\", {\n ref: messagesContainerRef,\n className: className\n });\n};\n\nfunction getErrorMessage(_a) {\n var _b = _a.components,\n components = _b === void 0 ? \"\" : _b,\n _c = _a[\"data-namespace\"],\n dataNamespace = _c === void 0 ? DEFAULT_PAYPAL_NAMESPACE : _c;\n var errorMessage = \"Unable to render because window.\" + dataNamespace + \".Messages is undefined.\"; // the JS SDK does not load the Messages component by default. It must be passed into the \"components\" query parameter.\n\n if (!components.includes(\"messages\")) {\n var expectedComponents = components ? components + \",messages\" : \"messages\";\n errorMessage += \"\\nTo fix the issue, add 'messages' to the list of components passed to the parent PayPalScriptProvider:\" + (\"\\n``.\");\n }\n\n return errorMessage;\n}\n\nvar PayPalScriptProvider = function PayPalScriptProvider(_a) {\n var _b;\n\n var _c = _a.options,\n options = _c === void 0 ? {\n \"client-id\": \"test\"\n } : _c,\n children = _a.children,\n _d = _a.deferLoading,\n deferLoading = _d === void 0 ? false : _d;\n\n var _e = useReducer(scriptReducer, {\n options: _assign(_assign({}, options), (_b = {}, _b[SCRIPT_ID] = \"\" + getScriptID(options), _b[DATA_SDK_INTEGRATION_SOURCE] = DATA_SDK_INTEGRATION_SOURCE_VALUE, _b)),\n loadingStatus: deferLoading ? SCRIPT_LOADING_STATE.INITIAL : SCRIPT_LOADING_STATE.PENDING,\n dispatch: null\n }),\n state = _e[0],\n dispatch = _e[1];\n\n useEffect(function () {\n if (deferLoading === false && state.loadingStatus === SCRIPT_LOADING_STATE.INITIAL) {\n return dispatch({\n type: DISPATCH_ACTION.LOADING_STATUS,\n value: SCRIPT_LOADING_STATE.PENDING\n });\n }\n\n if (state.loadingStatus !== SCRIPT_LOADING_STATE.PENDING) return;\n var isSubscribed = true;\n loadScript(state.options).then(function () {\n if (isSubscribed) {\n dispatch({\n type: DISPATCH_ACTION.LOADING_STATUS,\n value: SCRIPT_LOADING_STATE.RESOLVED\n });\n }\n }).catch(function () {\n if (isSubscribed) {\n dispatch({\n type: DISPATCH_ACTION.LOADING_STATUS,\n value: SCRIPT_LOADING_STATE.REJECTED\n });\n }\n });\n return function () {\n isSubscribed = false;\n };\n }, [state.options, deferLoading, state.loadingStatus]);\n return React.createElement(ScriptContext.Provider, {\n value: _assign(_assign({}, state), {\n dispatch: dispatch\n })\n }, children);\n};\n\nvar FUNDING$1 = {\n PAYPAL: 'paypal',\n VENMO: 'venmo',\n APPLEPAY: 'applepay',\n ITAU: 'itau',\n CREDIT: 'credit',\n PAYLATER: 'paylater',\n CARD: 'card',\n IDEAL: 'ideal',\n SEPA: 'sepa',\n BANCONTACT: 'bancontact',\n GIROPAY: 'giropay',\n SOFORT: 'sofort',\n EPS: 'eps',\n MYBANK: 'mybank',\n P24: 'p24',\n VERKKOPANKKI: 'verkkopankki',\n PAYU: 'payu',\n BLIK: 'blik',\n TRUSTLY: 'trustly',\n ZIMPLER: 'zimpler',\n MAXIMA: 'maxima',\n OXXO: 'oxxo',\n BOLETO: 'boleto',\n WECHATPAY: 'wechatpay',\n MERCADOPAGO: 'mercadopago'\n}; // We do not re-export `FUNDING` from the `sdk-constants` module\n// directly because it has no type definitions.\n//\n// See https://github.com/paypal/react-paypal-js/issues/125\n\nvar FUNDING = FUNDING$1;\nexport { BraintreePayPalButtons, DISPATCH_ACTION, FUNDING, PayPalButtons, PayPalMarks, PayPalMessages, PayPalScriptProvider, SCRIPT_LOADING_STATE, ScriptContext, destroySDKScript, getScriptID, scriptReducer, usePayPalScriptReducer };","/* global module, require */\nmodule.exports = require('./load-image');\n\nrequire('./load-image-scale');\n\nrequire('./load-image-meta');\n\nrequire('./load-image-fetch');\n\nrequire('./load-image-exif');\n\nrequire('./load-image-exif-map');\n\nrequire('./load-image-iptc');\n\nrequire('./load-image-iptc-map');\n\nrequire('./load-image-orientation');","var global = require('../internals/global');\n\nvar isObject = require('../internals/is-object');\n\nvar document = global.document; // typeof document.createElement is 'object' in old IE\n\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};","var global = require('../internals/global');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n }\n\n return value;\n};","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString; // this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\n\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;","var IS_PURE = require('../internals/is-pure');\n\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.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});","var getBuiltIn = require('../internals/get-built-in');\n\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\n\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\n\nvar anObject = require('../internals/an-object'); // all object keys, includes non-enumerable and symbols\n\n\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};","// IE8- don't enum bug keys\nmodule.exports = ['constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf'];","exports.f = Object.getOwnPropertySymbols;","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype; // check on default Array iterator\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\ntest[TO_STRING_TAG] = 'z';\nmodule.exports = String(test) === '[object z]';","'use strict';\n\nvar $ = require('../internals/export');\n\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\n\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar redefine = require('../internals/redefine');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar Iterators = require('../internals/iterators');\n\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function returnThis() {\n return this;\n};\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function getIterationMethod(KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS:\n return function keys() {\n return new IteratorConstructor(this, KIND);\n };\n\n case VALUES:\n return function values() {\n return new IteratorConstructor(this, KIND);\n };\n\n case ENTRIES:\n return function entries() {\n return new IteratorConstructor(this, KIND);\n };\n }\n\n return function () {\n return new IteratorConstructor(this);\n };\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] || IterablePrototype['@@iterator'] || 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; // fix native\n\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n } // Set @@toStringTag to native iterators\n\n\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n } // fix Array#{values, @@iterator}.name in V8 / FF\n\n\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n\n defaultIterator = function values() {\n return nativeIterator.call(this);\n };\n } // define iterator\n\n\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n\n Iterators[NAME] = defaultIterator; // export additional methods\n\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({\n target: NAME,\n proto: true,\n forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME\n }, methods);\n }\n\n return methods;\n};","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() {\n /* empty */\n }\n\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\n\nvar redefine = require('../internals/redefine');\n\nvar toString = require('../internals/object-to-string'); // `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n\n\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, {\n unsafe: true\n });\n}","var global = require('../internals/global');\n\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n'use strict';\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n } // Detect buggy property enumeration order in older V8 versions.\n // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\n\n var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\n test1[5] = 'de';\n\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test2 = {};\n\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n\n if (order2.join('') !== '0123456789') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n\n return true;\n } catch (err) {\n // We don't expect any of the above to throw, but better to be safe.\n return false;\n }\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n};","'use strict';\n\nvar toObject = require('../internals/to-object');\n\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar toLength = require('../internals/to-length'); // `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\n\n\nmodule.exports = function fill(value\n/* , start = 0, end = @length */\n) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n\n while (endPos > index) {\n O[index++] = value;\n }\n\n return O;\n};","'use strict';\n\nvar global = require('../internals/global');\n\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar redefineAll = require('../internals/redefine-all');\n\nvar fails = require('../internals/fails');\n\nvar anInstance = require('../internals/an-instance');\n\nvar toInteger = require('../internals/to-integer');\n\nvar toLength = require('../internals/to-length');\n\nvar toIndex = require('../internals/to-index');\n\nvar IEEE754 = require('../internals/ieee754');\n\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar arrayFill = require('../internals/array-fill');\n\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function packInt8(number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function packInt16(number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function packInt32(number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function unpackInt32(buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function packFloat32(number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function packFloat64(number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function addGetter(Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, {\n get: function get() {\n return getInternalState(this)[key];\n }\n });\n};\n\nvar get = function get(view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = bytes.slice(start, start + count);\n return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function set(view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n\n for (var i = 0; i < count; i++) {\n bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n }\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: arrayFill.call(new Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset\n /* , littleEndian */\n ) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset\n /* , littleEndian */\n ) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset\n /* , littleEndian */\n ) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset\n /* , littleEndian */\n ) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset\n /* , littleEndian */\n ) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset\n /* , littleEndian */\n ) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value\n /* , littleEndian */\n ) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value\n /* , littleEndian */\n ) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value\n /* , littleEndian */\n ) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value\n /* , littleEndian */\n ) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value\n /* , littleEndian */\n ) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value\n /* , littleEndian */\n ) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new NativeArrayBuffer(); // eslint-disable-line no-new\n\n new NativeArrayBuffer(1.5); // eslint-disable-line no-new\n\n new NativeArrayBuffer(NaN); // eslint-disable-line no-new\n\n return NativeArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new NativeArrayBuffer(toIndex(length));\n };\n\n var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\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 } // WebKit bug - the same parent prototype for typed arrays and data view\n\n\n if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf($DataViewPrototype, ObjectPrototype);\n } // iOS Safari 7.x bug\n\n\n var testView = new $DataView(new $ArrayBuffer(2));\n var nativeSetInt8 = $DataViewPrototype.setInt8;\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, {\n unsafe: true\n });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};","// `Math.sign` method implementation\n// https://tc39.github.io/ecma262/#sec-math.sign\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};","'use strict';\n\nvar toInteger = require('../internals/to-integer');\n\nvar requireObjectCoercible = require('../internals/require-object-coercible'); // `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\n\n\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n\n for (; n > 0; (n >>>= 1) && (str += str)) {\n if (n & 1) result += str;\n }\n\n return result;\n};","var global = require('../internals/global');\n\nvar fails = require('../internals/fails');\n\nvar classof = require('../internals/classof-raw');\n\nvar bind = require('../internals/function-bind-context');\n\nvar html = require('../internals/html');\n\nvar createElement = require('../internals/document-create-element');\n\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function run(id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function runner(id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function listener(event) {\n run(event.data);\n};\n\nvar post = function post(id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n}; // Node.js 0.9+ & IE10+ has setImmediate, otherwise:\n\n\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n\n while (arguments.length > i) {\n args.push(arguments[i++]);\n }\n\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n\n defer(counter);\n return counter;\n };\n\n clear = function clearImmediate(id) {\n delete queue[id];\n }; // Node.js 0.8-\n\n\n if (classof(process) == 'process') {\n defer = function defer(id) {\n process.nextTick(runner(id));\n }; // Sphere (JS game engine) Dispatch API\n\n } else if (Dispatch && Dispatch.now) {\n defer = function defer(id) {\n Dispatch.now(runner(id));\n }; // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1); // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post) && location.protocol !== 'file:') {\n defer = post;\n global.addEventListener('message', listener, false); // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function defer(id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n }; // Rest old browsers\n\n } else {\n defer = function defer(id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};","var isObject = require('../internals/is-object');\n\nvar classof = require('../internals/classof-raw');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match'); // `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\n\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};","'use strict';\n\nvar fails = require('./fails'); // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\n\n\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n }\n\n return it;\n};","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (e) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (f) {\n /* empty */\n }\n }\n\n return false;\n};","'use strict';\n\nvar charAt = require('../internals/string-multibyte').charAt; // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\n\n\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};","var fails = require('../internals/fails');\n\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = \"\\u200B\\x85\\u180E\"; // check that a method works with the correct list\n// of whitespaces and has a correct name\n\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};","/* eslint-disable no-new */\nvar global = require('../internals/global');\n\nvar fails = require('../internals/fails');\n\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\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 * Lo-Dash 2.3.0 (Custom Build) \n * Build: `lodash modularize modern exports=\"npm\" -o ./npm/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to determine if values are of the language type Object */\nvar objectTypes = {\n 'boolean': false,\n 'function': true,\n 'object': true,\n 'number': false,\n 'string': false,\n 'undefined': false\n};\nmodule.exports = objectTypes;","/**\n * Lo-Dash 2.3.0 (Custom Build) \n * Build: `lodash modularize modern exports=\"npm\" -o ./npm/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar noop = require('lodash.noop'),\n reNative = require('lodash._renative');\n/** Used as the property descriptor for `__bindData__` */\n\n\nvar descriptor = {\n 'configurable': false,\n 'enumerable': false,\n 'value': null,\n 'writable': false\n};\n/** Used to set meta data on functions */\n\nvar defineProperty = function () {\n // IE 8 only accepts DOM elements\n try {\n var o = {},\n func = reNative.test(func = Object.defineProperty) && func,\n result = func(o, o, o) && func;\n } catch (e) {}\n\n return result;\n}();\n/**\n * Sets `this` binding data on a given function.\n *\n * @private\n * @param {Function} func The function to set data on.\n * @param {Array} value The data array to set.\n */\n\n\nvar setBindData = !defineProperty ? noop : function (func, value) {\n descriptor.value = value;\n defineProperty(func, '__bindData__', descriptor);\n};\nmodule.exports = setBindData;","'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n 2: 'need dictionary',\n\n /* Z_NEED_DICT 2 */\n 1: 'stream end',\n\n /* Z_STREAM_END 1 */\n 0: '',\n\n /* Z_OK 0 */\n '-1': 'file error',\n\n /* Z_ERRNO (-1) */\n '-2': 'stream error',\n\n /* Z_STREAM_ERROR (-2) */\n '-3': 'data error',\n\n /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory',\n\n /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error',\n\n /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version'\n /* Z_VERSION_ERROR (-6) */\n\n};","/**\n * @module color-space/hsv\n */\n'use strict';\n\nvar rgb = require('./rgb');\n\nvar hsl = require('./hsl');\n\nmodule.exports = {\n name: 'hsv',\n min: [0, 0, 0],\n max: [360, 100, 100],\n channel: ['hue', 'saturation', 'value'],\n alias: ['HSV', 'HSB'],\n rgb: function rgb(hsv) {\n var h = hsv[0] / 60,\n s = hsv[1] / 100,\n v = hsv[2] / 100,\n hi = Math.floor(h) % 6;\n var f = h - Math.floor(h),\n p = 255 * v * (1 - s),\n q = 255 * v * (1 - s * f),\n t = 255 * v * (1 - s * (1 - f));\n v *= 255;\n\n switch (hi) {\n case 0:\n return [v, t, p];\n\n case 1:\n return [q, v, p];\n\n case 2:\n return [p, v, t];\n\n case 3:\n return [p, q, v];\n\n case 4:\n return [t, p, v];\n\n case 5:\n return [v, p, q];\n }\n },\n hsl: function hsl(hsv) {\n var h = hsv[0],\n s = hsv[1] / 100,\n v = hsv[2] / 100,\n sl,\n l;\n l = (2 - s) * v;\n sl = s * v;\n sl /= l <= 1 ? l : 2 - l;\n sl = sl || 0;\n l /= 2;\n return [h, sl * 100, l * 100];\n }\n}; //append rgb\n\nrgb.hsv = function (rgb) {\n var r = rgb[0],\n g = rgb[1],\n b = rgb[2],\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n delta = max - min,\n h,\n s,\n v;\n\n if (max === 0) {\n s = 0;\n } else {\n s = delta / max * 100;\n }\n\n if (max === min) {\n h = 0;\n } else if (r === max) {\n h = (g - b) / delta;\n } else if (g === max) {\n h = 2 + (b - r) / delta;\n } else if (b === max) {\n h = 4 + (r - g) / delta;\n }\n\n h = Math.min(h * 60, 360);\n\n if (h < 0) {\n h += 360;\n }\n\n v = max / 255 * 1000 / 10;\n return [h, s, v];\n}; //extend hsl\n\n\nhsl.hsv = function (hsl) {\n var h = hsl[0],\n s = hsl[1] / 100,\n l = hsl[2] / 100,\n sv,\n v;\n l *= 2;\n s *= l <= 1 ? l : 2 - l;\n v = (l + s) / 2;\n sv = 2 * s / (l + s) || 0;\n return [h, sv * 100, v * 100];\n};","/**\r\n * Looping function for any framesize.\r\n * Like fmod.\r\n *\r\n * @module mumath/loop\r\n *\r\n */\n'use strict';\n\nmodule.exports = function (value, left, right) {\n //detect single-arg case, like mod-loop or fmod\n if (right === undefined) {\n right = left;\n left = 0;\n } //swap frame order\n\n\n if (left > right) {\n var tmp = right;\n right = left;\n left = tmp;\n }\n\n var frame = right - left;\n value = (value + left) % frame - left;\n if (value < left) value += frame;\n if (value > right) value -= frame;\n return value;\n};","/**\r\n * Clamp value.\r\n * Detects proper clamp min/max.\r\n *\r\n * @param {number} a Current value to cut off\r\n * @param {number} min One side limit\r\n * @param {number} max Other side limit\r\n *\r\n * @return {number} Clamped value\r\n */\n'use strict';\n\nmodule.exports = function (a, min, max) {\n return max > min ? Math.max(Math.min(a, max), min) : Math.max(Math.min(a, min), max);\n};","/**\n * Cylindrical CIE LUV\n *\n * @module color-space/lchuv\n */\n'use strict';\n\nvar luv = require('./luv');\n\nvar xyz = require('./xyz'); //cylindrical luv\n\n\nvar lchuv = module.exports = {\n name: 'lchuv',\n channel: ['lightness', 'chroma', 'hue'],\n alias: ['LCHuv', 'cielchuv'],\n min: [0, 0, 0],\n max: [100, 100, 360],\n luv: function luv(_luv) {\n var l = _luv[0],\n c = _luv[1],\n h = _luv[2],\n u,\n v,\n hr;\n hr = h / 360 * 2 * Math.PI;\n u = c * Math.cos(hr);\n v = c * Math.sin(hr);\n return [l, u, v];\n },\n xyz: function xyz(arg) {\n return luv.xyz(lchuv.luv(arg));\n }\n};\n\nluv.lchuv = function (luv) {\n var l = luv[0],\n u = luv[1],\n v = luv[2];\n var c = Math.sqrt(u * u + v * v);\n var hr = Math.atan2(v, u);\n var h = hr * 360 / 2 / Math.PI;\n\n if (h < 0) {\n h += 360;\n }\n\n return [l, c, h];\n};\n\nxyz.lchuv = function (arg) {\n return luv.lchuv(xyz.luv(arg));\n};","var baseForOwn = require('./_baseForOwn'),\n castFunction = require('./_castFunction');\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n\n\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nmodule.exports = forOwn;","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n/** Detect free variable `exports`. */\n\n\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n/** Detect free variable `module`. */\n\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n/** Detect the popular CommonJS extension `module.exports`. */\n\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n/** Built-in value references. */\n\nvar Buffer = moduleExports ? root.Buffer : undefined;\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n\nvar isBuffer = nativeIsBuffer || stubFalse;\nmodule.exports = isBuffer;","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function (value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;","var freeGlobal = require('./_freeGlobal');\n/** Detect free variable `exports`. */\n\n\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n/** Detect free variable `module`. */\n\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n/** Detect the popular CommonJS extension `module.exports`. */\n\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n/** Detect free variable `process` from Node.js. */\n\nvar freeProcess = moduleExports && freeGlobal.process;\n/** Used to access faster Node.js helpers. */\n\nvar nodeUtil = function () {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n } // Legacy `process.binding('util')` for Node.js < 10.\n\n\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}();\n\nmodule.exports = nodeUtil;","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;\n return value === proto;\n}\n\nmodule.exports = isPrototype;","var overArg = require('./_overArg');\n/** Built-in value references. */\n\n\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\nmodule.exports = getPrototype;","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n} // Add methods to `Stack`.\n\n\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\nmodule.exports = Stack;","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || value !== value && other !== other;\n}\n\nmodule.exports = eq;","var getNative = require('./_getNative'),\n root = require('./_root');\n/* Built-in method references that are verified to be native. */\n\n\nvar Map = getNative(root, 'Map');\nmodule.exports = Map;","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n} // Add methods to `MapCache`.\n\n\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\nmodule.exports = MapCache;","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Built-in value references. */\n\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n\nvar getSymbols = !nativeGetSymbols ? stubArray : function (object) {\n if (object == null) {\n return [];\n }\n\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function (symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\nmodule.exports = getSymbols;","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n/** Used to match property names within property paths. */\n\n\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n\n var type = typeof value;\n\n if (type == 'number' || type == 'symbol' || type == 'boolean' || value == null || isSymbol(value)) {\n return true;\n }\n\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object);\n}\n\nmodule.exports = isKey;","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar symbolTag = '[object Symbol]';\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n\nfunction isSymbol(value) {\n return typeof value == 'symbol' || isObjectLike(value) && baseGetTag(value) == symbolTag;\n}\n\nmodule.exports = isSymbol;","var Uint8Array = require('./_Uint8Array');\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n\n\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Checkboard = undefined;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _checkboard = require('../../helpers/checkboard');\n\nvar checkboard = _interopRequireWildcard(_checkboard);\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar Checkboard = exports.Checkboard = function Checkboard(_ref) {\n var white = _ref.white,\n grey = _ref.grey,\n size = _ref.size,\n renderers = _ref.renderers,\n borderRadius = _ref.borderRadius,\n boxShadow = _ref.boxShadow,\n children = _ref.children;\n var styles = (0, _reactcss2.default)({\n 'default': {\n grid: {\n borderRadius: borderRadius,\n boxShadow: boxShadow,\n absolute: '0px 0px 0px 0px',\n background: 'url(' + checkboard.get(white, grey, size, renderers.canvas) + ') center left'\n }\n }\n });\n return (0, _react.isValidElement)(children) ? _react2.default.cloneElement(children, _extends({}, children.props, {\n style: _extends({}, children.props.style, styles.grid)\n })) : _react2.default.createElement('div', {\n style: styles.grid\n });\n};\n\nCheckboard.defaultProps = {\n size: 8,\n white: 'transparent',\n grey: 'rgba(0,0,0,.08)',\n renderers: {}\n};\nexports.default = Checkboard;","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n} // Add methods to `Stack`.\n\n\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\nmodule.exports = Stack;","var getNative = require('./_getNative'),\n root = require('./_root');\n/* Built-in method references that are verified to be native. */\n\n\nvar Map = getNative(root, 'Map');\nmodule.exports = Map;","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n/** `Object#toString` result references. */\n\n\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n } // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n\n\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n} // Add methods to `MapCache`.\n\n\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\nmodule.exports = MapCache;","var defineProperty = require('./_defineProperty');\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n\n\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;\n return value === proto;\n}\n\nmodule.exports = isPrototype;","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/** Built-in value references. */\n\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n\nvar isArguments = baseIsArguments(function () {\n return arguments;\n}()) ? baseIsArguments : function (value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n};\nmodule.exports = isArguments;","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n/** Detect free variable `exports`. */\n\n\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n/** Detect free variable `module`. */\n\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n/** Detect the popular CommonJS extension `module.exports`. */\n\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n/** Built-in value references. */\n\nvar Buffer = moduleExports ? root.Buffer : undefined;\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n\nvar isBuffer = nativeIsBuffer || stubFalse;\nmodule.exports = isBuffer;","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n/* Node.js helper references. */\n\n\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\nmodule.exports = isTypedArray;","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n/** Used to detect unsigned integer values. */\n\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n\n\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n/** Used to match property names within property paths. */\n\n\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n\n var type = typeof value;\n\n if (type == 'number' || type == 'symbol' || type == 'boolean' || value == null || isSymbol(value)) {\n return true;\n }\n\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object);\n}\n\nmodule.exports = isKey;","var fallbackWindow = {};\n/**\n * Locates the global scope for a browser or browser-like environment. If\n * neither `window` nor `self` is defined by the environment, the same object\n * will be returned on each invocation.\n */\n\nexport function locateWindow() {\n if (typeof window !== \"undefined\") {\n return window;\n } else if (typeof self !== \"undefined\") {\n return self;\n }\n\n return fallbackWindow;\n}",";\n\n(function (root, factory) {\n if (typeof exports === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo; // Reusable object\n\n var W = [];\n /**\n * SHA-1 hash algorithm.\n */\n\n var SHA1 = C_algo.SHA1 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = new WordArray.init([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]);\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcut\n var H = this._hash.words; // Working variables\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4]; // Computation\n\n for (var i = 0; i < 80; i++) {\n if (i < 16) {\n W[i] = M[offset + i] | 0;\n } else {\n var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n W[i] = n << 1 | n >>> 31;\n }\n\n var t = (a << 5 | a >>> 27) + e + W[i];\n\n if (i < 20) {\n t += (b & c | ~b & d) + 0x5a827999;\n } else if (i < 40) {\n t += (b ^ c ^ d) + 0x6ed9eba1;\n } else if (i < 60) {\n t += (b & c | b & d | c & d) - 0x70e44324;\n } else\n /* if (i < 80) */\n {\n t += (b ^ c ^ d) - 0x359d3e2a;\n }\n\n e = d;\n d = c;\n c = b << 30 | b >>> 2;\n b = a;\n a = t;\n } // Intermediate hash value\n\n\n H[0] = H[0] + a | 0;\n H[1] = H[1] + b | 0;\n H[2] = H[2] + c | 0;\n H[3] = H[3] + d | 0;\n H[4] = H[4] + e | 0;\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8; // Add padding\n\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;\n data.sigBytes = dataWords.length * 4; // Hash final blocks\n\n this._process(); // Return final computed hash\n\n\n return this._hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA1('message');\n * var hash = CryptoJS.SHA1(wordArray);\n */\n\n C.SHA1 = Hasher._createHelper(SHA1);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA1(message, key);\n */\n\n C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n })();\n\n return CryptoJS.SHA1;\n});",";\n\n(function (root, factory) {\n if (typeof exports === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var C_enc = C.enc;\n var Utf8 = C_enc.Utf8;\n var C_algo = C.algo;\n /**\n * HMAC algorithm.\n */\n\n var HMAC = C_algo.HMAC = Base.extend({\n /**\n * Initializes a newly created HMAC.\n *\n * @param {Hasher} hasher The hash algorithm to use.\n * @param {WordArray|string} key The secret key.\n *\n * @example\n *\n * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n */\n init: function init(hasher, key) {\n // Init hasher\n hasher = this._hasher = new hasher.init(); // Convert string to WordArray, else assume WordArray already\n\n if (typeof key == 'string') {\n key = Utf8.parse(key);\n } // Shortcuts\n\n\n var hasherBlockSize = hasher.blockSize;\n var hasherBlockSizeBytes = hasherBlockSize * 4; // Allow arbitrary length keys\n\n if (key.sigBytes > hasherBlockSizeBytes) {\n key = hasher.finalize(key);\n } // Clamp excess bits\n\n\n key.clamp(); // Clone key for inner and outer pads\n\n var oKey = this._oKey = key.clone();\n var iKey = this._iKey = key.clone(); // Shortcuts\n\n var oKeyWords = oKey.words;\n var iKeyWords = iKey.words; // XOR keys with pad constants\n\n for (var i = 0; i < hasherBlockSize; i++) {\n oKeyWords[i] ^= 0x5c5c5c5c;\n iKeyWords[i] ^= 0x36363636;\n }\n\n oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes; // Set initial values\n\n this.reset();\n },\n\n /**\n * Resets this HMAC to its initial state.\n *\n * @example\n *\n * hmacHasher.reset();\n */\n reset: function reset() {\n // Shortcut\n var hasher = this._hasher; // Reset\n\n hasher.reset();\n hasher.update(this._iKey);\n },\n\n /**\n * Updates this HMAC with a message.\n *\n * @param {WordArray|string} messageUpdate The message to append.\n *\n * @return {HMAC} This HMAC instance.\n *\n * @example\n *\n * hmacHasher.update('message');\n * hmacHasher.update(wordArray);\n */\n update: function update(messageUpdate) {\n this._hasher.update(messageUpdate); // Chainable\n\n\n return this;\n },\n\n /**\n * Finalizes the HMAC computation.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\n *\n * @return {WordArray} The HMAC.\n *\n * @example\n *\n * var hmac = hmacHasher.finalize();\n * var hmac = hmacHasher.finalize('message');\n * var hmac = hmacHasher.finalize(wordArray);\n */\n finalize: function finalize(messageUpdate) {\n // Shortcut\n var hasher = this._hasher; // Compute HMAC\n\n var innerHash = hasher.finalize(messageUpdate);\n hasher.reset();\n var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n return hmac;\n }\n });\n })();\n});","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function warning() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _implementation = require('./implementation');\n\nvar _implementation2 = _interopRequireDefault(_implementation);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = _react2.default.createContext || _implementation2.default;\nmodule.exports = exports['default'];","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\n\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\n\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\n\n\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n } // NOTE: 1 DOM access here\n\n\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\n\n\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n\n return element.parentNode || element.host;\n}\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\n\n\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n\n case '#document':\n return element.body;\n } // Firefox want us to check `-x` and `-y` variations as well\n\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\n\n\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\n\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n\n if (version === 10) {\n return isIE10;\n }\n\n return isIE11 || isIE10;\n}\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\n\n\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null; // NOTE: 1 DOM access here\n\n var offsetParent = element.offsetParent || null; // Skip hidden elements which don't have an offsetParent\n\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n } // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n\n\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\n\n\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\n\n\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n } // Here we make sure to give as \"start\" the element that comes first in the DOM\n\n\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1; // Get common ancestor container\n\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer; // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n } // one of the nodes is inside shadowDOM, find which one\n\n\n var element1root = getRoot(element1);\n\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\n\n\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\n\n\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar defineProperty = function defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\n\n\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\n\n\nfunction getBoundingClientRect(element) {\n var rect = {}; // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n }; // subtract scrollbar size from sizes\n\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height; // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth); // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0; // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft; // Attach marginTop and marginLeft because in some circumstances we may need them\n\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n return getClientRect(offset);\n}\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\n\n\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n\n var parentNode = getParentNode(element);\n\n if (!parentNode) {\n return false;\n }\n\n return isFixed(parentNode);\n}\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n\n var el = element.parentElement;\n\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n\n return el || document.documentElement;\n}\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\n\n\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; // NOTE: 1 DOM access here\n\n var boundaries = {\n top: 0,\n left: 0\n };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); // Handle viewport case\n\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition); // In case of HTML, we need a different computation\n\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n } // Add paddings\n\n\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n return width * height;\n}\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n var variation = placement.split('-')[1];\n return computedPlacement + (variation ? '-' + variation : '');\n}\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\n\n\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\n\n\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\n\n\nfunction getOppositePlacement(placement) {\n var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\n\n\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0]; // Get popper node sizes\n\n var popperRect = getOuterSizes(popper); // Add position, width and height to our offsets object\n\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n }; // depending by the popper placement we have to compute its offsets slightly differently\n\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\n\n\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n } // use `filter` to obtain the same behavior of `find`\n\n\n return arr.filter(check)[0];\n}\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\n\n\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n } // use `find` + `indexOf` if `findIndex` isn't supported\n\n\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\n\n\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n data = fn(data, modifier);\n }\n });\n return data;\n}\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\n\n\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n }; // compute reference element offsets\n\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); // store the computed placement inside `originalPlacement`\n\n data.originalPlacement = data.placement;\n data.positionFixed = this.options.positionFixed; // compute the popper offsets\n\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute'; // run the modifiers\n\n data = runModifiers(this.modifiers, data); // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\n\n\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\n\n\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n\n return null;\n}\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\n\n\nfunction destroy() {\n this.state.isDestroyed = true; // touch DOM only if `applyStyle` modifier is enabled\n\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners(); // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n\n return this;\n}\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\n\n\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, {\n passive: true\n });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n\n scrollParents.push(target);\n}\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, {\n passive: true\n }); // Scroll event listener on scroll parents\n\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n return state;\n}\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\n\n\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound); // Remove scroll event listener on scroll parents\n\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n }); // Reset state\n\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\n\n\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\n\n\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\n\n\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = ''; // add unit if the value is numeric and is one of the following\n\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n\n element.style[prop] = styles[prop] + unit;\n });\n}\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\n\n\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\n\n\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles); // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n\n setAttributes(data.instance.popper, data.attributes); // if arrowElement is defined and arrowStyles has some properties\n\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\n\n\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n popper.setAttribute('x-placement', placement); // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n\n setStyles(popper, {\n position: options.positionFixed ? 'fixed' : 'absolute'\n });\n return options;\n}\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\n\n\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper; // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent); // Styles\n\n var styles = {\n position: popper.position\n };\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right'; // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n\n var prefixedProperty = getSupportedPropertyName('transform'); // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n\n var left = void 0,\n top = void 0;\n\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n } // Attributes\n\n\n var attributes = {\n 'x-placement': data.placement\n }; // Update `data` attributes, styles and arrowStyles\n\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n return data;\n}\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\n\n\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n\n return isRequired;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction arrow(data, options) {\n var _data$offsets$arrow; // arrow depends on keepTogether in order to work\n\n\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element; // if arrowElement is a string, suppose it's a CSS selector\n\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement); // if arrowElement is not found, don't run the modifier\n\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len]; //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n // top/left side\n\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n } // bottom/right side\n\n\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n\n data.offsets.popper = getClientRect(data.offsets.popper); // compute center of the popper\n\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; // prevent arrowElement from being placed not contiguously to its popper\n\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n return data;\n}\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\n\n\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n\n return variation;\n}\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\n\n\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; // Get rid of `auto` `auto-start` and `auto-end`\n\nvar validPlacements = placements.slice(3);\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\n\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference; // using floor because the reference offsets may contain decimals we are not going to consider here\n\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; // flip the variation if required\n\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; // flips variation if reference element overflows boundaries\n\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); // flips variation if popper content overflows boundaries\n\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : ''); // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\n\n\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2]; // If it's not a number it's an operator, I guess\n\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\n\n\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0]; // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n }); // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n } // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n\n\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; // Convert the values with units to absolute pixels to allow our computations\n\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, []) // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n }); // Loop trough the offsets arrays and execute the operations\n\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var basePlacement = placement.split('-')[0];\n var offsets = void 0;\n\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n } // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n\n\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n options.boundaries = boundaries;\n var order = options.priority;\n var popper = data.offsets.popper;\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n\n return defineProperty({}, mainSide, value);\n }\n };\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n data.offsets.popper = popper;\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1]; // if shift shiftvariation is specified, run the modifier\n\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n return data;\n}\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\n\n\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: offset,\n\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: arrow,\n\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: flip,\n\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: computeStyle,\n\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: applyStyle,\n\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\n\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n// Utils\n// Methods\n\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n }; // make update() debounced, so that it only runs at most once-per-tick\n\n\n this.update = debounce(this.update.bind(this)); // with {} we create a new object with the options inside it\n\n this.options = _extends({}, Popper.Defaults, options); // init state\n\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n }; // get reference and popper elements (allow jQuery wrappers)\n\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper; // Deep merge modifiers options\n\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n }); // Refactoring modifiers' list (Object => Array)\n\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n }) // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n }); // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n }); // fire the first update to position the popper in the right place\n\n this.update();\n var eventsEnabled = this.options.eventsEnabled;\n\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n } // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\nexport default Popper;","!function (e) {\n \"object\" == typeof exports && \"undefined\" != typeof module ? module.exports = e(null) : \"function\" == typeof define && define.amd ? define(e(null)) : window.stylis = e(null);\n}(function e(a) {\n \"use strict\";\n\n var r = /^\\0+/g,\n c = /[\\0\\r\\f]/g,\n s = /: */g,\n t = /zoo|gra/,\n i = /([,: ])(transform)/g,\n f = /,+\\s*(?![^(]*[)])/g,\n n = / +\\s*(?![^(]*[)])/g,\n l = / *[\\0] */g,\n o = /,\\r+?/g,\n h = /([\\t\\r\\n ])*\\f?&/g,\n u = /:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g,\n d = /\\W+/g,\n b = /@(k\\w+)\\s*(\\S*)\\s*/,\n p = /::(place)/g,\n k = /:(read-only)/g,\n g = /\\s+(?=[{\\];=:>])/g,\n A = /([[}=:>])\\s+/g,\n C = /(\\{[^{]+?);(?=\\})/g,\n w = /\\s{2,}/g,\n v = /([^\\(])(:+) */g,\n m = /[svh]\\w+-[tblr]{2}/,\n x = /\\(\\s*(.*)\\s*\\)/g,\n $ = /([\\s\\S]*?);/g,\n y = /-self|flex-/g,\n O = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n j = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n z = /([^-])(image-set\\()/,\n N = \"-webkit-\",\n S = \"-moz-\",\n F = \"-ms-\",\n W = 59,\n q = 125,\n B = 123,\n D = 40,\n E = 41,\n G = 91,\n H = 93,\n I = 10,\n J = 13,\n K = 9,\n L = 64,\n M = 32,\n P = 38,\n Q = 45,\n R = 95,\n T = 42,\n U = 44,\n V = 58,\n X = 39,\n Y = 34,\n Z = 47,\n _ = 62,\n ee = 43,\n ae = 126,\n re = 0,\n ce = 12,\n se = 11,\n te = 107,\n ie = 109,\n fe = 115,\n ne = 112,\n le = 111,\n oe = 105,\n he = 99,\n ue = 100,\n de = 112,\n be = 1,\n pe = 1,\n ke = 0,\n ge = 1,\n Ae = 1,\n Ce = 1,\n we = 0,\n ve = 0,\n me = 0,\n xe = [],\n $e = [],\n ye = 0,\n Oe = null,\n je = -2,\n ze = -1,\n Ne = 0,\n Se = 1,\n Fe = 2,\n We = 3,\n qe = 0,\n Be = 1,\n De = \"\",\n Ee = \"\",\n Ge = \"\";\n\n function He(e, a, s, t, i) {\n for (var f, n, o = 0, h = 0, u = 0, d = 0, g = 0, A = 0, C = 0, w = 0, m = 0, $ = 0, y = 0, O = 0, j = 0, z = 0, R = 0, we = 0, $e = 0, Oe = 0, je = 0, ze = s.length, Je = ze - 1, Re = \"\", Te = \"\", Ue = \"\", Ve = \"\", Xe = \"\", Ye = \"\"; R < ze;) {\n if (C = s.charCodeAt(R), R === Je) if (h + d + u + o !== 0) {\n if (0 !== h) C = h === Z ? I : Z;\n d = u = o = 0, ze++, Je++;\n }\n\n if (h + d + u + o === 0) {\n if (R === Je) {\n if (we > 0) Te = Te.replace(c, \"\");\n\n if (Te.trim().length > 0) {\n switch (C) {\n case M:\n case K:\n case W:\n case J:\n case I:\n break;\n\n default:\n Te += s.charAt(R);\n }\n\n C = W;\n }\n }\n\n if (1 === $e) switch (C) {\n case B:\n case q:\n case W:\n case Y:\n case X:\n case D:\n case E:\n case U:\n $e = 0;\n\n case K:\n case J:\n case I:\n case M:\n break;\n\n default:\n for ($e = 0, je = R, g = C, R--, C = W; je < ze;) {\n switch (s.charCodeAt(je++)) {\n case I:\n case J:\n case W:\n ++R, C = g, je = ze;\n break;\n\n case V:\n if (we > 0) ++R, C = g;\n\n case B:\n je = ze;\n }\n }\n\n }\n\n switch (C) {\n case B:\n for (g = (Te = Te.trim()).charCodeAt(0), y = 1, je = ++R; R < ze;) {\n switch (C = s.charCodeAt(R)) {\n case B:\n y++;\n break;\n\n case q:\n y--;\n break;\n\n case Z:\n switch (A = s.charCodeAt(R + 1)) {\n case T:\n case Z:\n R = Qe(A, R, Je, s);\n }\n\n break;\n\n case G:\n C++;\n\n case D:\n C++;\n\n case Y:\n case X:\n for (; R++ < Je && s.charCodeAt(R) !== C;) {\n ;\n }\n\n }\n\n if (0 === y) break;\n R++;\n }\n\n if (Ue = s.substring(je, R), g === re) g = (Te = Te.replace(r, \"\").trim()).charCodeAt(0);\n\n switch (g) {\n case L:\n if (we > 0) Te = Te.replace(c, \"\");\n\n switch (A = Te.charCodeAt(1)) {\n case ue:\n case ie:\n case fe:\n case Q:\n f = a;\n break;\n\n default:\n f = xe;\n }\n\n if (je = (Ue = He(a, f, Ue, A, i + 1)).length, me > 0 && 0 === je) je = Te.length;\n if (ye > 0) if (f = Ie(xe, Te, Oe), n = Pe(We, Ue, f, a, pe, be, je, A, i, t), Te = f.join(\"\"), void 0 !== n) if (0 === (je = (Ue = n.trim()).length)) A = 0, Ue = \"\";\n if (je > 0) switch (A) {\n case fe:\n Te = Te.replace(x, Me);\n\n case ue:\n case ie:\n case Q:\n Ue = Te + \"{\" + Ue + \"}\";\n break;\n\n case te:\n if (Ue = (Te = Te.replace(b, \"$1 $2\" + (Be > 0 ? De : \"\"))) + \"{\" + Ue + \"}\", 1 === Ae || 2 === Ae && Le(\"@\" + Ue, 3)) Ue = \"@\" + N + Ue + \"@\" + Ue;else Ue = \"@\" + Ue;\n break;\n\n default:\n if (Ue = Te + Ue, t === de) Ve += Ue, Ue = \"\";\n } else Ue = \"\";\n break;\n\n default:\n Ue = He(a, Ie(a, Te, Oe), Ue, t, i + 1);\n }\n\n Xe += Ue, O = 0, $e = 0, z = 0, we = 0, Oe = 0, j = 0, Te = \"\", Ue = \"\", C = s.charCodeAt(++R);\n break;\n\n case q:\n case W:\n if ((je = (Te = (we > 0 ? Te.replace(c, \"\") : Te).trim()).length) > 1) {\n if (0 === z) if ((g = Te.charCodeAt(0)) === Q || g > 96 && g < 123) je = (Te = Te.replace(\" \", \":\")).length;\n if (ye > 0) if (void 0 !== (n = Pe(Se, Te, a, e, pe, be, Ve.length, t, i, t))) if (0 === (je = (Te = n.trim()).length)) Te = \"\\0\\0\";\n\n switch (g = Te.charCodeAt(0), A = Te.charCodeAt(1), g) {\n case re:\n break;\n\n case L:\n if (A === oe || A === he) {\n Ye += Te + s.charAt(R);\n break;\n }\n\n default:\n if (Te.charCodeAt(je - 1) === V) break;\n Ve += Ke(Te, g, A, Te.charCodeAt(2));\n }\n }\n\n O = 0, $e = 0, z = 0, we = 0, Oe = 0, Te = \"\", C = s.charCodeAt(++R);\n }\n }\n\n switch (C) {\n case J:\n case I:\n if (h + d + u + o + ve === 0) switch ($) {\n case E:\n case X:\n case Y:\n case L:\n case ae:\n case _:\n case T:\n case ee:\n case Z:\n case Q:\n case V:\n case U:\n case W:\n case B:\n case q:\n break;\n\n default:\n if (z > 0) $e = 1;\n }\n if (h === Z) h = 0;else if (ge + O === 0 && t !== te && Te.length > 0) we = 1, Te += \"\\0\";\n if (ye * qe > 0) Pe(Ne, Te, a, e, pe, be, Ve.length, t, i, t);\n be = 1, pe++;\n break;\n\n case W:\n case q:\n if (h + d + u + o === 0) {\n be++;\n break;\n }\n\n default:\n switch (be++, Re = s.charAt(R), C) {\n case K:\n case M:\n if (d + o + h === 0) switch (w) {\n case U:\n case V:\n case K:\n case M:\n Re = \"\";\n break;\n\n default:\n if (C !== M) Re = \" \";\n }\n break;\n\n case re:\n Re = \"\\\\0\";\n break;\n\n case ce:\n Re = \"\\\\f\";\n break;\n\n case se:\n Re = \"\\\\v\";\n break;\n\n case P:\n if (d + h + o === 0 && ge > 0) Oe = 1, we = 1, Re = \"\\f\" + Re;\n break;\n\n case 108:\n if (d + h + o + ke === 0 && z > 0) switch (R - z) {\n case 2:\n if (w === ne && s.charCodeAt(R - 3) === V) ke = w;\n\n case 8:\n if (m === le) ke = m;\n }\n break;\n\n case V:\n if (d + h + o === 0) z = R;\n break;\n\n case U:\n if (h + u + d + o === 0) we = 1, Re += \"\\r\";\n break;\n\n case Y:\n case X:\n if (0 === h) d = d === C ? 0 : 0 === d ? C : d;\n break;\n\n case G:\n if (d + h + u === 0) o++;\n break;\n\n case H:\n if (d + h + u === 0) o--;\n break;\n\n case E:\n if (d + h + o === 0) u--;\n break;\n\n case D:\n if (d + h + o === 0) {\n if (0 === O) switch (2 * w + 3 * m) {\n case 533:\n break;\n\n default:\n y = 0, O = 1;\n }\n u++;\n }\n\n break;\n\n case L:\n if (h + u + d + o + z + j === 0) j = 1;\n break;\n\n case T:\n case Z:\n if (d + o + u > 0) break;\n\n switch (h) {\n case 0:\n switch (2 * C + 3 * s.charCodeAt(R + 1)) {\n case 235:\n h = Z;\n break;\n\n case 220:\n je = R, h = T;\n }\n\n break;\n\n case T:\n if (C === Z && w === T && je + 2 !== R) {\n if (33 === s.charCodeAt(je + 2)) Ve += s.substring(je, R + 1);\n Re = \"\", h = 0;\n }\n\n }\n\n }\n\n if (0 === h) {\n if (ge + d + o + j === 0 && t !== te && C !== W) switch (C) {\n case U:\n case ae:\n case _:\n case ee:\n case E:\n case D:\n if (0 === O) {\n switch (w) {\n case K:\n case M:\n case I:\n case J:\n Re += \"\\0\";\n break;\n\n default:\n Re = \"\\0\" + Re + (C === U ? \"\" : \"\\0\");\n }\n\n we = 1;\n } else switch (C) {\n case D:\n if (z + 7 === R && 108 === w) z = 0;\n O = ++y;\n break;\n\n case E:\n if (0 == (O = --y)) we = 1, Re += \"\\0\";\n }\n\n break;\n\n case K:\n case M:\n switch (w) {\n case re:\n case B:\n case q:\n case W:\n case U:\n case ce:\n case K:\n case M:\n case I:\n case J:\n break;\n\n default:\n if (0 === O) we = 1, Re += \"\\0\";\n }\n\n }\n if (Te += Re, C !== M && C !== K) $ = C;\n }\n\n }\n\n m = w, w = C, R++;\n }\n\n if (je = Ve.length, me > 0) if (0 === je && 0 === Xe.length && 0 === a[0].length == false) if (t !== ie || 1 === a.length && (ge > 0 ? Ee : Ge) === a[0]) je = a.join(\",\").length + 2;\n\n if (je > 0) {\n if (f = 0 === ge && t !== te ? function (e) {\n for (var a, r, s = 0, t = e.length, i = Array(t); s < t; ++s) {\n for (var f = e[s].split(l), n = \"\", o = 0, h = 0, u = 0, d = 0, b = f.length; o < b; ++o) {\n if (0 === (h = (r = f[o]).length) && b > 1) continue;\n if (u = n.charCodeAt(n.length - 1), d = r.charCodeAt(0), a = \"\", 0 !== o) switch (u) {\n case T:\n case ae:\n case _:\n case ee:\n case M:\n case D:\n break;\n\n default:\n a = \" \";\n }\n\n switch (d) {\n case P:\n r = a + Ee;\n\n case ae:\n case _:\n case ee:\n case M:\n case E:\n case D:\n break;\n\n case G:\n r = a + r + Ee;\n break;\n\n case V:\n switch (2 * r.charCodeAt(1) + 3 * r.charCodeAt(2)) {\n case 530:\n if (Ce > 0) {\n r = a + r.substring(8, h - 1);\n break;\n }\n\n default:\n if (o < 1 || f[o - 1].length < 1) r = a + Ee + r;\n }\n\n break;\n\n case U:\n a = \"\";\n\n default:\n if (h > 1 && r.indexOf(\":\") > 0) r = a + r.replace(v, \"$1\" + Ee + \"$2\");else r = a + r + Ee;\n }\n\n n += r;\n }\n\n i[s] = n.replace(c, \"\").trim();\n }\n\n return i;\n }(a) : a, ye > 0) if (void 0 !== (n = Pe(Fe, Ve, f, e, pe, be, je, t, i, t)) && 0 === (Ve = n).length) return Ye + Ve + Xe;\n\n if (Ve = f.join(\",\") + \"{\" + Ve + \"}\", Ae * ke != 0) {\n if (2 === Ae && !Le(Ve, 2)) ke = 0;\n\n switch (ke) {\n case le:\n Ve = Ve.replace(k, \":\" + S + \"$1\") + Ve;\n break;\n\n case ne:\n Ve = Ve.replace(p, \"::\" + N + \"input-$1\") + Ve.replace(p, \"::\" + S + \"$1\") + Ve.replace(p, \":\" + F + \"input-$1\") + Ve;\n }\n\n ke = 0;\n }\n }\n\n return Ye + Ve + Xe;\n }\n\n function Ie(e, a, r) {\n var c = a.trim().split(o),\n s = c,\n t = c.length,\n i = e.length;\n\n switch (i) {\n case 0:\n case 1:\n for (var f = 0, n = 0 === i ? \"\" : e[0] + \" \"; f < t; ++f) {\n s[f] = Je(n, s[f], r, i).trim();\n }\n\n break;\n\n default:\n f = 0;\n var l = 0;\n\n for (s = []; f < t; ++f) {\n for (var h = 0; h < i; ++h) {\n s[l++] = Je(e[h] + \" \", c[f], r, i).trim();\n }\n }\n\n }\n\n return s;\n }\n\n function Je(e, a, r, c) {\n var s = a,\n t = s.charCodeAt(0);\n if (t < 33) t = (s = s.trim()).charCodeAt(0);\n\n switch (t) {\n case P:\n switch (ge + c) {\n case 0:\n case 1:\n if (0 === e.trim().length) break;\n\n default:\n return s.replace(h, \"$1\" + e.trim());\n }\n\n break;\n\n case V:\n switch (s.charCodeAt(1)) {\n case 103:\n if (Ce > 0 && ge > 0) return s.replace(u, \"$1\").replace(h, \"$1\" + Ge);\n break;\n\n default:\n return e.trim() + s.replace(h, \"$1\" + e.trim());\n }\n\n default:\n if (r * ge > 0 && s.indexOf(\"\\f\") > 0) return s.replace(h, (e.charCodeAt(0) === V ? \"\" : \"$1\") + e.trim());\n }\n\n return e + s;\n }\n\n function Ke(e, a, r, c) {\n var l,\n o = 0,\n h = e + \";\",\n u = 2 * a + 3 * r + 4 * c;\n if (944 === u) return function (e) {\n var a = e.length,\n r = e.indexOf(\":\", 9) + 1,\n c = e.substring(0, r).trim(),\n s = e.substring(r, a - 1).trim();\n\n switch (e.charCodeAt(9) * Be) {\n case 0:\n break;\n\n case Q:\n if (110 !== e.charCodeAt(10)) break;\n\n default:\n for (var t = s.split((s = \"\", f)), i = 0, r = 0, a = t.length; i < a; r = 0, ++i) {\n for (var l = t[i], o = l.split(n); l = o[r];) {\n var h = l.charCodeAt(0);\n if (1 === Be && (h > L && h < 90 || h > 96 && h < 123 || h === R || h === Q && l.charCodeAt(1) !== Q)) switch (isNaN(parseFloat(l)) + (-1 !== l.indexOf(\"(\"))) {\n case 1:\n switch (l) {\n case \"infinite\":\n case \"alternate\":\n case \"backwards\":\n case \"running\":\n case \"normal\":\n case \"forwards\":\n case \"both\":\n case \"none\":\n case \"linear\":\n case \"ease\":\n case \"ease-in\":\n case \"ease-out\":\n case \"ease-in-out\":\n case \"paused\":\n case \"reverse\":\n case \"alternate-reverse\":\n case \"inherit\":\n case \"initial\":\n case \"unset\":\n case \"step-start\":\n case \"step-end\":\n break;\n\n default:\n l += De;\n }\n\n }\n o[r++] = l;\n }\n\n s += (0 === i ? \"\" : \",\") + o.join(\" \");\n }\n\n }\n\n if (s = c + s + \";\", 1 === Ae || 2 === Ae && Le(s, 1)) return N + s + s;\n return s;\n }(h);else if (0 === Ae || 2 === Ae && !Le(h, 1)) return h;\n\n switch (u) {\n case 1015:\n return 97 === h.charCodeAt(10) ? N + h + h : h;\n\n case 951:\n return 116 === h.charCodeAt(3) ? N + h + h : h;\n\n case 963:\n return 110 === h.charCodeAt(5) ? N + h + h : h;\n\n case 1009:\n if (100 !== h.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return N + h + h;\n\n case 978:\n return N + h + S + h + h;\n\n case 1019:\n case 983:\n return N + h + S + h + F + h + h;\n\n case 883:\n if (h.charCodeAt(8) === Q) return N + h + h;\n if (h.indexOf(\"image-set(\", 11) > 0) return h.replace(z, \"$1\" + N + \"$2\") + h;\n return h;\n\n case 932:\n if (h.charCodeAt(4) === Q) switch (h.charCodeAt(5)) {\n case 103:\n return N + \"box-\" + h.replace(\"-grow\", \"\") + N + h + F + h.replace(\"grow\", \"positive\") + h;\n\n case 115:\n return N + h + F + h.replace(\"shrink\", \"negative\") + h;\n\n case 98:\n return N + h + F + h.replace(\"basis\", \"preferred-size\") + h;\n }\n return N + h + F + h + h;\n\n case 964:\n return N + h + F + \"flex-\" + h + h;\n\n case 1023:\n if (99 !== h.charCodeAt(8)) break;\n return l = h.substring(h.indexOf(\":\", 15)).replace(\"flex-\", \"\").replace(\"space-between\", \"justify\"), N + \"box-pack\" + l + N + h + F + \"flex-pack\" + l + h;\n\n case 1005:\n return t.test(h) ? h.replace(s, \":\" + N) + h.replace(s, \":\" + S) + h : h;\n\n case 1e3:\n switch (o = (l = h.substring(13).trim()).indexOf(\"-\") + 1, l.charCodeAt(0) + l.charCodeAt(o)) {\n case 226:\n l = h.replace(m, \"tb\");\n break;\n\n case 232:\n l = h.replace(m, \"tb-rl\");\n break;\n\n case 220:\n l = h.replace(m, \"lr\");\n break;\n\n default:\n return h;\n }\n\n return N + h + F + l + h;\n\n case 1017:\n if (-1 === h.indexOf(\"sticky\", 9)) return h;\n\n case 975:\n switch (o = (h = e).length - 10, u = (l = (33 === h.charCodeAt(o) ? h.substring(0, o) : h).substring(e.indexOf(\":\", 7) + 1).trim()).charCodeAt(0) + (0 | l.charCodeAt(7))) {\n case 203:\n if (l.charCodeAt(8) < 111) break;\n\n case 115:\n h = h.replace(l, N + l) + \";\" + h;\n break;\n\n case 207:\n case 102:\n h = h.replace(l, N + (u > 102 ? \"inline-\" : \"\") + \"box\") + \";\" + h.replace(l, N + l) + \";\" + h.replace(l, F + l + \"box\") + \";\" + h;\n }\n\n return h + \";\";\n\n case 938:\n if (h.charCodeAt(5) === Q) switch (h.charCodeAt(6)) {\n case 105:\n return l = h.replace(\"-items\", \"\"), N + h + N + \"box-\" + l + F + \"flex-\" + l + h;\n\n case 115:\n return N + h + F + \"flex-item-\" + h.replace(y, \"\") + h;\n\n default:\n return N + h + F + \"flex-line-pack\" + h.replace(\"align-content\", \"\").replace(y, \"\") + h;\n }\n break;\n\n case 973:\n case 989:\n if (h.charCodeAt(3) !== Q || 122 === h.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (true === j.test(e)) if (115 === (l = e.substring(e.indexOf(\":\") + 1)).charCodeAt(0)) return Ke(e.replace(\"stretch\", \"fill-available\"), a, r, c).replace(\":fill-available\", \":stretch\");else return h.replace(l, N + l) + h.replace(l, S + l.replace(\"fill-\", \"\")) + h;\n break;\n\n case 962:\n if (h = N + h + (102 === h.charCodeAt(5) ? F + h : \"\") + h, r + c === 211 && 105 === h.charCodeAt(13) && h.indexOf(\"transform\", 10) > 0) return h.substring(0, h.indexOf(\";\", 27) + 1).replace(i, \"$1\" + N + \"$2\") + h;\n }\n\n return h;\n }\n\n function Le(e, a) {\n var r = e.indexOf(1 === a ? \":\" : \"{\"),\n c = e.substring(0, 3 !== a ? r : 10),\n s = e.substring(r + 1, e.length - 1);\n return Oe(2 !== a ? c : c.replace(O, \"$1\"), s, a);\n }\n\n function Me(e, a) {\n var r = Ke(a, a.charCodeAt(0), a.charCodeAt(1), a.charCodeAt(2));\n return r !== a + \";\" ? r.replace($, \" or ($1)\").substring(4) : \"(\" + a + \")\";\n }\n\n function Pe(e, a, r, c, s, t, i, f, n, l) {\n for (var o, h = 0, u = a; h < ye; ++h) {\n switch (o = $e[h].call(Te, e, u, r, c, s, t, i, f, n, l)) {\n case void 0:\n case false:\n case true:\n case null:\n break;\n\n default:\n u = o;\n }\n }\n\n if (u !== a) return u;\n }\n\n function Qe(e, a, r, c) {\n for (var s = a + 1; s < r; ++s) {\n switch (c.charCodeAt(s)) {\n case Z:\n if (e === T) if (c.charCodeAt(s - 1) === T && a + 2 !== s) return s + 1;\n break;\n\n case I:\n if (e === Z) return s + 1;\n }\n }\n\n return s;\n }\n\n function Re(e) {\n for (var a in e) {\n var r = e[a];\n\n switch (a) {\n case \"keyframe\":\n Be = 0 | r;\n break;\n\n case \"global\":\n Ce = 0 | r;\n break;\n\n case \"cascade\":\n ge = 0 | r;\n break;\n\n case \"compress\":\n we = 0 | r;\n break;\n\n case \"semicolon\":\n ve = 0 | r;\n break;\n\n case \"preserve\":\n me = 0 | r;\n break;\n\n case \"prefix\":\n if (Oe = null, !r) Ae = 0;else if (\"function\" != typeof r) Ae = 1;else Ae = 2, Oe = r;\n }\n }\n\n return Re;\n }\n\n function Te(a, r) {\n if (void 0 !== this && this.constructor === Te) return e(a);\n var s = a,\n t = s.charCodeAt(0);\n if (t < 33) t = (s = s.trim()).charCodeAt(0);\n if (Be > 0) De = s.replace(d, t === G ? \"\" : \"-\");\n if (t = 1, 1 === ge) Ge = s;else Ee = s;\n var i,\n f = [Ge];\n if (ye > 0) if (void 0 !== (i = Pe(ze, r, f, f, pe, be, 0, 0, 0, 0)) && \"string\" == typeof i) r = i;\n var n = He(xe, f, r, 0, 0);\n if (ye > 0) if (void 0 !== (i = Pe(je, n, f, f, pe, be, n.length, 0, 0, 0)) && \"string\" != typeof (n = i)) t = 0;\n return De = \"\", Ge = \"\", Ee = \"\", ke = 0, pe = 1, be = 1, we * t == 0 ? n : n.replace(c, \"\").replace(g, \"\").replace(A, \"$1\").replace(C, \"$1\").replace(w, \" \");\n }\n\n if (Te.use = function e(a) {\n switch (a) {\n case void 0:\n case null:\n ye = $e.length = 0;\n break;\n\n default:\n if (\"function\" == typeof a) $e[ye++] = a;else if (\"object\" == typeof a) for (var r = 0, c = a.length; r < c; ++r) {\n e(a[r]);\n } else qe = 0 | !!a;\n }\n\n return e;\n }, Te.set = Re, void 0 !== a) Re(a);\n return Te;\n});","function areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) {\n isEqual = areInputsEqual;\n }\n\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n\n function memoized() {\n var newArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n\n return memoized;\n}\n\nexport default memoizeOne;","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","var isarray = require('isarray');\n/**\n * Expose `pathToRegexp`.\n */\n\n\nmodule.exports = pathToRegexp;\nmodule.exports.parse = parse;\nmodule.exports.compile = compile;\nmodule.exports.tokensToFunction = tokensToFunction;\nmodule.exports.tokensToRegExp = tokensToRegExp;\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\n\nvar PATH_REGEXP = new RegExp([// Match escaped characters that would otherwise appear in future matches.\n// This allows the user to escape special characters that won't transform.\n'(\\\\\\\\.)', // Match Express-style parameters and un-named parameters with a prefix\n// and optional suffixes. Matches appear as:\n//\n// \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n// \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n// \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n'([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'].join('|'), 'g');\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\n\nfunction parse(str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length; // Ignore already escaped sequences.\n\n if (escaped) {\n path += escaped[1];\n continue;\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7]; // Push the current path onto the tokens.\n\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?'\n });\n } // Match any characters still remaining.\n\n\n if (index < str.length) {\n path += str.substr(index);\n } // If the path exists, push it onto the end.\n\n\n if (path) {\n tokens.push(path);\n }\n\n return tokens;\n}\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\n\n\nfunction compile(str, options) {\n return tokensToFunction(parse(str, options), options);\n}\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\n\n\nfunction encodeURIComponentPretty(str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\n\n\nfunction encodeAsterisk(str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n/**\n * Expose a method for transforming tokens into the path function.\n */\n\n\nfunction tokensToFunction(tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length); // Compile all the patterns before compilation.\n\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n continue;\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue;\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined');\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`');\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue;\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty');\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`');\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue;\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"');\n }\n\n path += token.prefix + segment;\n }\n\n return path;\n };\n}\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\n\n\nfunction escapeString(str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1');\n}\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\n\n\nfunction escapeGroup(group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1');\n}\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\n\n\nfunction attachKeys(re, keys) {\n re.keys = keys;\n return re;\n}\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\n\n\nfunction flags(options) {\n return options && options.sensitive ? '' : 'i';\n}\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\n\n\nfunction regexpToRegexp(path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys);\n}\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\n\n\nfunction arrayToRegexp(path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n return attachKeys(regexp, keys);\n}\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\n\n\nfunction stringToRegexp(path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options);\n}\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\n\n\nfunction tokensToRegExp(tokens, keys, options) {\n if (!isarray(keys)) {\n options =\n /** @type {!Object} */\n keys || options;\n keys = [];\n }\n\n options = options || {};\n var strict = options.strict;\n var end = options.end !== false;\n var route = ''; // Iterate over the tokens and create our regexp string.\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter; // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys);\n}\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\n\n\nfunction pathToRegexp(path, keys, options) {\n if (!isarray(keys)) {\n options =\n /** @type {!Object} */\n keys || options;\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path,\n /** @type {!Array} */\n keys);\n }\n\n if (isarray(path)) {\n return arrayToRegexp(\n /** @type {!Array} */\n path,\n /** @type {!Array} */\n keys, options);\n }\n\n return stringToRegexp(\n /** @type {string} */\n path,\n /** @type {!Array} */\n keys, options);\n}","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\"; // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n prototype[method] = function (arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\"; // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n Gp[iteratorSymbol] = function () {\n return this;\n };\n\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n }; // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n\n return exports;\n}( // If this script is executing as a CommonJS module, use module.exports\n// as the regeneratorRuntime namespace. Otherwise create a new empty\n// object. Either way, the resulting object will be used to initialize\n// the regeneratorRuntime variable at the top of this file.\ntypeof module === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}","'use strict';\n\nvar collection = require('../internals/collection');\n\nvar collectionStrong = require('../internals/collection-strong'); // `Map` constructor\n// https://tc39.github.io/ecma262/#sec-map-objects\n\n\nmodule.exports = collection('Map', function (init) {\n return function Map() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n}, collectionStrong);","var DESCRIPTORS = require('../internals/descriptors');\n\nvar fails = require('../internals/fails');\n\nvar createElement = require('../internals/document-create-element'); // Thank's IE8 for his funny defineProperty\n\n\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function get() {\n return 7;\n }\n }).a != 7;\n});","var global = require('../internals/global');\n\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\nmodule.exports = store;","var global = require('../internals/global');\n\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));","var has = require('../internals/has');\n\nvar ownKeys = require('../internals/own-keys');\n\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\n\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};","var global = require('../internals/global');\n\nmodule.exports = global;","var has = require('../internals/has');\n\nvar toIndexedObject = require('../internals/to-indexed-object');\n\nvar indexOf = require('../internals/array-includes').indexOf;\n\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n\n for (key in O) {\n !has(hiddenKeys, key) && has(O, key) && result.push(key);\n } // Don't enum bug & hidden keys\n\n\n while (names.length > i) {\n if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n }\n\n return result;\n};","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL // eslint-disable-next-line no-undef\n&& !Symbol.sham // eslint-disable-next-line no-undef\n&& typeof Symbol.iterator == 'symbol';","var anObject = require('../internals/an-object'); // call something on iterator step with safe closing on error\n\n\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n }\n\n return it;\n};","'use strict';\n\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar create = require('../internals/object-create');\n\nvar redefineAll = require('../internals/redefine-all');\n\nvar bind = require('../internals/function-bind-context');\n\nvar anInstance = require('../internals/an-instance');\n\nvar iterate = require('../internals/iterate');\n\nvar defineIterator = require('../internals/define-iterator');\n\nvar setSpecies = require('../internals/set-species');\n\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar fastKey = require('../internals/internal-metadata').fastKey;\n\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nmodule.exports = {\n getConstructor: function getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\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 (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n });\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function define(that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index; // change existing entry\n\n if (entry) {\n entry.value = value; // 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++;else that.size++; // add to index\n\n if (index !== 'F') state.index[index] = entry;\n }\n\n return that;\n };\n\n var getEntry = function getEntry(that, key) {\n var state = getInternalState(that); // fast case\n\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index]; // frozen object case\n\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 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\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\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;else that.size = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function _delete(key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n\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--;else that.size--;\n }\n\n return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn\n /* , that = undefined */\n ) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this); // revert to the last existing entry\n\n while (entry && entry.removed) {\n entry = entry.previous;\n }\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n redefineAll(C.prototype, IS_MAP ? {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function get() {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function setStrong(C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME); // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n\n defineIterator(C, 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; // revert to the last existing entry\n\n while (entry && entry.removed) {\n entry = entry.previous;\n } // get next entry\n\n\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return {\n value: undefined,\n done: true\n };\n } // return step by kind\n\n\n if (kind == 'keys') return {\n value: entry.key,\n done: false\n };\n if (kind == 'values') return {\n value: entry.value,\n done: false\n };\n return {\n value: [entry.key, entry.value],\n done: false\n };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); // add [@@species], 23.1.2.2, 23.2.2.2\n\n setSpecies(CONSTRUCTOR_NAME);\n }\n};","var DESCRIPTORS = require('../internals/descriptors');\n\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar anObject = require('../internals/an-object');\n\nvar objectKeys = require('../internals/object-keys'); // `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\n\n\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n\n while (length > index) {\n definePropertyModule.f(O, key = keys[index++], Properties[key]);\n }\n\n return O;\n};","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');","'use strict';\n\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\n\nvar create = require('../internals/object-create');\n\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function returnThis() {\n return this;\n};\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, {\n next: createPropertyDescriptor(1, next)\n });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};","'use strict';\n\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar has = require('../internals/has');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function returnThis() {\n return this;\n}; // `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\n\n\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys(); // Safari 8 has buggy iterators w/o `next`\n\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {}; // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};","'use strict';\n\nvar collection = require('../internals/collection');\n\nvar collectionStrong = require('../internals/collection-strong'); // `Set` constructor\n// https://tc39.github.io/ecma262/#sec-set-objects\n\n\nmodule.exports = collection('Set', function (init) {\n return function Set() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n}, collectionStrong);","'use strict';\n\nvar anObject = require('../internals/an-object');\n\nvar aFunction = require('../internals/a-function'); // https://github.com/tc39/collection-methods\n\n\nmodule.exports = function ()\n/* ...elements */\n{\n var collection = anObject(this);\n var remover = aFunction(collection['delete']);\n var allDeleted = true;\n var wasDeleted;\n\n for (var k = 0, len = arguments.length; k < len; k++) {\n wasDeleted = remover.call(collection, arguments[k]);\n allDeleted = allDeleted && wasDeleted;\n }\n\n return !!allDeleted;\n};","'use strict'; // https://tc39.github.io/proposal-setmap-offrom/\n\nvar aFunction = require('../internals/a-function');\n\nvar bind = require('../internals/function-bind-context');\n\nvar iterate = require('../internals/iterate');\n\nmodule.exports = function from(source\n/* , mapFn, thisArg */\n) {\n var length = arguments.length;\n var mapFn = length > 1 ? arguments[1] : undefined;\n var mapping, A, n, boundFunction;\n aFunction(this);\n mapping = mapFn !== undefined;\n if (mapping) aFunction(mapFn);\n if (source == undefined) return new this();\n A = [];\n\n if (mapping) {\n n = 0;\n boundFunction = bind(mapFn, length > 2 ? arguments[2] : undefined, 2);\n iterate(source, function (nextItem) {\n A.push(boundFunction(nextItem, n++));\n });\n } else {\n iterate(source, A.push, A);\n }\n\n return new this(A);\n};","'use strict'; // https://tc39.github.io/proposal-setmap-offrom/\n\nmodule.exports = function of() {\n var length = arguments.length;\n var A = new Array(length);\n\n while (length--) {\n A[length] = arguments[length];\n }\n\n return new this(A);\n};","var global = require('../internals/global');\n\nvar DOMIterables = require('../internals/dom-iterables');\n\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};","/**\n * Copyright (c) 2015-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nrequire(\"core-js/modules/es.symbol\");\n\nrequire(\"core-js/modules/es.symbol.description\");\n\nrequire(\"core-js/modules/es.symbol.async-iterator\");\n\nrequire(\"core-js/modules/es.symbol.has-instance\");\n\nrequire(\"core-js/modules/es.symbol.is-concat-spreadable\");\n\nrequire(\"core-js/modules/es.symbol.iterator\");\n\nrequire(\"core-js/modules/es.symbol.match\");\n\nrequire(\"core-js/modules/es.symbol.replace\");\n\nrequire(\"core-js/modules/es.symbol.search\");\n\nrequire(\"core-js/modules/es.symbol.species\");\n\nrequire(\"core-js/modules/es.symbol.split\");\n\nrequire(\"core-js/modules/es.symbol.to-primitive\");\n\nrequire(\"core-js/modules/es.symbol.to-string-tag\");\n\nrequire(\"core-js/modules/es.symbol.unscopables\");\n\nrequire(\"core-js/modules/es.array.concat\");\n\nrequire(\"core-js/modules/es.array.from\");\n\nrequire(\"core-js/modules/es.json.to-string-tag\");\n\nrequire(\"core-js/modules/es.math.to-string-tag\");\n\nrequire(\"core-js/modules/es.object.to-string\");\n\nrequire(\"core-js/modules/es.string.iterator\");\n\nrequire(\"core-js/modules/esnext.symbol.dispose\");\n\nrequire(\"core-js/modules/esnext.symbol.observable\");\n\nrequire(\"core-js/modules/esnext.symbol.pattern-match\");\n\nif (typeof Promise === 'undefined') {\n // Rejection tracking prevents a common issue where React gets into an\n // inconsistent state due to an error, but it gets swallowed by a Promise,\n // and the user has no idea what causes React's erratic future behavior.\n require('promise/lib/rejection-tracking').enable();\n\n self.Promise = require('promise/lib/es6-extensions.js');\n} // Make sure we're in a Browser-like environment before importing polyfills\n// This prevents `fetch()` from being imported in a Node test environment\n\n\nif (typeof window !== 'undefined') {\n // fetch() polyfill for making API calls.\n require('whatwg-fetch');\n} // Object.assign() is commonly used with React.\n// It will use the native implementation if it's present and isn't buggy.\n\n\nObject.assign = require('object-assign'); // Support for...of (a commonly used syntax feature that requires Symbols)","'use strict';\n\nvar $ = require('../internals/export');\n\nvar global = require('../internals/global');\n\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar fails = require('../internals/fails');\n\nvar has = require('../internals/has');\n\nvar isArray = require('../internals/is-array');\n\nvar isObject = require('../internals/is-object');\n\nvar anObject = require('../internals/an-object');\n\nvar toObject = require('../internals/to-object');\n\nvar toIndexedObject = require('../internals/to-indexed-object');\n\nvar toPrimitive = require('../internals/to-primitive');\n\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nvar nativeObjectCreate = require('../internals/object-create');\n\nvar objectKeys = require('../internals/object-keys');\n\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\n\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\n\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\n\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\n\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar redefine = require('../internals/redefine');\n\nvar shared = require('../internals/shared');\n\nvar sharedKey = require('../internals/shared-key');\n\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar uid = require('../internals/uid');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\n\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar InternalStateModule = require('../internals/internal-state');\n\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject; // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\n\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\n\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function get() {\n return nativeDefineProperty(this, 'a', {\n value: 7\n }).a;\n }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function wrap(tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, {\n enumerable: createPropertyDescriptor(0, false)\n });\n }\n\n return setSymbolDescriptor(O, key, Attributes);\n }\n\n return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n}; // `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\n\n\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n\n var setter = function setter(value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, {\n configurable: true,\n set: setter\n });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, {\n unsafe: true\n });\n }\n }\n}\n\n$({\n global: true,\n wrap: true,\n forced: !NATIVE_SYMBOL,\n sham: !NATIVE_SYMBOL\n}, {\n Symbol: $Symbol\n});\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n$({\n target: SYMBOL,\n stat: true,\n forced: !NATIVE_SYMBOL\n}, {\n // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function _for(key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function useSetter() {\n USE_SETTER = true;\n },\n useSimple: function useSimple() {\n USE_SETTER = false;\n }\n});\n$({\n target: 'Object',\n stat: true,\n forced: !NATIVE_SYMBOL,\n sham: !DESCRIPTORS\n}, {\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n$({\n target: 'Object',\n stat: true,\n forced: !NATIVE_SYMBOL\n}, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n}); // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n\n$({\n target: 'Object',\n stat: true,\n forced: fails(function () {\n getOwnPropertySymbolsModule.f(1);\n })\n}, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n}); // `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\n\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol(); // MS Edge converts symbol values to JSON as {}\n\n return $stringify([symbol]) != '[null]' // WebKit converts symbol values to JSON as null\n || $stringify({\n a: symbol\n }) != '{}' // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n $({\n target: 'JSON',\n stat: true,\n forced: FORCED_JSON_STRINGIFY\n }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n\n while (arguments.length > index) {\n args.push(arguments[index++]);\n }\n\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n\n if (!isArray(replacer)) replacer = function replacer(key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n} // `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\n\n\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n} // `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\n\n\nsetToStringTag($Symbol, SYMBOL);\nhiddenKeys[HIDDEN] = true;","var toIndexedObject = require('../internals/to-indexed-object');\n\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function getWindowNames(it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n}; // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\n\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : nativeGetOwnPropertyNames(toIndexedObject(it));\n};","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\n\nvar $ = require('../internals/export');\n\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar global = require('../internals/global');\n\nvar has = require('../internals/has');\n\nvar isObject = require('../internals/is-object');\n\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) || // Safari 12 bug\nNativeSymbol().description !== undefined)) {\n var EmptyStringDescriptionStore = {}; // wrap Symbol constructor for correct work with undefined description\n\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper ? new NativeSymbol(description) // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n $({\n global: true,\n forced: true\n }, {\n Symbol: SymbolWrapper\n });\n}","var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); // `Symbol.asyncIterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.asynciterator\n\n\ndefineWellKnownSymbol('asyncIterator');","var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); // `Symbol.hasInstance` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.hasinstance\n\n\ndefineWellKnownSymbol('hasInstance');","var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); // `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.isconcatspreadable\n\n\ndefineWellKnownSymbol('isConcatSpreadable');","var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); // `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\n\n\ndefineWellKnownSymbol('iterator');","var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); // `Symbol.match` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.match\n\n\ndefineWellKnownSymbol('match');","var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); // `Symbol.replace` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.replace\n\n\ndefineWellKnownSymbol('replace');","var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); // `Symbol.search` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.search\n\n\ndefineWellKnownSymbol('search');","var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); // `Symbol.species` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.species\n\n\ndefineWellKnownSymbol('species');","var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); // `Symbol.split` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.split\n\n\ndefineWellKnownSymbol('split');","var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); // `Symbol.toPrimitive` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.toprimitive\n\n\ndefineWellKnownSymbol('toPrimitive');","var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); // `Symbol.toStringTag` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.tostringtag\n\n\ndefineWellKnownSymbol('toStringTag');","var defineWellKnownSymbol = require('../internals/define-well-known-symbol'); // `Symbol.unscopables` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.unscopables\n\n\ndefineWellKnownSymbol('unscopables');","'use strict';\n\nvar $ = require('../internals/export');\n\nvar fails = require('../internals/fails');\n\nvar isArray = require('../internals/is-array');\n\nvar isObject = require('../internals/is-object');\n\nvar toObject = require('../internals/to-object');\n\nvar toLength = require('../internals/to-length');\n\nvar createProperty = require('../internals/create-property');\n\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded'; // We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\n\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function isConcatSpreadable(O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT; // `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n\n$({\n target: 'Array',\n proto: true,\n forced: FORCED\n}, {\n concat: function concat(arg) {\n // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n\n for (k = 0; k < len; k++, n++) {\n if (k in E) createProperty(A, n, E[k]);\n }\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n\n A.length = n;\n return A;\n }\n});","var $ = require('../internals/export');\n\nvar from = require('../internals/array-from');\n\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n}); // `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n\n$({\n target: 'Array',\n stat: true,\n forced: INCORRECT_ITERATION\n}, {\n from: from\n});","'use strict';\n\nvar bind = require('../internals/function-bind-context');\n\nvar toObject = require('../internals/to-object');\n\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\n\nvar toLength = require('../internals/to-length');\n\nvar createProperty = require('../internals/create-property');\n\nvar getIteratorMethod = require('../internals/get-iterator-method'); // `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\n\n\nmodule.exports = function from(arrayLike\n/* , mapfn = undefined, thisArg = undefined */\n) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2); // if the target is not iterable or it's an array with the default iterator - use a simple case\n\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n\n for (; !(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n\n for (; length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n\n result.length = index;\n return result;\n};","var global = require('../internals/global');\n\nvar setToStringTag = require('../internals/set-to-string-tag'); // JSON[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-json-@@tostringtag\n\n\nsetToStringTag(global.JSON, 'JSON', true);","var setToStringTag = require('../internals/set-to-string-tag'); // Math[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-math-@@tostringtag\n\n\nsetToStringTag(Math, 'Math', true);","'use strict';\n\nvar asap = require('asap/raw');\n\nfunction noop() {} // States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\n\n\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\n\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n\n this._U = 0;\n this._V = 0;\n this._W = null;\n this._X = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\n\nPromise._Y = null;\nPromise._Z = null;\nPromise._0 = noop;\n\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\n\nfunction handle(self, deferred) {\n while (self._V === 3) {\n self = self._W;\n }\n\n if (Promise._Y) {\n Promise._Y(self);\n }\n\n if (self._V === 0) {\n if (self._U === 0) {\n self._U = 1;\n self._X = deferred;\n return;\n }\n\n if (self._U === 1) {\n self._U = 2;\n self._X = [self._X, deferred];\n return;\n }\n\n self._X.push(deferred);\n\n return;\n }\n\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n asap(function () {\n var cb = self._V === 1 ? deferred.onFulfilled : deferred.onRejected;\n\n if (cb === null) {\n if (self._V === 1) {\n resolve(deferred.promise, self._W);\n } else {\n reject(deferred.promise, self._W);\n }\n\n return;\n }\n\n var ret = tryCallOne(cb, self._W);\n\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\n\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(self, new TypeError('A promise cannot be resolved with itself.'));\n }\n\n if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {\n var then = getThen(newValue);\n\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n\n if (then === self.then && newValue instanceof Promise) {\n self._V = 3;\n self._W = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n\n self._V = 1;\n self._W = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._V = 2;\n self._W = newValue;\n\n if (Promise._Z) {\n Promise._Z(self, newValue);\n }\n\n finale(self);\n}\n\nfunction finale(self) {\n if (self._U === 1) {\n handle(self, self._X);\n self._X = null;\n }\n\n if (self._U === 2) {\n for (var i = 0; i < self._X.length; i++) {\n handle(self, self._X[i]);\n }\n\n self._X = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\n\n\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}","'use strict';\n\nvar toObject = require('../internals/to-object');\n\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar toLength = require('../internals/to-length');\n\nvar min = Math.min; // `Array.prototype.copyWithin` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\n\nmodule.exports = [].copyWithin || function copyWithin(target\n/* = 0 */\n, start\n/* = 0, end = @length */\n) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n\n while (count-- > 0) {\n if (from in O) O[to] = O[from];else delete O[to];\n to += inc;\n from += inc;\n }\n\n return O;\n};","'use strict';\n\nvar isArray = require('../internals/is-array');\n\nvar toLength = require('../internals/to-length');\n\nvar bind = require('../internals/function-bind-context'); // `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\n\n\nvar flattenIntoArray = function flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n\n sourceIndex++;\n }\n\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;","'use strict';\n\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach'); // `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n\nmodule.exports = !STRICT_METHOD || !USES_TO_LENGTH ? function forEach(callbackfn\n/* , thisArg */\n) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;","'use strict';\n\nvar toIndexedObject = require('../internals/to-indexed-object');\n\nvar toInteger = require('../internals/to-integer');\n\nvar toLength = require('../internals/to-length');\n\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar min = Math.min;\nvar nativeLastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf'); // For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', {\n ACCESSORS: true,\n 1: 0\n});\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH; // `Array.prototype.lastIndexOf` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof\n\nmodule.exports = FORCED ? function lastIndexOf(searchElement\n/* , fromIndex = @[*-1] */\n) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n\n for (; index >= 0; index--) {\n if (index in O && O[index] === searchElement) return index || 0;\n }\n\n return -1;\n} : nativeLastIndexOf;","module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';","var toInteger = require('../internals/to-integer');\n\nvar toLength = require('../internals/to-length'); // `ToIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-toindex\n\n\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};","var log = Math.log; // `Math.log1p` method implementation\n// https://tc39.github.io/ecma262/#sec-math.log1p\n\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : log(1 + x);\n};","var isObject = require('../internals/is-object');\n\nvar floor = Math.floor; // `Number.isInteger` method implementation\n// https://tc39.github.io/ecma262/#sec-number.isinteger\n\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};","'use strict';\n\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar fails = require('../internals/fails');\n\nvar objectKeys = require('../internals/object-keys');\n\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\n\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\n\nvar toObject = require('../internals/to-object');\n\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty; // `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({\n b: 1\n }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function get() {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), {\n b: 2\n })).b !== 1) return true; // should work with symbols and should have deterministic property order (V8 bug)\n\n var A = {};\n var B = {}; // eslint-disable-next-line no-undef\n\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) {\n B[chr] = chr;\n });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) {\n // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n }\n\n return T;\n} : nativeAssign;","var DESCRIPTORS = require('../internals/descriptors');\n\nvar objectKeys = require('../internals/object-keys');\n\nvar toIndexedObject = require('../internals/to-indexed-object');\n\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f; // `Object.{ entries, values }` methods implementation\n\n\nvar createMethod = function createMethod(TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n\n while (length > i) {\n key = keys[i++];\n\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.github.io/ecma262/#sec-object.values\n values: createMethod(false)\n};","// `SameValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};","var global = require('../internals/global');\n\nmodule.exports = global.Promise;","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);","var global = require('../internals/global');\n\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\nvar classof = require('../internals/classof-raw');\n\nvar macrotask = require('../internals/task').set;\n\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process'; // Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\n\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar flush, head, last, notify, toggle, node, promise, then; // modern engines have queueMicrotask method\n\nif (!queueMicrotask) {\n flush = function flush() {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n\n while (head) {\n fn = head.fn;\n head = head.next;\n\n try {\n fn();\n } catch (error) {\n if (head) notify();else last = undefined;\n throw error;\n }\n }\n\n last = undefined;\n if (parent) parent.enter();\n }; // Node.js\n\n\n if (IS_NODE) {\n notify = function notify() {\n process.nextTick(flush);\n }; // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n\n } else if (MutationObserver && !IS_IOS) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, {\n characterData: true\n });\n\n notify = function notify() {\n node.data = toggle = !toggle;\n }; // environments with maybe non-completely correct, but existent Promise\n\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n\n notify = function notify() {\n then.call(promise, flush);\n }; // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n\n } else {\n notify = function notify() {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = {\n fn: fn,\n next: undefined\n };\n if (last) last.next = task;\n\n if (!head) {\n head = task;\n notify();\n }\n\n last = task;\n};","var anObject = require('../internals/an-object');\n\nvar isObject = require('../internals/is-object');\n\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};","'use strict';\n\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function PromiseCapability(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 = aFunction(resolve);\n this.reject = aFunction(reject);\n}; // 25.4.1.5 NewPromiseCapability(C)\n\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};","'use strict';\n\nvar $ = require('../internals/export');\n\nvar exec = require('../internals/regexp-exec');\n\n$({\n target: 'RegExp',\n proto: true,\n forced: /./.exec !== exec\n}, {\n exec: exec\n});","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('../internals/to-length');\n\nvar repeat = require('../internals/string-repeat');\n\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar ceil = Math.ceil; // `String.prototype.{ padStart, padEnd }` methods implementation\n\nvar createMethod = function createMethod(IS_END) {\n return function ($this, maxLength, fillString) {\n var S = String(requireObjectCoercible($this));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr == '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};","// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent'); // eslint-disable-next-line unicorn/no-unsafe-regex\n\n\nmodule.exports = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);","var toPositiveInteger = require('../internals/to-positive-integer');\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};","var toObject = require('../internals/to-object');\n\nvar toLength = require('../internals/to-length');\n\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\n\nvar bind = require('../internals/function-bind-context');\n\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source\n/* , mapfn, thisArg */\n) {\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n\n if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n O = [];\n\n while (!(step = next.call(iterator)).done) {\n O.push(step.value);\n }\n }\n\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2], 2);\n }\n\n length = toLength(O.length);\n result = new (aTypedArrayConstructor(this))(length);\n\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n\n return result;\n};","'use strict';\n\nvar redefineAll = require('../internals/redefine-all');\n\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\n\nvar anObject = require('../internals/an-object');\n\nvar isObject = require('../internals/is-object');\n\nvar anInstance = require('../internals/an-instance');\n\nvar iterate = require('../internals/iterate');\n\nvar ArrayIterationModule = require('../internals/array-iteration');\n\nvar $has = require('../internals/has');\n\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar id = 0; // fallback for uncaught frozen keys\n\nvar uncaughtFrozenStore = function uncaughtFrozenStore(store) {\n return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function UncaughtFrozenStore() {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function findUncaughtFrozen(store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function get(key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function has(key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function set(key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;else this.entries.push([key, value]);\n },\n 'delete': function _delete(key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) this.entries.splice(index, 1);\n return !!~index;\n }\n};\nmodule.exports = {\n getConstructor: function getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n });\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function define(that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);else data[state.id] = value;\n return that;\n };\n\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function _delete(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && $has(data, state.id) && delete data[state.id];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && $has(data, state.id);\n }\n });\n redefineAll(C.prototype, IS_MAP ? {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n var state = getInternalState(this);\n\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return define(this, value, true);\n }\n });\n return C;\n }\n};","var fails = require('../internals/fails');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return IS_PURE && !url.toJSON || !searchParams.sort || url.href !== 'http://a/c%20d?a=1&c=3' || searchParams.get('c') !== '3' || String(new URLSearchParams('?a=1')) !== 'a=1' || !searchParams[ITERATOR] // throws in Edge\n || new URL('https://a@b').username !== 'a' || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b' // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc' // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1' // fails in Chrome 66-\n || result !== 'a1c3' // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});","'use strict'; // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\n\nrequire('../modules/es.array.iterator');\n\nvar $ = require('../internals/export');\n\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar USE_NATIVE_URL = require('../internals/native-url');\n\nvar redefine = require('../internals/redefine');\n\nvar redefineAll = require('../internals/redefine-all');\n\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\n\nvar InternalStateModule = require('../internals/internal-state');\n\nvar anInstance = require('../internals/an-instance');\n\nvar hasOwn = require('../internals/has');\n\nvar bind = require('../internals/function-bind-context');\n\nvar classof = require('../internals/classof');\n\nvar anObject = require('../internals/an-object');\n\nvar isObject = require('../internals/is-object');\n\nvar create = require('../internals/object-create');\n\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nvar getIterator = require('../internals/get-iterator');\n\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function percentSequence(bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function percentDecode(sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function deserialize(it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function replacer(match) {\n return replace[match];\n};\n\nvar serialize = function serialize(it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function parseSearchParams(result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n\n while (index < attributes.length) {\n attribute = attributes[index++];\n\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function updateSearchParams(query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function validateArgumentsLength(passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n }\n\n return step;\n}); // `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\n\nvar URLSearchParamsConstructor = function URLSearchParams()\n/* init */\n{\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function updateURL() {\n /* empty */\n },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n next = iterator.next;\n\n while (!(step = next.call(iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if ((first = entryNext.call(entryIterator)).done || (second = entryNext.call(entryIterator)).done || !entryNext.call(entryIterator).done) throw TypeError('Expected sequence with length 2');\n entries.push({\n key: first.value + '',\n value: second.value + ''\n });\n }\n } else for (key in init) {\n if (hasOwn(init, key)) entries.push({\n key: key,\n value: init[key] + ''\n });\n }\n } else {\n parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.appent` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({\n key: name + '',\n value: value + ''\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function _delete(name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = name + '';\n var index = 0;\n\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);else index++;\n }\n\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var result = [];\n var index = 0;\n\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = name + '';\n var val = value + '';\n var index = 0;\n var entry;\n\n for (; index < entries.length; index++) {\n entry = entries[index];\n\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);else {\n found = true;\n entry.value = val;\n }\n }\n }\n\n if (!found) entries.push({\n key: key,\n value: val\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries; // Array#sort is not stable in some engines\n\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback\n /* , thisArg */\n ) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, {\n enumerable: true\n}); // `URLSearchParams.prototype[@@iterator]` method\n\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries); // `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\n\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n }\n\n return result.join('&');\n}, {\n enumerable: true\n});\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n$({\n global: true,\n forced: !USE_NATIVE_URL\n}, {\n URLSearchParams: URLSearchParamsConstructor\n}); // Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\n\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n $({\n global: true,\n enumerable: true,\n forced: true\n }, {\n fetch: function fetch(input\n /* , init */\n ) {\n var args = [input];\n var init, body, headers;\n\n if (arguments.length > 1) {\n init = arguments[1];\n\n if (isObject(init)) {\n body = init.body;\n\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n\n if (!headers.has('content-type')) {\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n\n init = create(init, {\n body: createPropertyDescriptor(0, String(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n }\n\n args.push(init);\n }\n\n return $fetch.apply(this, args);\n }\n });\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\n\nmodule.exports = bytesToUuid;","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) {\n /* Ignore */\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar buildFullPath = require('../core/buildFullPath');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout; // Listen for ready state\n\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }; // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies'); // Add xsrf header\n\n\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n } // Add responseType to request if needed\n\n\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];\n var defaultToConfig2Keys = ['baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath'];\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n var axiosKeys = valueFromConfig2Keys.concat(mergeDeepPropertiesKeys).concat(defaultToConfig2Keys);\n var otherKeys = Object.keys(config2).filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n return config;\n};","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","/**\n * Lo-Dash 2.3.0 (Custom Build) \n * Build: `lodash modularize modern exports=\"npm\" -o ./npm/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isObject = require('lodash.isobject'),\n reNative = require('lodash._renative'),\n shimKeys = require('lodash._shimkeys');\n/* Native method shortcuts for methods with the same name as other `lodash` methods */\n\n\nvar nativeKeys = reNative.test(nativeKeys = Object.keys) && nativeKeys;\n/**\n * Creates an array composed of the own enumerable property names of an object.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns an array of property names.\n * @example\n *\n * _.keys({ 'one': 1, 'two': 2, 'three': 3 });\n * // => ['one', 'two', 'three'] (property order is not guaranteed across environments)\n */\n\nvar keys = !nativeKeys ? shimKeys : function (object) {\n if (!isObject(object)) {\n return [];\n }\n\n return nativeKeys(object);\n};\nmodule.exports = keys;","/**\n * Lo-Dash 2.3.0 (Custom Build) \n * Build: `lodash modularize modern exports=\"npm\" -o ./npm/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar bind = require('lodash.bind'),\n identity = require('lodash.identity'),\n setBindData = require('lodash._setbinddata'),\n support = require('lodash.support');\n/** Used to detected named functions */\n\n\nvar reFuncName = /^\\s*function[ \\n\\r\\t]+\\w/;\n/** Used to detect functions containing a `this` reference */\n\nvar reThis = /\\bthis\\b/;\n/** Native method shortcuts */\n\nvar fnToString = Function.prototype.toString;\n/**\n * The base implementation of `_.createCallback` without support for creating\n * \"_.pluck\" or \"_.where\" style callbacks.\n *\n * @private\n * @param {*} [func=identity] The value to convert to a callback.\n * @param {*} [thisArg] The `this` binding of the created callback.\n * @param {number} [argCount] The number of arguments the callback accepts.\n * @returns {Function} Returns a callback function.\n */\n\nfunction baseCreateCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n } // exit early for no `thisArg` or already bound by `Function#bind`\n\n\n if (typeof thisArg == 'undefined' || !('prototype' in func)) {\n return func;\n }\n\n var bindData = func.__bindData__;\n\n if (typeof bindData == 'undefined') {\n if (support.funcNames) {\n bindData = !func.name;\n }\n\n bindData = bindData || !support.funcDecomp;\n\n if (!bindData) {\n var source = fnToString.call(func);\n\n if (!support.funcNames) {\n bindData = !reFuncName.test(source);\n }\n\n if (!bindData) {\n // checks if `func` references the `this` keyword and stores the result\n bindData = reThis.test(source);\n setBindData(func, bindData);\n }\n }\n } // exit early if there are no `this` references or `func` is bound\n\n\n if (bindData === false || bindData !== true && bindData[1] & 1) {\n return func;\n }\n\n switch (argCount) {\n case 1:\n return function (value) {\n return func.call(thisArg, value);\n };\n\n case 2:\n return function (a, b) {\n return func.call(thisArg, a, b);\n };\n\n case 3:\n return function (value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n\n case 4:\n return function (accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n }\n\n return bind(func, thisArg);\n}\n\nmodule.exports = baseCreateCallback;","/**\n * Lo-Dash 2.3.0 (Custom Build) \n * Build: `lodash modularize modern exports=\"npm\" -o ./npm/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isObject = require('lodash.isobject'),\n noop = require('lodash.noop'),\n reNative = require('lodash._renative');\n/* Native method shortcuts for methods with the same name as other `lodash` methods */\n\n\nvar nativeCreate = reNative.test(nativeCreate = Object.create) && nativeCreate;\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n\nfunction baseCreate(prototype, properties) {\n return isObject(prototype) ? nativeCreate(prototype) : {};\n} // fallback for browsers without `Object.create`\n\n\nif (!nativeCreate) {\n baseCreate = function () {\n function Object() {}\n\n return function (prototype) {\n if (isObject(prototype)) {\n Object.prototype = prototype;\n var result = new Object();\n Object.prototype = null;\n }\n\n return result || global.Object();\n };\n }();\n}\n\nmodule.exports = baseCreate;","/**\n * Lo-Dash 2.3.0 (Custom Build) \n * Build: `lodash modularize modern exports=\"npm\" -o ./npm/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * A no-operation function.\n *\n * @static\n * @memberOf _\n * @category Utilities\n * @example\n *\n * var object = { 'name': 'fred' };\n * _.noop(object) === undefined;\n * // => true\n */\nfunction noop() {// no operation performed\n}\n\nmodule.exports = noop;","/**\n * Lo-Dash 2.3.0 (Custom Build) \n * Build: `lodash modularize modern exports=\"npm\" -o ./npm/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Slices the `collection` from the `start` index up to, but not including,\n * the `end` index.\n *\n * Note: This function is used instead of `Array#slice` to support node lists\n * in IE < 9 and to ensure dense arrays are returned.\n *\n * @private\n * @param {Array|Object|string} collection The collection to slice.\n * @param {number} start The start index.\n * @param {number} end The end index.\n * @returns {Array} Returns the new array.\n */\nfunction slice(array, start, end) {\n start || (start = 0);\n\n if (typeof end == 'undefined') {\n end = array ? array.length : 0;\n }\n\n var index = -1,\n length = end - start || 0,\n result = Array(length < 0 ? 0 : length);\n\n while (++index < length) {\n result[index] = array[start + index];\n }\n\n return result;\n}\n\nmodule.exports = slice;","'use strict'; // Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction adler32(adler, buf, len, pos) {\n var s1 = adler & 0xffff | 0,\n s2 = adler >>> 16 & 0xffff | 0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = s1 + buf[pos++] | 0;\n s2 = s2 + s1 | 0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return s1 | s2 << 16 | 0;\n}\n\nmodule.exports = adler32;","'use strict'; // Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n// Use ordinary array, since untyped makes no boost here\n\nfunction makeTable() {\n var c,\n table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n\n for (var k = 0; k < 8; k++) {\n c = c & 1 ? 0xEDB88320 ^ c >>> 1 : c >>> 1;\n }\n\n table[n] = c;\n }\n\n return table;\n} // Create table on load. Just 255 signed longs. Not a problem.\n\n\nvar crcTable = makeTable();\n\nfunction crc32(crc, buf, len, pos) {\n var t = crcTable,\n end = pos + len;\n crc ^= -1;\n\n for (var i = pos; i < end; i++) {\n crc = crc >>> 8 ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return crc ^ -1; // >>> 0;\n}\n\nmodule.exports = crc32;","// String encode/decode helpers\n'use strict';\n\nvar utils = require('./common'); // Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\n\n\nvar STR_APPLY_OK = true;\nvar STR_APPLY_UIA_OK = true;\n\ntry {\n String.fromCharCode.apply(null, [0]);\n} catch (__) {\n STR_APPLY_OK = false;\n}\n\ntry {\n String.fromCharCode.apply(null, new Uint8Array(1));\n} catch (__) {\n STR_APPLY_UIA_OK = false;\n} // Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\n\n\nvar _utf8len = new utils.Buf8(256);\n\nfor (var q = 0; q < 256; q++) {\n _utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1;\n}\n\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n// convert string to array (typed, when possible)\n\nexports.string2buf = function (str) {\n var buf,\n c,\n c2,\n m_pos,\n i,\n str_len = str.length,\n buf_len = 0; // count binary size\n\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n\n if ((c & 0xfc00) === 0xd800 && m_pos + 1 < str_len) {\n c2 = str.charCodeAt(m_pos + 1);\n\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + (c - 0xd800 << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n } // allocate buffer\n\n\n buf = new utils.Buf8(buf_len); // convert\n\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n\n if ((c & 0xfc00) === 0xd800 && m_pos + 1 < str_len) {\n c2 = str.charCodeAt(m_pos + 1);\n\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + (c - 0xd800 << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | c >>> 6;\n buf[i++] = 0x80 | c & 0x3f;\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | c >>> 12;\n buf[i++] = 0x80 | c >>> 6 & 0x3f;\n buf[i++] = 0x80 | c & 0x3f;\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | c >>> 18;\n buf[i++] = 0x80 | c >>> 12 & 0x3f;\n buf[i++] = 0x80 | c >>> 6 & 0x3f;\n buf[i++] = 0x80 | c & 0x3f;\n }\n }\n\n return buf;\n}; // Helper (used in 2 places)\n\n\nfunction buf2binstring(buf, len) {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK || !buf.subarray && STR_APPLY_OK) {\n return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));\n }\n }\n\n var result = '';\n\n for (var i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n\n return result;\n} // Convert byte array to binary string\n\n\nexports.buf2binstring = function (buf) {\n return buf2binstring(buf, buf.length);\n}; // Convert binary string (typed, when possible)\n\n\nexports.binstring2buf = function (str) {\n var buf = new utils.Buf8(str.length);\n\n for (var i = 0, len = buf.length; i < len; i++) {\n buf[i] = str.charCodeAt(i);\n }\n\n return buf;\n}; // convert array to string\n\n\nexports.buf2string = function (buf, max) {\n var i, out, c, c_len;\n var len = max || buf.length; // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n\n var utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n c = buf[i++]; // quick process ascii\n\n if (c < 0x80) {\n utf16buf[out++] = c;\n continue;\n }\n\n c_len = _utf8len[c]; // skip 5 & 6 byte codes\n\n if (c_len > 4) {\n utf16buf[out++] = 0xfffd;\n i += c_len - 1;\n continue;\n } // apply mask on first byte\n\n\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07; // join the rest\n\n while (c_len > 1 && i < len) {\n c = c << 6 | buf[i++] & 0x3f;\n c_len--;\n } // terminated by end of string?\n\n\n if (c_len > 1) {\n utf16buf[out++] = 0xfffd;\n continue;\n }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | c >> 10 & 0x3ff;\n utf16buf[out++] = 0xdc00 | c & 0x3ff;\n }\n }\n\n return buf2binstring(utf16buf, out);\n}; // Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\n\n\nexports.utf8border = function (buf, max) {\n var pos;\n max = max || buf.length;\n\n if (max > buf.length) {\n max = buf.length;\n } // go back from last position, until start of sequence found\n\n\n pos = max - 1;\n\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) {\n pos--;\n } // Very small and broken sequence,\n // return max, because we should return something anyway.\n\n\n if (pos < 0) {\n return max;\n } // If we came to start of buffer - that means buffer is too small,\n // return max too.\n\n\n if (pos === 0) {\n return max;\n }\n\n return pos + _utf8len[buf[pos]] > max ? pos : max;\n};","'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n\n this.next_in = 0;\n /* number of bytes available at input */\n\n this.avail_in = 0;\n /* total number of input bytes read so far */\n\n this.total_in = 0;\n /* next output byte should be put there */\n\n this.output = null; // JS specific, because we have no pointers\n\n this.next_out = 0;\n /* remaining free space at output */\n\n this.avail_out = 0;\n /* total number of bytes output so far */\n\n this.total_out = 0;\n /* last error message, NULL if no error */\n\n this.msg = ''\n /*Z_NULL*/\n ;\n /* not visible by applications */\n\n this.state = null;\n /* best guess about the data type: binary or text */\n\n this.data_type = 2\n /*Z_UNKNOWN*/\n ;\n /* adler32 value of the uncompressed data */\n\n this.adler = 0;\n}\n\nmodule.exports = ZStream;","'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n //Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8 //Z_NULL: null // Use -1 or null inline, depending on var type\n\n};","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var BACKSPACE = 8;\nexport var TAB = 9;\nexport var ENTER = 13;\nexport var SHIFT = 16;\nexport var ESCAPE = 27;\nexport var SPACE = 32;\nexport var ARROW_LEFT = 37;\nexport var ARROW_UP = 38;\nexport var ARROW_RIGHT = 39;\nexport var ARROW_DOWN = 40;\nexport var DELETE = 46;\n/** Returns whether the key code is `enter` or `space`, the two keys that can click a button. */\n\nexport function isKeyboardClick(keyCode) {\n return keyCode === ENTER || keyCode === SPACE;\n}","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Returns true if the arrays are equal. Elements will be shallowly compared by\n * default, or they will be compared using the custom `compare` function if one\n * is provided.\n */\nexport function arraysEqual(arrA, arrB, compare) {\n if (compare === void 0) {\n compare = function compare(a, b) {\n return a === b;\n };\n } // treat `null` and `undefined` as the same\n\n\n if (arrA == null && arrB == null) {\n return true;\n } else if (arrA == null || arrB == null || arrA.length !== arrB.length) {\n return false;\n } else {\n return arrA.every(function (a, i) {\n return compare(a, arrB[i]);\n });\n }\n}\n/**\n * Shallow comparison between objects. If `keys` is provided, just that subset\n * of keys will be compared; otherwise, all keys will be compared.\n * @returns true if items are equal.\n */\n\nexport function shallowCompareKeys(objA, objB, keys) {\n // treat `null` and `undefined` as the same\n if (objA == null && objB == null) {\n return true;\n } else if (objA == null || objB == null) {\n return false;\n } else if (Array.isArray(objA) || Array.isArray(objB)) {\n return false;\n } else if (keys != null) {\n return shallowCompareKeysImpl(objA, objB, keys);\n } else {\n // shallowly compare all keys from both objects\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n return shallowCompareKeysImpl(objA, objB, {\n include: keysA\n }) && shallowCompareKeysImpl(objA, objB, {\n include: keysB\n });\n }\n}\n/**\n * Deep comparison between objects. If `keys` is provided, just that subset of\n * keys will be compared; otherwise, all keys will be compared.\n * @returns true if items are equal.\n */\n\nexport function deepCompareKeys(objA, objB, keys) {\n if (objA === objB) {\n return true;\n } else if (objA == null && objB == null) {\n // treat `null` and `undefined` as the same\n return true;\n } else if (objA == null || objB == null) {\n return false;\n } else if (Array.isArray(objA) || Array.isArray(objB)) {\n return arraysEqual(objA, objB, deepCompareKeys);\n } else if (isSimplePrimitiveType(objA) || isSimplePrimitiveType(objB)) {\n return objA === objB;\n } else if (keys != null) {\n return deepCompareKeysImpl(objA, objB, keys);\n } else if (objA.constructor !== objB.constructor) {\n return false;\n } else {\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA == null || keysB == null) {\n return false;\n }\n\n if (keysA.length === 0 && keysB.length === 0) {\n return true;\n }\n\n return arraysEqual(keysA, keysB) && deepCompareKeysImpl(objA, objB, keysA);\n }\n}\n/**\n * Returns a descriptive object for each key whose values are deeply unequal\n * between two provided objects. Useful for debugging shouldComponentUpdate.\n */\n\nexport function getDeepUnequalKeyValues(objA, objB, keys) {\n if (objA === void 0) {\n objA = {};\n }\n\n if (objB === void 0) {\n objB = {};\n }\n\n var filteredKeys = keys == null ? unionKeys(objA, objB) : keys;\n return getUnequalKeyValues(objA, objB, filteredKeys, function (a, b, key) {\n return deepCompareKeys(a, b, [key]);\n });\n} // Private helpers\n// ===============\n\n/**\n * Partial shallow comparison between objects using the given list of keys.\n */\n\nfunction shallowCompareKeysImpl(objA, objB, keys) {\n return filterKeys(objA, objB, keys).every(function (key) {\n return objA.hasOwnProperty(key) === objB.hasOwnProperty(key) && objA[key] === objB[key];\n });\n}\n/**\n * Partial deep comparison between objects using the given list of keys.\n */\n\n\nfunction deepCompareKeysImpl(objA, objB, keys) {\n return keys.every(function (key) {\n return objA.hasOwnProperty(key) === objB.hasOwnProperty(key) && deepCompareKeys(objA[key], objB[key]);\n });\n}\n\nfunction isSimplePrimitiveType(value) {\n return typeof value === \"number\" || typeof value === \"string\" || typeof value === \"boolean\";\n}\n\nfunction filterKeys(objA, objB, keys) {\n if (isWhitelist(keys)) {\n return keys.include;\n } else if (isBlacklist(keys)) {\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB); // merge keys from both objects into a big set for quick access\n\n var keySet_1 = arrayToObject(keysA.concat(keysB)); // delete blacklisted keys from the key set\n\n keys.exclude.forEach(function (key) {\n return delete keySet_1[key];\n }); // return the remaining keys as an array\n\n return Object.keys(keySet_1);\n }\n\n return [];\n}\n\nfunction isWhitelist(keys) {\n return keys != null && keys.include != null;\n}\n\nfunction isBlacklist(keys) {\n return keys != null && keys.exclude != null;\n}\n\nfunction arrayToObject(arr) {\n return arr.reduce(function (obj, element) {\n obj[element] = true;\n return obj;\n }, {});\n}\n\nfunction getUnequalKeyValues(objA, objB, keys, compareFn) {\n var unequalKeys = keys.filter(function (key) {\n return !compareFn(objA, objB, key);\n });\n var unequalKeyValues = unequalKeys.map(function (key) {\n return {\n key: key,\n valueA: objA[key],\n valueB: objB[key]\n };\n });\n return unequalKeyValues;\n}\n\nfunction unionKeys(objA, objB) {\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n var concatKeys = keysA.concat(keysB);\n var keySet = arrayToObject(concatKeys);\n return Object.keys(keySet);\n}","/*\n * Copyright 2020 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { isFunction } from \"./functionUtils\";\nexport function elementIsOrContains(element, testElement) {\n return element === testElement || element.contains(testElement);\n}\n/**\n * Throttle an event on an EventTarget by wrapping it in a\n * `requestAnimationFrame` call. Returns the event handler that was bound to\n * given eventName so you can clean up after yourself.\n * @see https://developer.mozilla.org/en-US/docs/Web/Events/scroll\n */\n\nexport function throttleEvent(target, eventName, newEventName) {\n var throttledFunc = throttleImpl(function (event) {\n target.dispatchEvent(new CustomEvent(newEventName, event));\n });\n target.addEventListener(eventName, throttledFunc);\n return throttledFunc;\n}\n/**\n * Throttle a callback by wrapping it in a `requestAnimationFrame` call. Returns\n * the throttled function.\n * @see https://www.html5rocks.com/en/tutorials/speed/animations/\n */\n\nexport function throttleReactEventCallback(callback, options) {\n if (options === void 0) {\n options = {};\n }\n\n var throttledFunc = throttleImpl(callback, function (event2) {\n if (options.preventDefault) {\n event2.preventDefault();\n }\n }, // prevent React from reclaiming the event object before we reference it\n function (event2) {\n return event2.persist();\n });\n return throttledFunc;\n}\n/**\n * Throttle a method by wrapping it in a `requestAnimationFrame` call. Returns\n * the throttled function.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\n\nexport function throttle(method) {\n return throttleImpl(method);\n} // eslint-disable-next-line @typescript-eslint/ban-types\n\nfunction throttleImpl(onAnimationFrameRequested, onBeforeIsRunningCheck, onAfterIsRunningCheck) {\n var isRunning = false;\n\n var func = function func() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n } // don't use safeInvoke, because we might have more than its max number\n // of typed params\n\n\n if (isFunction(onBeforeIsRunningCheck)) {\n onBeforeIsRunningCheck.apply(void 0, args);\n }\n\n if (isRunning) {\n return;\n }\n\n isRunning = true;\n\n if (isFunction(onAfterIsRunningCheck)) {\n onAfterIsRunningCheck.apply(void 0, args);\n }\n\n requestAnimationFrame(function () {\n onAnimationFrameRequested.apply(void 0, args);\n isRunning = false;\n });\n };\n\n return func;\n}","/*\n * Copyright 2020 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport * as React from \"react\";\n/**\n * Returns true if `node` is null/undefined, false, empty string, or an array\n * composed of those. If `node` is an array, only one level of the array is\n * checked, for performance reasons.\n */\n\nexport function isReactNodeEmpty(node, skipArray) {\n if (skipArray === void 0) {\n skipArray = false;\n }\n\n return node == null || node === \"\" || node === false || !skipArray && Array.isArray(node) && ( // only recurse one level through arrays, for performance\n node.length === 0 || node.every(function (n) {\n return isReactNodeEmpty(n, true);\n }));\n}\n/**\n * Converts a React node to an element: non-empty string or number or\n * `React.Fragment` (React 16.3+) is wrapped in given tag name; empty strings\n * and booleans are discarded.\n */\n\nexport function ensureElement(child, tagName) {\n if (tagName === void 0) {\n tagName = \"span\";\n }\n\n if (child == null || typeof child === \"boolean\") {\n return undefined;\n } else if (typeof child === \"string\") {\n // cull whitespace strings\n return child.trim().length > 0 ? React.createElement(tagName, {}, child) : undefined;\n } else if (typeof child === \"number\" || typeof child.type === \"symbol\" || Array.isArray(child)) {\n // React.Fragment has a symbol type, ReactNodeArray extends from Array\n return React.createElement(tagName, {}, child);\n } else if (isReactElement(child)) {\n return child;\n } else {\n // child is inferred as {}\n return undefined;\n }\n}\nexport function isReactElement(child) {\n return typeof child === \"object\" && typeof child.type !== \"undefined\" && typeof child.props !== \"undefined\";\n}\nexport function getDisplayName(ComponentClass) {\n return ComponentClass.displayName || ComponentClass.name || \"Unknown\";\n}\n/**\n * Returns true if the given JSX element matches the given component type.\n *\n * NOTE: This function only checks equality of `displayName` for performance and\n * to tolerate multiple minor versions of a component being included in one\n * application bundle.\n * @param element JSX element in question\n * @param ComponentType desired component type of element\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\n\nexport function isElementOfType(element, ComponentType) {\n return element != null && element.type != null && element.type.displayName != null && element.type.displayName === ComponentType.displayName;\n}","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { isFunction } from \"./functionUtils\"; // eslint-disable-next-line @typescript-eslint/ban-types\n\nexport function safeInvokeMember(obj, key) {\n var args = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n\n if (obj != null) {\n var member = obj[key];\n\n if (isFunction(member)) {\n return member.apply(void 0, args);\n }\n }\n\n return undefined;\n}","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport \"../common/configureDom4\";\nimport * as contextMenu from \"./context-menu/contextMenu\";\nexport var ContextMenu = contextMenu;\nexport * from \"./alert/alert\";\nexport * from \"./breadcrumbs/breadcrumb\";\nexport * from \"./breadcrumbs/breadcrumbs\";\nexport * from \"./button/buttons\";\nexport * from \"./button/buttonGroup\";\nexport * from \"./callout/callout\";\nexport * from \"./card/card\";\nexport * from \"./collapse/collapse\";\nexport * from \"./collapsible-list/collapsibleList\";\nexport * from \"./context-menu/contextMenuTarget\";\nexport * from \"./dialog/dialog\";\nexport * from \"./divider/divider\";\nexport * from \"./drawer/drawer\";\nexport * from \"./editable-text/editableText\";\nexport * from \"./forms/controlGroup\";\nexport * from \"./forms/controls\";\nexport * from \"./forms/fileInput\";\nexport * from \"./forms/formGroup\";\nexport * from \"./forms/inputGroup\";\nexport * from \"./forms/numericInput\";\nexport * from \"./forms/radioGroup\";\nexport * from \"./forms/textArea\";\nexport * from \"./html/html\";\nexport * from \"./html-select/htmlSelect\";\nexport * from \"./html-table/htmlTable\";\nexport * from \"./hotkeys/index\";\nexport * from \"./icon/icon\";\nexport * from \"./menu/menu\";\nexport * from \"./menu/menuDivider\";\nexport * from \"./menu/menuItem\";\nexport * from \"./navbar/navbar\";\nexport * from \"./navbar/navbarDivider\";\nexport * from \"./navbar/navbarGroup\";\nexport * from \"./navbar/navbarHeading\";\nexport * from \"./non-ideal-state/nonIdealState\";\nexport * from \"./overflow-list/overflowList\";\nexport * from \"./overlay/overlay\";\nexport * from \"./text/text\";\nexport * from \"./panel-stack/panelProps\";\nexport * from \"./panel-stack/panelStack\";\nexport * from \"./popover/popover\";\nexport * from \"./popover/popoverSharedProps\";\nexport * from \"./portal/portal\";\nexport * from \"./progress-bar/progressBar\";\nexport * from \"./resize-sensor/resizeSensor\";\nexport * from \"./slider/handleProps\";\nexport * from \"./slider/multiSlider\";\nexport * from \"./slider/rangeSlider\";\nexport * from \"./slider/slider\";\nexport * from \"./spinner/spinner\";\nexport * from \"./tabs/tab\";\nexport * from \"./tabs/tabs\";\nexport * from \"./tag/tag\";\nexport * from \"./tag-input/tagInput\";\nexport * from \"./toast/toast\";\nexport * from \"./toast/toaster\";\nexport * from \"./tooltip/tooltip\";\nexport * from \"./tree/tree\";\nexport * from \"./tree/treeNode\";","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","'use strict';\n\nvar slice = Array.prototype.slice;\n\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) {\n return origKeys(o);\n} : require('./implementation');\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n if (Object.keys) {\n var keysWorksWithArguments = function () {\n // Safari 5.0 bug\n var args = Object.keys(arguments);\n return args && args.length === arguments.length;\n }(1, 2);\n\n if (!keysWorksWithArguments) {\n Object.keys = function keys(object) {\n // eslint-disable-line func-name-matching\n if (isArgs(object)) {\n return originalKeys(slice.call(object));\n }\n\n return originalKeys(object);\n };\n }\n } else {\n Object.keys = keysShim;\n }\n\n return Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n var str = toStr.call(value);\n var isArgs = str === '[object Arguments]';\n\n if (!isArgs) {\n isArgs = str !== '[object Array]' && value !== null && typeof value === 'object' && typeof value.length === 'number' && value.length >= 0 && toStr.call(value.callee) === '[object Function]';\n }\n\n return isArgs;\n};","'use strict';\n\nvar bind = require('function-bind');\n\nvar GetIntrinsic = require('../GetIntrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nmodule.exports = function callBind() {\n return $reflectApply(bind, $call, arguments);\n};\n\nmodule.exports.apply = function applyBind() {\n return $reflectApply(bind, $apply, arguments);\n};","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;","'use strict';\n\nvar origSymbol = global.Symbol;\n\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n if (typeof origSymbol !== 'function') {\n return false;\n }\n\n if (typeof Symbol !== 'function') {\n return false;\n }\n\n if (typeof origSymbol('foo') !== 'symbol') {\n return false;\n }\n\n if (typeof Symbol('bar') !== 'symbol') {\n return false;\n }\n\n return hasSymbolSham();\n};","'use strict';\n\nvar numberIsNaN = function numberIsNaN(value) {\n return value !== value;\n};\n\nmodule.exports = function is(a, b) {\n if (a === 0 && b === 0) {\n return 1 / a === 1 / b;\n }\n\n if (a === b) {\n return true;\n }\n\n if (numberIsNaN(a) && numberIsNaN(b)) {\n return true;\n }\n\n return false;\n};","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n return typeof Object.is === 'function' ? Object.is : implementation;\n};","'use strict';\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n if (this != null && this !== $Object(this)) {\n throw new $TypeError('RegExp.prototype.flags getter called on non-object');\n }\n\n var result = '';\n\n if (this.global) {\n result += 'g';\n }\n\n if (this.ignoreCase) {\n result += 'i';\n }\n\n if (this.multiline) {\n result += 'm';\n }\n\n if (this.dotAll) {\n result += 's';\n }\n\n if (this.unicode) {\n result += 'u';\n }\n\n if (this.sticky) {\n result += 'y';\n }\n\n return result;\n};","'use strict';\n\nvar implementation = require('./implementation');\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nvar $TypeError = TypeError;\n\nmodule.exports = function getPolyfill() {\n if (!supportsDescriptors) {\n throw new $TypeError('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n }\n\n if (/a/mig.flags === 'gim') {\n var descriptor = $gOPD(RegExp.prototype, 'flags');\n\n if (descriptor && typeof descriptor.get === 'function' && typeof /a/.dotAll === 'boolean') {\n return descriptor.get;\n }\n }\n\n return implementation;\n};","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends, __rest } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Classes } from \"../../common\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\"; // this component is simple enough that tests would be purely tautological.\n\n/* istanbul ignore next */\n\nvar ButtonGroup =\n/** @class */\nfunction (_super) {\n __extends(ButtonGroup, _super);\n\n function ButtonGroup() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ButtonGroup.prototype.render = function () {\n var _a;\n\n var _b = this.props,\n alignText = _b.alignText,\n className = _b.className,\n fill = _b.fill,\n minimal = _b.minimal,\n large = _b.large,\n vertical = _b.vertical,\n htmlProps = __rest(_b, [\"alignText\", \"className\", \"fill\", \"minimal\", \"large\", \"vertical\"]);\n\n var buttonGroupClasses = classNames(Classes.BUTTON_GROUP, (_a = {}, _a[Classes.FILL] = fill, _a[Classes.LARGE] = large, _a[Classes.MINIMAL] = minimal, _a[Classes.VERTICAL] = vertical, _a), Classes.alignmentClass(alignText), className);\n return React.createElement(\"div\", __assign({}, htmlProps, {\n className: buttonGroupClasses\n }), this.props.children);\n };\n\n ButtonGroup.displayName = DISPLAYNAME_PREFIX + \".ButtonGroup\";\n ButtonGroup = __decorate([polyfill], ButtonGroup);\n return ButtonGroup;\n}(AbstractPureComponent2);\n\nexport { ButtonGroup };","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends, __rest } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Classes, Elevation } from \"../../common\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\n\nvar Card =\n/** @class */\nfunction (_super) {\n __extends(Card, _super);\n\n function Card() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Card.prototype.render = function () {\n var _a;\n\n var _b = this.props,\n className = _b.className,\n elevation = _b.elevation,\n interactive = _b.interactive,\n htmlProps = __rest(_b, [\"className\", \"elevation\", \"interactive\"]);\n\n var classes = classNames(Classes.CARD, (_a = {}, _a[Classes.INTERACTIVE] = interactive, _a), Classes.elevationClass(elevation), className);\n return React.createElement(\"div\", __assign({\n className: classes\n }, htmlProps));\n };\n\n Card.displayName = DISPLAYNAME_PREFIX + \".Card\";\n Card.defaultProps = {\n elevation: Elevation.ZERO,\n interactive: false\n };\n Card = __decorate([polyfill], Card);\n return Card;\n}(AbstractPureComponent2);\n\nexport { Card };","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends, __rest } from \"tslib\"; // we need some empty interfaces to show up in docs\n// HACKHACK: these components should go in separate files\n\n/* eslint-disable max-classes-per-file, @typescript-eslint/no-empty-interface */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Classes } from \"../../common\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { safeInvoke } from \"../../common/utils\";\n/**\n * Renders common control elements, with additional props to customize appearance.\n * This component is not exported and is only used in this file for `Checkbox`, `Radio`, and `Switch` below.\n */\n\nvar Control = function Control(_a) {\n var _b;\n\n var alignIndicator = _a.alignIndicator,\n children = _a.children,\n className = _a.className,\n indicatorChildren = _a.indicatorChildren,\n inline = _a.inline,\n inputRef = _a.inputRef,\n label = _a.label,\n labelElement = _a.labelElement,\n large = _a.large,\n style = _a.style,\n type = _a.type,\n typeClassName = _a.typeClassName,\n _c = _a.tagName,\n tagName = _c === void 0 ? \"label\" : _c,\n htmlProps = __rest(_a, [\"alignIndicator\", \"children\", \"className\", \"indicatorChildren\", \"inline\", \"inputRef\", \"label\", \"labelElement\", \"large\", \"style\", \"type\", \"typeClassName\", \"tagName\"]);\n\n var classes = classNames(Classes.CONTROL, typeClassName, (_b = {}, _b[Classes.DISABLED] = htmlProps.disabled, _b[Classes.INLINE] = inline, _b[Classes.LARGE] = large, _b), Classes.alignmentClass(alignIndicator), className);\n return React.createElement(tagName, {\n className: classes,\n style: style\n }, React.createElement(\"input\", __assign({}, htmlProps, {\n ref: inputRef,\n type: type\n })), React.createElement(\"span\", {\n className: Classes.CONTROL_INDICATOR\n }, indicatorChildren), label, labelElement, children);\n};\n\nvar Switch =\n/** @class */\nfunction (_super) {\n __extends(Switch, _super);\n\n function Switch() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Switch.prototype.render = function () {\n var _a = this.props,\n innerLabelChecked = _a.innerLabelChecked,\n innerLabel = _a.innerLabel,\n controlProps = __rest(_a, [\"innerLabelChecked\", \"innerLabel\"]);\n\n var switchLabels = innerLabel || innerLabelChecked ? [React.createElement(\"div\", {\n key: \"checked\",\n className: Classes.CONTROL_INDICATOR_CHILD\n }, React.createElement(\"div\", {\n className: Classes.SWITCH_INNER_TEXT\n }, innerLabelChecked ? innerLabelChecked : innerLabel)), React.createElement(\"div\", {\n key: \"unchecked\",\n className: Classes.CONTROL_INDICATOR_CHILD\n }, React.createElement(\"div\", {\n className: Classes.SWITCH_INNER_TEXT\n }, innerLabel))] : null;\n return React.createElement(Control, __assign({}, controlProps, {\n type: \"checkbox\",\n typeClassName: Classes.SWITCH,\n indicatorChildren: switchLabels\n }));\n };\n\n Switch.displayName = DISPLAYNAME_PREFIX + \".Switch\";\n Switch = __decorate([polyfill], Switch);\n return Switch;\n}(AbstractPureComponent2);\n\nexport { Switch };\n\nvar Radio =\n/** @class */\nfunction (_super) {\n __extends(Radio, _super);\n\n function Radio() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Radio.prototype.render = function () {\n return React.createElement(Control, __assign({}, this.props, {\n type: \"radio\",\n typeClassName: Classes.RADIO\n }));\n };\n\n Radio.displayName = DISPLAYNAME_PREFIX + \".Radio\";\n Radio = __decorate([polyfill], Radio);\n return Radio;\n}(AbstractPureComponent2);\n\nexport { Radio };\n\nvar Checkbox =\n/** @class */\nfunction (_super) {\n __extends(Checkbox, _super);\n\n function Checkbox() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n indeterminate: _this.props.indeterminate || _this.props.defaultIndeterminate || false\n };\n\n _this.handleChange = function (evt) {\n var indeterminate = evt.target.indeterminate; // update state immediately only if uncontrolled\n\n if (_this.props.indeterminate == null) {\n _this.setState({\n indeterminate: indeterminate\n });\n } // otherwise wait for props change. always invoke handler.\n\n\n safeInvoke(_this.props.onChange, evt);\n };\n\n _this.handleInputRef = function (ref) {\n _this.input = ref;\n safeInvoke(_this.props.inputRef, ref);\n };\n\n return _this;\n }\n\n Checkbox.getDerivedStateFromProps = function (_a) {\n var indeterminate = _a.indeterminate; // put props into state if controlled by props\n\n if (indeterminate != null) {\n return {\n indeterminate: indeterminate\n };\n }\n\n return null;\n };\n\n Checkbox.prototype.render = function () {\n var _a = this.props,\n defaultIndeterminate = _a.defaultIndeterminate,\n indeterminate = _a.indeterminate,\n controlProps = __rest(_a, [\"defaultIndeterminate\", \"indeterminate\"]);\n\n return React.createElement(Control, __assign({}, controlProps, {\n inputRef: this.handleInputRef,\n onChange: this.handleChange,\n type: \"checkbox\",\n typeClassName: Classes.CHECKBOX\n }));\n };\n\n Checkbox.prototype.componentDidMount = function () {\n this.updateIndeterminate();\n };\n\n Checkbox.prototype.componentDidUpdate = function () {\n this.updateIndeterminate();\n };\n\n Checkbox.prototype.updateIndeterminate = function () {\n if (this.input != null) {\n this.input.indeterminate = this.state.indeterminate;\n }\n };\n\n Checkbox.displayName = DISPLAYNAME_PREFIX + \".Checkbox\";\n Checkbox = __decorate([polyfill], Checkbox);\n return Checkbox;\n}(AbstractPureComponent2);\n\nexport { Checkbox };","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __decorate, __extends } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Classes } from \"../../common\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\n\nvar FormGroup =\n/** @class */\nfunction (_super) {\n __extends(FormGroup, _super);\n\n function FormGroup() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n FormGroup.prototype.render = function () {\n var _a = this.props,\n children = _a.children,\n contentClassName = _a.contentClassName,\n helperText = _a.helperText,\n label = _a.label,\n labelFor = _a.labelFor,\n labelInfo = _a.labelInfo,\n style = _a.style;\n return React.createElement(\"div\", {\n className: this.getClassName(),\n style: style\n }, label && React.createElement(\"label\", {\n className: Classes.LABEL,\n htmlFor: labelFor\n }, label, \" \", React.createElement(\"span\", {\n className: Classes.TEXT_MUTED\n }, labelInfo)), React.createElement(\"div\", {\n className: classNames(Classes.FORM_CONTENT, contentClassName)\n }, children, helperText && React.createElement(\"div\", {\n className: Classes.FORM_HELPER_TEXT\n }, helperText)));\n };\n\n FormGroup.prototype.getClassName = function () {\n var _a;\n\n var _b = this.props,\n className = _b.className,\n disabled = _b.disabled,\n inline = _b.inline,\n intent = _b.intent;\n return classNames(Classes.FORM_GROUP, Classes.intentClass(intent), (_a = {}, _a[Classes.DISABLED] = disabled, _a[Classes.INLINE] = inline, _a), className);\n };\n\n FormGroup.displayName = DISPLAYNAME_PREFIX + \".FormGroup\";\n FormGroup = __decorate([polyfill], FormGroup);\n return FormGroup;\n}(AbstractPureComponent2);\n\nexport { FormGroup };","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Classes } from \"../../common\";\nimport * as Errors from \"../../common/errors\";\nimport { DISPLAYNAME_PREFIX, removeNonHTMLProps } from \"../../common/props\";\nimport { Icon } from \"../icon/icon\";\n\nvar InputGroup =\n/** @class */\nfunction (_super) {\n __extends(InputGroup, _super);\n\n function InputGroup() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {};\n _this.refHandlers = {\n leftElement: function leftElement(ref) {\n return _this.leftElement = ref;\n },\n rightElement: function rightElement(ref) {\n return _this.rightElement = ref;\n }\n };\n return _this;\n }\n\n InputGroup.prototype.render = function () {\n var _a;\n\n var _b = this.props,\n className = _b.className,\n disabled = _b.disabled,\n fill = _b.fill,\n intent = _b.intent,\n large = _b.large,\n small = _b.small,\n round = _b.round;\n var classes = classNames(Classes.INPUT_GROUP, Classes.intentClass(intent), (_a = {}, _a[Classes.DISABLED] = disabled, _a[Classes.FILL] = fill, _a[Classes.LARGE] = large, _a[Classes.SMALL] = small, _a[Classes.ROUND] = round, _a), className);\n\n var style = __assign(__assign({}, this.props.style), {\n paddingLeft: this.state.leftElementWidth,\n paddingRight: this.state.rightElementWidth\n });\n\n return React.createElement(\"div\", {\n className: classes\n }, this.maybeRenderLeftElement(), React.createElement(\"input\", __assign({\n type: \"text\"\n }, removeNonHTMLProps(this.props), {\n className: Classes.INPUT,\n ref: this.props.inputRef,\n style: style\n })), this.maybeRenderRightElement());\n };\n\n InputGroup.prototype.componentDidMount = function () {\n this.updateInputWidth();\n };\n\n InputGroup.prototype.componentDidUpdate = function (prevProps) {\n var _a = this.props,\n leftElement = _a.leftElement,\n rightElement = _a.rightElement;\n\n if (prevProps.leftElement !== leftElement || prevProps.rightElement !== rightElement) {\n this.updateInputWidth();\n }\n };\n\n InputGroup.prototype.validateProps = function (props) {\n if (props.leftElement != null && props.leftIcon != null) {\n console.warn(Errors.INPUT_WARN_LEFT_ELEMENT_LEFT_ICON_MUTEX);\n }\n };\n\n InputGroup.prototype.maybeRenderLeftElement = function () {\n var _a = this.props,\n leftElement = _a.leftElement,\n leftIcon = _a.leftIcon;\n\n if (leftElement != null) {\n return React.createElement(\"span\", {\n className: Classes.INPUT_LEFT_CONTAINER,\n ref: this.refHandlers.leftElement\n }, leftElement);\n } else if (leftIcon != null) {\n return React.createElement(Icon, {\n icon: leftIcon\n });\n }\n\n return undefined;\n };\n\n InputGroup.prototype.maybeRenderRightElement = function () {\n var rightElement = this.props.rightElement;\n\n if (rightElement == null) {\n return undefined;\n }\n\n return React.createElement(\"span\", {\n className: Classes.INPUT_ACTION,\n ref: this.refHandlers.rightElement\n }, rightElement);\n };\n\n InputGroup.prototype.updateInputWidth = function () {\n var _a = this.state,\n leftElementWidth = _a.leftElementWidth,\n rightElementWidth = _a.rightElementWidth;\n\n if (this.leftElement != null) {\n var clientWidth = this.leftElement.clientWidth; // small threshold to prevent infinite loops\n\n if (leftElementWidth === undefined || Math.abs(clientWidth - leftElementWidth) > 2) {\n this.setState({\n leftElementWidth: clientWidth\n });\n }\n } else {\n this.setState({\n leftElementWidth: undefined\n });\n }\n\n if (this.rightElement != null) {\n var clientWidth = this.rightElement.clientWidth; // small threshold to prevent infinite loops\n\n if (rightElementWidth === undefined || Math.abs(clientWidth - rightElementWidth) > 2) {\n this.setState({\n rightElementWidth: clientWidth\n });\n }\n } else {\n this.setState({\n rightElementWidth: undefined\n });\n }\n };\n\n InputGroup.displayName = DISPLAYNAME_PREFIX + \".InputGroup\";\n InputGroup = __decorate([polyfill], InputGroup);\n return InputGroup;\n}(AbstractPureComponent2);\n\nexport { InputGroup };","/*\n * Copyright 2020 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport * from \"./hotkeysTypes\";\nexport * from \"./hotkeys\";\nexport { Hotkey } from \"./hotkey\";\nexport { KeyCombo } from \"./keyCombo\"; // eslint-disable-next-line import/no-cycle\n\nexport { HotkeysTarget } from \"./hotkeysTarget\";\nexport { comboMatches, getKeyCombo, getKeyComboString, parseKeyCombo } from \"./hotkeyParser\"; // eslint-disable-next-line import/no-cycle\n\nexport { hideHotkeysDialog, setHotkeysDialogProps } from \"./hotkeysDialog\";","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends, __rest } from \"tslib\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Intent } from \"../../common\";\nimport { DISPLAYNAME_PREFIX } from \"../../common/props\";\nimport { MultiSlider } from \"./multiSlider\";\n\nvar Slider =\n/** @class */\nfunction (_super) {\n __extends(Slider, _super);\n\n function Slider() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Slider.prototype.render = function () {\n var _a = this.props,\n initialValue = _a.initialValue,\n intent = _a.intent,\n value = _a.value,\n onChange = _a.onChange,\n onRelease = _a.onRelease,\n props = __rest(_a, [\"initialValue\", \"intent\", \"value\", \"onChange\", \"onRelease\"]);\n\n return React.createElement(MultiSlider, __assign({}, props), React.createElement(MultiSlider.Handle, {\n value: value,\n intentAfter: value < initialValue ? intent : undefined,\n intentBefore: value >= initialValue ? intent : undefined,\n onChange: onChange,\n onRelease: onRelease\n }), React.createElement(MultiSlider.Handle, {\n value: initialValue,\n interactionKind: \"none\"\n }));\n };\n\n Slider.defaultProps = __assign(__assign({}, MultiSlider.defaultSliderProps), {\n initialValue: 0,\n intent: Intent.PRIMARY,\n value: 0\n });\n Slider.displayName = DISPLAYNAME_PREFIX + \".Slider\";\n Slider = __decorate([polyfill], Slider);\n return Slider;\n}(AbstractPureComponent2);\n\nexport { Slider };","/**\n * @module color-space/hwb\n */\n'use strict';\n\nvar rgb = require('./rgb');\n\nvar hsv = require('./hsv');\n\nvar hsl = require('./hsl');\n\nvar hwb = module.exports = {\n name: 'hwb',\n min: [0, 0, 0],\n max: [360, 100, 100],\n channel: ['hue', 'whiteness', 'blackness'],\n alias: ['HWB'],\n // http://dev.w3.org/csswg/css-color/#hwb-to-rgb\n rgb: function rgb(hwb) {\n var h = hwb[0] / 360,\n wh = hwb[1] / 100,\n bl = hwb[2] / 100,\n ratio = wh + bl,\n i,\n v,\n f,\n n;\n var r, g, b; // wh + bl cant be > 1\n\n if (ratio > 1) {\n wh /= ratio;\n bl /= ratio;\n }\n\n i = Math.floor(6 * h);\n v = 1 - bl;\n f = 6 * h - i; //if it is even\n\n if ((i & 0x01) !== 0) {\n f = 1 - f;\n }\n\n n = wh + f * (v - wh); // linear interpolation\n\n switch (i) {\n default:\n case 6:\n case 0:\n r = v;\n g = n;\n b = wh;\n break;\n\n case 1:\n r = n;\n g = v;\n b = wh;\n break;\n\n case 2:\n r = wh;\n g = v;\n b = n;\n break;\n\n case 3:\n r = wh;\n g = n;\n b = v;\n break;\n\n case 4:\n r = n;\n g = wh;\n b = v;\n break;\n\n case 5:\n r = v;\n g = wh;\n b = n;\n break;\n }\n\n return [r * 255, g * 255, b * 255];\n },\n // http://alvyray.com/Papers/CG/HWB_JGTv208.pdf\n hsv: function hsv(arg) {\n var h = arg[0],\n w = arg[1],\n b = arg[2],\n s,\n v; //if w+b > 100% - take proportion (how many times )\n\n if (w + b >= 100) {\n s = 0;\n v = 100 * w / (w + b);\n } //by default - take wiki formula\n else {\n s = 100 - w / (1 - b / 100);\n v = 100 - b;\n }\n\n return [h, s, v];\n },\n hsl: function hsl(arg) {\n return hsv.hsl(hwb.hsv(arg));\n }\n}; //extend rgb\n\nrgb.hwb = function (val) {\n var r = val[0],\n g = val[1],\n b = val[2],\n h = rgb.hsl(val)[0],\n w = 1 / 255 * Math.min(r, Math.min(g, b));\n b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n return [h, w * 100, b * 100];\n}; //keep proper hue on 0 values (conversion to rgb loses hue on zero-lightness)\n\n\nhsv.hwb = function (arg) {\n var h = arg[0],\n s = arg[1],\n v = arg[2];\n return [h, v === 0 ? 0 : v * (1 - s / 100), 100 - v];\n}; //extend hsl with proper conversions\n\n\nhsl.hwb = function (arg) {\n return hsv.hwb(hsl.hsv(arg));\n};","/**\n * Additional xyY space, where xy are relative chromacity params\n *\n * @module color-space/xyy\n */\n'use strict';\n\nvar xyz = require('./xyz');\n\nvar xyy = {\n name: 'xyy',\n min: [0, 0, 0],\n max: [1, 1, 100],\n channel: ['x', 'y', 'Y'],\n alias: ['xyY', 'Yxy', 'yxy']\n};\n\nxyy.xyz = function (arg) {\n var X, Y, Z, x, y;\n x = arg[0];\n y = arg[1];\n Y = arg[2];\n\n if (y === 0) {\n return [0, 0, 0];\n }\n\n X = x * Y / y;\n Z = (1 - x - y) * Y / y;\n return [X, Y, Z];\n};\n\nxyz.xyy = function (arg) {\n var sum, X, Y, Z;\n X = arg[0];\n Y = arg[1];\n Z = arg[2];\n sum = X + Y + Z;\n\n if (sum === 0) {\n return [0, 0, Y];\n }\n\n return [X / sum, Y / sum, Y];\n};\n\nmodule.exports = xyy;","/**\n * YUV https://en.wikipedia.org/?title=YUV\n *\n * @module color-space/yuv\n */\n'use strict';\n\nvar rgb = require('./rgb');\n\nvar yuv = module.exports = {\n name: 'yuv',\n min: [0, -0.5, -0.5],\n max: [1, 0.5, 0.5],\n channel: ['Y', 'U', 'V'],\n alias: ['YUV', 'EBU']\n};\n\nyuv.rgb = function (yuv) {\n var y = yuv[0],\n u = yuv[1],\n v = yuv[2],\n r,\n g,\n b;\n r = y * 1 + u * 0 + v * 1.13983;\n g = y * 1 + u * -0.39465 + v * -0.58060;\n b = y * 1 + u * 2.02311 + v * 0;\n r = Math.min(Math.max(0, r), 1);\n g = Math.min(Math.max(0, g), 1);\n b = Math.min(Math.max(0, b), 1);\n return [r * 255, g * 255, b * 255];\n}; //extend rgb\n\n\nrgb.yuv = function (rgb) {\n var r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255;\n var y = r * 0.299 + g * 0.587 + b * 0.114;\n var u = r * -0.14713 + g * -0.28886 + b * 0.436;\n var v = r * 0.615 + g * -0.51499 + b * -0.10001;\n return [y, u, v];\n};","/**\n * https://en.wikipedia.org/wiki/CIE_1960_color_space\n *\n * Obsolete color space\n *\n * @module color-space/ucs\n */\n'use strict';\n\nvar xyz = require('./xyz');\n\nvar ucs = module.exports = {\n name: 'ucs',\n min: [0, 0, 0],\n max: [100, 100, 100],\n channel: ['U', 'V', 'W'],\n alias: ['UCS', 'cie1960']\n};\n/**\n * UCS to XYZ\n *\n * @param {Array} ucs XYZ values\n *\n * @return {Array} UCS values\n */\n\nucs.xyz = function (ucs) {\n var u = ucs[0],\n v = ucs[1],\n w = ucs[2];\n return [1.5 * u, v, 1.5 * u - 3 * v + 2 * w];\n};\n/**\n * XYZ to UCS\n *\n * @param {Array} ucs UCS values\n *\n * @return {Array} XYZ values\n */\n\n\nxyz.ucs = function (xyz) {\n var x = xyz[0],\n y = xyz[1],\n z = xyz[2];\n return [x * 2 / 3, y, 0.5 * (-x + 3 * y + z)];\n};","/**\n * CIE LAB space model\n *\n * @module color-space/lab\n */\n'use strict';\n\nvar xyz = require('./xyz');\n\nmodule.exports = {\n name: 'lab',\n min: [0, -100, -100],\n max: [100, 100, 100],\n channel: ['lightness', 'a', 'b'],\n alias: ['LAB', 'cielab'],\n xyz: function xyz(lab) {\n var l = lab[0],\n a = lab[1],\n b = lab[2],\n x,\n y,\n z,\n y2;\n\n if (l <= 8) {\n y = l * 100 / 903.3;\n y2 = 7.787 * (y / 100) + 16 / 116;\n } else {\n y = 100 * Math.pow((l + 16) / 116, 3);\n y2 = Math.pow(y / 100, 1 / 3);\n }\n\n x = x / 95.047 <= 0.008856 ? x = 95.047 * (a / 500 + y2 - 16 / 116) / 7.787 : 95.047 * Math.pow(a / 500 + y2, 3);\n z = z / 108.883 <= 0.008859 ? z = 108.883 * (y2 - b / 200 - 16 / 116) / 7.787 : 108.883 * Math.pow(y2 - b / 200, 3);\n return [x, y, z];\n }\n}; //extend xyz\n\nxyz.lab = function (xyz) {\n var x = xyz[0],\n y = xyz[1],\n z = xyz[2],\n l,\n a,\n b;\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;\n y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;\n z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;\n l = 116 * y - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n return [l, a, b];\n};","/**\n * CIE LUV (C'est la vie)\n *\n * @module color-space/luv\n */\n'use strict';\n\nvar _xyz = require('./xyz');\n\nmodule.exports = {\n name: 'luv',\n //NOTE: luv has no rigidly defined limits\n //easyrgb fails to get proper coords\n //boronine states no rigid limits\n //colorMine refers this ones:\n min: [0, -134, -140],\n max: [100, 224, 122],\n channel: ['lightness', 'u', 'v'],\n alias: ['LUV', 'cieluv', 'cie1976'],\n xyz: function xyz(arg, i, o) {\n var _u, _v, l, u, v, x, y, z, xn, yn, zn, un, vn;\n\n l = arg[0], u = arg[1], v = arg[2];\n if (l === 0) return [0, 0, 0]; //get constants\n //var e = 0.008856451679035631; //(6/29)^3\n\n var k = 0.0011070564598794539; //(3/29)^3\n //get illuminant/observer\n\n i = i || 'D65';\n o = o || 2;\n xn = _xyz.whitepoint[o][i][0];\n yn = _xyz.whitepoint[o][i][1];\n zn = _xyz.whitepoint[o][i][2];\n un = 4 * xn / (xn + 15 * yn + 3 * zn);\n vn = 9 * yn / (xn + 15 * yn + 3 * zn); // un = 0.19783000664283;\n // vn = 0.46831999493879;\n\n _u = u / (13 * l) + un || 0;\n _v = v / (13 * l) + vn || 0;\n y = l > 8 ? yn * Math.pow((l + 16) / 116, 3) : yn * l * k; //wikipedia method\n\n x = y * 9 * _u / (4 * _v) || 0;\n z = y * (12 - 3 * _u - 20 * _v) / (4 * _v) || 0; //boronine method\n //https://github.com/boronine/husl/blob/master/husl.coffee#L201\n // x = 0 - (9 * y * _u) / ((_u - 4) * _v - _u * _v);\n // z = (9 * y - (15 * _v * y) - (_v * x)) / (3 * _v);\n\n return [x, y, z];\n }\n}; // http://www.brucelindbloom.com/index.html?Equations.html\n// https://github.com/boronine/husl/blob/master/husl.coffee\n//i - illuminant\n//o - observer\n\n_xyz.luv = function (arg, i, o) {\n var _u, _v, l, u, v, x, y, z, xn, yn, zn, un, vn; //get constants\n\n\n var e = 0.008856451679035631; //(6/29)^3\n\n var k = 903.2962962962961; //(29/3)^3\n //get illuminant/observer coords\n\n i = i || 'D65';\n o = o || 2;\n xn = _xyz.whitepoint[o][i][0];\n yn = _xyz.whitepoint[o][i][1];\n zn = _xyz.whitepoint[o][i][2];\n un = 4 * xn / (xn + 15 * yn + 3 * zn);\n vn = 9 * yn / (xn + 15 * yn + 3 * zn);\n x = arg[0], y = arg[1], z = arg[2];\n _u = 4 * x / (x + 15 * y + 3 * z) || 0;\n _v = 9 * y / (x + 15 * y + 3 * z) || 0;\n var yr = y / yn;\n l = yr <= e ? k * yr : 116 * Math.pow(yr, 1 / 3) - 16;\n u = 13 * l * (_u - un);\n v = 13 * l * (_v - vn);\n return [l, u, v];\n};","// Generated by Haxe 3.4.4\nvar hsluv = hsluv || {};\n\nhsluv.Geometry = function () {};\n\nhsluv.Geometry.intersectLineLine = function (a, b) {\n var x = (a.intercept - b.intercept) / (b.slope - a.slope);\n var y = a.slope * x + a.intercept;\n return {\n x: x,\n y: y\n };\n};\n\nhsluv.Geometry.distanceFromOrigin = function (point) {\n return Math.sqrt(Math.pow(point.x, 2) + Math.pow(point.y, 2));\n};\n\nhsluv.Geometry.distanceLineFromOrigin = function (line) {\n return Math.abs(line.intercept) / Math.sqrt(Math.pow(line.slope, 2) + 1);\n};\n\nhsluv.Geometry.perpendicularThroughPoint = function (line, point) {\n var slope = -1 / line.slope;\n var intercept = point.y - slope * point.x;\n return {\n slope: slope,\n intercept: intercept\n };\n};\n\nhsluv.Geometry.angleFromOrigin = function (point) {\n return Math.atan2(point.y, point.x);\n};\n\nhsluv.Geometry.normalizeAngle = function (angle) {\n var m = 2 * Math.PI;\n return (angle % m + m) % m;\n};\n\nhsluv.Geometry.lengthOfRayUntilIntersect = function (theta, line) {\n return line.intercept / (Math.sin(theta) - line.slope * Math.cos(theta));\n};\n\nhsluv.Hsluv = function () {};\n\nhsluv.Hsluv.getBounds = function (L) {\n var result = [];\n var sub1 = Math.pow(L + 16, 3) / 1560896;\n var sub2 = sub1 > hsluv.Hsluv.epsilon ? sub1 : L / hsluv.Hsluv.kappa;\n var _g = 0;\n\n while (_g < 3) {\n var c = _g++;\n var m1 = hsluv.Hsluv.m[c][0];\n var m2 = hsluv.Hsluv.m[c][1];\n var m3 = hsluv.Hsluv.m[c][2];\n var _g1 = 0;\n\n while (_g1 < 2) {\n var t = _g1++;\n var top1 = (284517 * m1 - 94839 * m3) * sub2;\n var top2 = (838422 * m3 + 769860 * m2 + 731718 * m1) * L * sub2 - 769860 * t * L;\n var bottom = (632260 * m3 - 126452 * m2) * sub2 + 126452 * t;\n result.push({\n slope: top1 / bottom,\n intercept: top2 / bottom\n });\n }\n }\n\n return result;\n};\n\nhsluv.Hsluv.maxSafeChromaForL = function (L) {\n var bounds = hsluv.Hsluv.getBounds(L);\n var min = Infinity;\n var _g = 0;\n\n while (_g < bounds.length) {\n var bound = bounds[_g];\n ++_g;\n var length = hsluv.Geometry.distanceLineFromOrigin(bound);\n min = Math.min(min, length);\n }\n\n return min;\n};\n\nhsluv.Hsluv.maxChromaForLH = function (L, H) {\n var hrad = H / 360 * Math.PI * 2;\n var bounds = hsluv.Hsluv.getBounds(L);\n var min = Infinity;\n var _g = 0;\n\n while (_g < bounds.length) {\n var bound = bounds[_g];\n ++_g;\n var length = hsluv.Geometry.lengthOfRayUntilIntersect(hrad, bound);\n\n if (length >= 0) {\n min = Math.min(min, length);\n }\n }\n\n return min;\n};\n\nhsluv.Hsluv.dotProduct = function (a, b) {\n var sum = 0;\n var _g1 = 0;\n var _g = a.length;\n\n while (_g1 < _g) {\n var i = _g1++;\n sum += a[i] * b[i];\n }\n\n return sum;\n};\n\nhsluv.Hsluv.fromLinear = function (c) {\n if (c <= 0.0031308) {\n return 12.92 * c;\n } else {\n return 1.055 * Math.pow(c, 0.416666666666666685) - 0.055;\n }\n};\n\nhsluv.Hsluv.toLinear = function (c) {\n if (c > 0.04045) {\n return Math.pow((c + 0.055) / 1.055, 2.4);\n } else {\n return c / 12.92;\n }\n};\n\nhsluv.Hsluv.xyzToRgb = function (tuple) {\n return [hsluv.Hsluv.fromLinear(hsluv.Hsluv.dotProduct(hsluv.Hsluv.m[0], tuple)), hsluv.Hsluv.fromLinear(hsluv.Hsluv.dotProduct(hsluv.Hsluv.m[1], tuple)), hsluv.Hsluv.fromLinear(hsluv.Hsluv.dotProduct(hsluv.Hsluv.m[2], tuple))];\n};\n\nhsluv.Hsluv.rgbToXyz = function (tuple) {\n var rgbl = [hsluv.Hsluv.toLinear(tuple[0]), hsluv.Hsluv.toLinear(tuple[1]), hsluv.Hsluv.toLinear(tuple[2])];\n return [hsluv.Hsluv.dotProduct(hsluv.Hsluv.minv[0], rgbl), hsluv.Hsluv.dotProduct(hsluv.Hsluv.minv[1], rgbl), hsluv.Hsluv.dotProduct(hsluv.Hsluv.minv[2], rgbl)];\n};\n\nhsluv.Hsluv.yToL = function (Y) {\n if (Y <= hsluv.Hsluv.epsilon) {\n return Y / hsluv.Hsluv.refY * hsluv.Hsluv.kappa;\n } else {\n return 116 * Math.pow(Y / hsluv.Hsluv.refY, 0.333333333333333315) - 16;\n }\n};\n\nhsluv.Hsluv.lToY = function (L) {\n if (L <= 8) {\n return hsluv.Hsluv.refY * L / hsluv.Hsluv.kappa;\n } else {\n return hsluv.Hsluv.refY * Math.pow((L + 16) / 116, 3);\n }\n};\n\nhsluv.Hsluv.xyzToLuv = function (tuple) {\n var X = tuple[0];\n var Y = tuple[1];\n var Z = tuple[2];\n var divider = X + 15 * Y + 3 * Z;\n var varU = 4 * X;\n var varV = 9 * Y;\n\n if (divider != 0) {\n varU /= divider;\n varV /= divider;\n } else {\n varU = NaN;\n varV = NaN;\n }\n\n var L = hsluv.Hsluv.yToL(Y);\n\n if (L == 0) {\n return [0, 0, 0];\n }\n\n var U = 13 * L * (varU - hsluv.Hsluv.refU);\n var V = 13 * L * (varV - hsluv.Hsluv.refV);\n return [L, U, V];\n};\n\nhsluv.Hsluv.luvToXyz = function (tuple) {\n var L = tuple[0];\n var U = tuple[1];\n var V = tuple[2];\n\n if (L == 0) {\n return [0, 0, 0];\n }\n\n var varU = U / (13 * L) + hsluv.Hsluv.refU;\n var varV = V / (13 * L) + hsluv.Hsluv.refV;\n var Y = hsluv.Hsluv.lToY(L);\n var X = 0 - 9 * Y * varU / ((varU - 4) * varV - varU * varV);\n var Z = (9 * Y - 15 * varV * Y - varV * X) / (3 * varV);\n return [X, Y, Z];\n};\n\nhsluv.Hsluv.luvToLch = function (tuple) {\n var L = tuple[0];\n var U = tuple[1];\n var V = tuple[2];\n var C = Math.sqrt(U * U + V * V);\n var H;\n\n if (C < 0.00000001) {\n H = 0;\n } else {\n var Hrad = Math.atan2(V, U);\n H = Hrad * 180.0 / Math.PI;\n\n if (H < 0) {\n H = 360 + H;\n }\n }\n\n return [L, C, H];\n};\n\nhsluv.Hsluv.lchToLuv = function (tuple) {\n var L = tuple[0];\n var C = tuple[1];\n var H = tuple[2];\n var Hrad = H / 360.0 * 2 * Math.PI;\n var U = Math.cos(Hrad) * C;\n var V = Math.sin(Hrad) * C;\n return [L, U, V];\n};\n\nhsluv.Hsluv.hsluvToLch = function (tuple) {\n var H = tuple[0];\n var S = tuple[1];\n var L = tuple[2];\n\n if (L > 99.9999999) {\n return [100, 0, H];\n }\n\n if (L < 0.00000001) {\n return [0, 0, H];\n }\n\n var max = hsluv.Hsluv.maxChromaForLH(L, H);\n var C = max / 100 * S;\n return [L, C, H];\n};\n\nhsluv.Hsluv.lchToHsluv = function (tuple) {\n var L = tuple[0];\n var C = tuple[1];\n var H = tuple[2];\n\n if (L > 99.9999999) {\n return [H, 0, 100];\n }\n\n if (L < 0.00000001) {\n return [H, 0, 0];\n }\n\n var max = hsluv.Hsluv.maxChromaForLH(L, H);\n var S = C / max * 100;\n return [H, S, L];\n};\n\nhsluv.Hsluv.hpluvToLch = function (tuple) {\n var H = tuple[0];\n var S = tuple[1];\n var L = tuple[2];\n\n if (L > 99.9999999) {\n return [100, 0, H];\n }\n\n if (L < 0.00000001) {\n return [0, 0, H];\n }\n\n var max = hsluv.Hsluv.maxSafeChromaForL(L);\n var C = max / 100 * S;\n return [L, C, H];\n};\n\nhsluv.Hsluv.lchToHpluv = function (tuple) {\n var L = tuple[0];\n var C = tuple[1];\n var H = tuple[2];\n\n if (L > 99.9999999) {\n return [H, 0, 100];\n }\n\n if (L < 0.00000001) {\n return [H, 0, 0];\n }\n\n var max = hsluv.Hsluv.maxSafeChromaForL(L);\n var S = C / max * 100;\n return [H, S, L];\n};\n\nhsluv.Hsluv.rgbToHex = function (tuple) {\n var h = \"#\";\n var _g = 0;\n\n while (_g < 3) {\n var i = _g++;\n var chan = tuple[i];\n var c = Math.round(chan * 255);\n var digit2 = c % 16;\n var digit1 = (c - digit2) / 16 | 0;\n h += hsluv.Hsluv.hexChars.charAt(digit1) + hsluv.Hsluv.hexChars.charAt(digit2);\n }\n\n return h;\n};\n\nhsluv.Hsluv.hexToRgb = function (hex) {\n hex = hex.toLowerCase();\n var ret = [];\n var _g = 0;\n\n while (_g < 3) {\n var i = _g++;\n var digit1 = hsluv.Hsluv.hexChars.indexOf(hex.charAt(i * 2 + 1));\n var digit2 = hsluv.Hsluv.hexChars.indexOf(hex.charAt(i * 2 + 2));\n var n = digit1 * 16 + digit2;\n ret.push(n / 255.0);\n }\n\n return ret;\n};\n\nhsluv.Hsluv.lchToRgb = function (tuple) {\n return hsluv.Hsluv.xyzToRgb(hsluv.Hsluv.luvToXyz(hsluv.Hsluv.lchToLuv(tuple)));\n};\n\nhsluv.Hsluv.rgbToLch = function (tuple) {\n return hsluv.Hsluv.luvToLch(hsluv.Hsluv.xyzToLuv(hsluv.Hsluv.rgbToXyz(tuple)));\n};\n\nhsluv.Hsluv.hsluvToRgb = function (tuple) {\n return hsluv.Hsluv.lchToRgb(hsluv.Hsluv.hsluvToLch(tuple));\n};\n\nhsluv.Hsluv.rgbToHsluv = function (tuple) {\n return hsluv.Hsluv.lchToHsluv(hsluv.Hsluv.rgbToLch(tuple));\n};\n\nhsluv.Hsluv.hpluvToRgb = function (tuple) {\n return hsluv.Hsluv.lchToRgb(hsluv.Hsluv.hpluvToLch(tuple));\n};\n\nhsluv.Hsluv.rgbToHpluv = function (tuple) {\n return hsluv.Hsluv.lchToHpluv(hsluv.Hsluv.rgbToLch(tuple));\n};\n\nhsluv.Hsluv.hsluvToHex = function (tuple) {\n return hsluv.Hsluv.rgbToHex(hsluv.Hsluv.hsluvToRgb(tuple));\n};\n\nhsluv.Hsluv.hpluvToHex = function (tuple) {\n return hsluv.Hsluv.rgbToHex(hsluv.Hsluv.hpluvToRgb(tuple));\n};\n\nhsluv.Hsluv.hexToHsluv = function (s) {\n return hsluv.Hsluv.rgbToHsluv(hsluv.Hsluv.hexToRgb(s));\n};\n\nhsluv.Hsluv.hexToHpluv = function (s) {\n return hsluv.Hsluv.rgbToHpluv(hsluv.Hsluv.hexToRgb(s));\n};\n\nhsluv.Hsluv.m = [[3.240969941904521, -1.537383177570093, -0.498610760293], [-0.96924363628087, 1.87596750150772, 0.041555057407175], [0.055630079696993, -0.20397695888897, 1.056971514242878]];\nhsluv.Hsluv.minv = [[0.41239079926595, 0.35758433938387, 0.18048078840183], [0.21263900587151, 0.71516867876775, 0.072192315360733], [0.019330818715591, 0.11919477979462, 0.95053215224966]];\nhsluv.Hsluv.refY = 1.0;\nhsluv.Hsluv.refU = 0.19783000664283;\nhsluv.Hsluv.refV = 0.46831999493879;\nhsluv.Hsluv.kappa = 903.2962962;\nhsluv.Hsluv.epsilon = 0.0088564516;\nhsluv.Hsluv.hexChars = \"0123456789abcdef\";\nvar root = {\n \"hsluvToRgb\": hsluv.Hsluv.hsluvToRgb,\n \"rgbToHsluv\": hsluv.Hsluv.rgbToHsluv,\n \"hpluvToRgb\": hsluv.Hsluv.hpluvToRgb,\n \"rgbToHpluv\": hsluv.Hsluv.rgbToHpluv,\n \"hsluvToHex\": hsluv.Hsluv.hsluvToHex,\n \"hexToHsluv\": hsluv.Hsluv.hexToHsluv,\n \"hpluvToHex\": hsluv.Hsluv.hpluvToHex,\n \"hexToHpluv\": hsluv.Hsluv.hexToHpluv,\n \"lchToHpluv\": hsluv.Hsluv.lchToHpluv,\n \"hpluvToLch\": hsluv.Hsluv.hpluvToLch,\n \"lchToHsluv\": hsluv.Hsluv.lchToHsluv,\n \"hsluvToLch\": hsluv.Hsluv.hsluvToLch,\n \"lchToLuv\": hsluv.Hsluv.lchToLuv,\n \"luvToLch\": hsluv.Hsluv.luvToLch,\n \"xyzToLuv\": hsluv.Hsluv.xyzToLuv,\n \"luvToXyz\": hsluv.Hsluv.luvToXyz,\n \"xyzToRgb\": hsluv.Hsluv.xyzToRgb,\n \"rgbToXyz\": hsluv.Hsluv.rgbToXyz,\n \"lchToRgb\": hsluv.Hsluv.lchToRgb,\n \"rgbToLch\": hsluv.Hsluv.rgbToLch\n};\nmodule.exports = root;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction pipe(firstFn) {\n var fns = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n fns[_i - 1] = arguments[_i];\n }\n\n return fns.reduce(function (prevFn, nextFn) {\n return function (value) {\n return nextFn(prevFn(value));\n };\n }, firstFn);\n}\n\nexports.pipe = pipe;","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\nmodule.exports = freeGlobal;","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n\n\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers.\n isBuff && (key == 'offset' || key == 'parent') || // PhantomJS 2 has enumerable non-index properties on typed arrays.\n isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') || // Skip index properties.\n isIndex(key, length)))) {\n result.push(key);\n }\n }\n\n return result;\n}\n\nmodule.exports = arrayLikeKeys;","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/** Built-in value references. */\n\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n\nvar isArguments = baseIsArguments(function () {\n return arguments;\n}()) ? baseIsArguments : function (value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n};\nmodule.exports = isArguments;","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n/** Used to detect unsigned integer values. */\n\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n/* Node.js helper references. */\n\n\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\nmodule.exports = isTypedArray;","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function (arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n/** `Object#toString` result references. */\n\n\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n } // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n\n\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n\n return result;\n}\n\nmodule.exports = arrayMap;","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n/** Used to resolve the decompiled source of functions. */\n\nvar funcToString = funcProto.toString;\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n\n try {\n return func + '';\n } catch (e) {}\n }\n\n return '';\n}\n\nmodule.exports = toSource;","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n\n\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n\n if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {\n return value !== value && other !== other;\n }\n\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n/** Used to compose bitmasks for value comparisons. */\n\n\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n } // Assume cyclic values are equal.\n\n\n var stacked = stack.get(array);\n\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n\n var index = -1,\n result = true,\n seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined;\n stack.set(array, other);\n stack.set(other, array); // Ignore non-index properties.\n\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);\n }\n\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n\n result = false;\n break;\n } // Recursively compare arrays (susceptible to call stack limits).\n\n\n if (seen) {\n if (!arraySome(other, function (othValue, othIndex) {\n if (!cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n result = false;\n break;\n }\n }\n\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;","var root = require('./_root');\n/** Built-in value references. */\n\n\nvar Uint8Array = root.Uint8Array;\nmodule.exports = Uint8Array;","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n\n\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n\n\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n\n return array;\n}\n\nmodule.exports = arrayPush;","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;","var isObject = require('./isObject');\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n\n\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function (object) {\n if (object == null) {\n return false;\n }\n\n return object[key] === srcValue && (srcValue !== undefined || key in Object(object));\n };\n}\n\nmodule.exports = matchesStrictComparable;","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n\n\nfunction baseGet(object, path) {\n path = castPath(path, object);\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n\n return index && index == length ? object : undefined;\n}\n\nmodule.exports = baseGet;","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n\n\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;","var defineProperty = require('./_defineProperty');\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n\n\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n\n\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\n\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function (object) {\n var result = [];\n\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n\n return result;\n};\nmodule.exports = getSymbolsIn;","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\nmodule.exports = freeGlobal;","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n/** Used to resolve the decompiled source of functions. */\n\nvar funcToString = funcProto.toString;\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n\n try {\n return func + '';\n } catch (e) {}\n }\n\n return '';\n}\n\nmodule.exports = toSource;","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n\n\nfunction assignMergeValue(object, key, value) {\n if (value !== undefined && !eq(object[key], value) || value === undefined && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;","var getNative = require('./_getNative');\n\nvar defineProperty = function () {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}();\n\nmodule.exports = defineProperty;","var createBaseFor = require('./_createBaseFor');\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n\n\nvar baseFor = createBaseFor();\nmodule.exports = baseFor;","var root = require('./_root');\n/** Built-in value references. */\n\n\nvar Uint8Array = root.Uint8Array;\nmodule.exports = Uint8Array;","var overArg = require('./_overArg');\n/** Built-in value references. */\n\n\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\nmodule.exports = getPrototype;","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function (arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n\n\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers.\n isBuff && (key == 'offset' || key == 'parent') || // PhantomJS 2 has enumerable non-index properties on typed arrays.\n isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') || // Skip index properties.\n isIndex(key, length)))) {\n result.push(key);\n }\n }\n\n return result;\n}\n\nmodule.exports = arrayLikeKeys;","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n/** Error message constants. */\n\n\nvar FUNC_ERROR_TEXT = 'Expected a function';\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n wait = toNumber(wait) || 0;\n\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time; // Start the timer for the trailing edge.\n\n timerId = setTimeout(timerExpired, wait); // Invoke the leading edge.\n\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n\n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n\n function timerExpired() {\n var time = now();\n\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n } // Restart the timer.\n\n\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n\n return result;\n }\n\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorWrap = undefined;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _debounce = require('lodash/debounce');\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _color = require('../../helpers/color');\n\nvar _color2 = _interopRequireDefault(_color);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar ColorWrap = exports.ColorWrap = function ColorWrap(Picker) {\n var ColorPicker = function (_ref) {\n _inherits(ColorPicker, _ref);\n\n function ColorPicker(props) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this));\n\n _this.handleChange = function (data, event) {\n var isValidColor = _color2.default.simpleCheckForValidColor(data);\n\n if (isValidColor) {\n var colors = _color2.default.toState(data, data.h || _this.state.oldHue);\n\n _this.setState(colors);\n\n _this.props.onChangeComplete && _this.debounce(_this.props.onChangeComplete, colors, event);\n _this.props.onChange && _this.props.onChange(colors, event);\n }\n };\n\n _this.handleSwatchHover = function (data, event) {\n var isValidColor = _color2.default.simpleCheckForValidColor(data);\n\n if (isValidColor) {\n var colors = _color2.default.toState(data, data.h || _this.state.oldHue);\n\n _this.props.onSwatchHover && _this.props.onSwatchHover(colors, event);\n }\n };\n\n _this.state = _extends({}, _color2.default.toState(props.color, 0));\n _this.debounce = (0, _debounce2.default)(function (fn, data, event) {\n fn(data, event);\n }, 100);\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'render',\n value: function render() {\n var optionalEvents = {};\n\n if (this.props.onSwatchHover) {\n optionalEvents.onSwatchHover = this.handleSwatchHover;\n }\n\n return _react2.default.createElement(Picker, _extends({}, this.props, this.state, {\n onChange: this.handleChange\n }, optionalEvents));\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n return _extends({}, _color2.default.toState(nextProps.color, state.oldHue));\n }\n }]);\n\n return ColorPicker;\n }(_react.PureComponent || _react.Component);\n\n ColorPicker.propTypes = _extends({}, Picker.propTypes);\n ColorPicker.defaultProps = _extends({}, Picker.defaultProps, {\n color: {\n h: 250,\n s: 0.50,\n l: 0.20,\n a: 1\n }\n });\n return ColorPicker;\n};\n\nexports.default = ColorWrap;","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n\n\nvar baseEach = createBaseEach(baseForOwn);\nmodule.exports = baseEach;","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n\n return result;\n}\n\nmodule.exports = arrayMap;","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n\n\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n\n if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {\n return value !== value && other !== other;\n }\n\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n/** Used to compose bitmasks for value comparisons. */\n\n\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n } // Assume cyclic values are equal.\n\n\n var stacked = stack.get(array);\n\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n\n var index = -1,\n result = true,\n seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined;\n stack.set(array, other);\n stack.set(other, array); // Ignore non-index properties.\n\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);\n }\n\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n\n result = false;\n break;\n } // Recursively compare arrays (susceptible to call stack limits).\n\n\n if (seen) {\n if (!arraySome(other, function (othValue, othIndex) {\n if (!cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n result = false;\n break;\n }\n }\n\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;","var isObject = require('./isObject');\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n\n\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function (object) {\n if (object == null) {\n return false;\n }\n\n return object[key] === srcValue && (srcValue !== undefined || key in Object(object));\n };\n}\n\nmodule.exports = matchesStrictComparable;","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n\n\nfunction baseGet(object, path) {\n path = castPath(path, object);\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n\n return index && index == length ? object : undefined;\n}\n\nmodule.exports = baseGet;","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n\n\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;","export var red = {\n \"50\": \"#ffebee\",\n \"100\": \"#ffcdd2\",\n \"200\": \"#ef9a9a\",\n \"300\": \"#e57373\",\n \"400\": \"#ef5350\",\n \"500\": \"#f44336\",\n \"600\": \"#e53935\",\n \"700\": \"#d32f2f\",\n \"800\": \"#c62828\",\n \"900\": \"#b71c1c\",\n \"a100\": \"#ff8a80\",\n \"a200\": \"#ff5252\",\n \"a400\": \"#ff1744\",\n \"a700\": \"#d50000\"\n};\nexport var pink = {\n \"50\": \"#fce4ec\",\n \"100\": \"#f8bbd0\",\n \"200\": \"#f48fb1\",\n \"300\": \"#f06292\",\n \"400\": \"#ec407a\",\n \"500\": \"#e91e63\",\n \"600\": \"#d81b60\",\n \"700\": \"#c2185b\",\n \"800\": \"#ad1457\",\n \"900\": \"#880e4f\",\n \"a100\": \"#ff80ab\",\n \"a200\": \"#ff4081\",\n \"a400\": \"#f50057\",\n \"a700\": \"#c51162\"\n};\nexport var purple = {\n \"50\": \"#f3e5f5\",\n \"100\": \"#e1bee7\",\n \"200\": \"#ce93d8\",\n \"300\": \"#ba68c8\",\n \"400\": \"#ab47bc\",\n \"500\": \"#9c27b0\",\n \"600\": \"#8e24aa\",\n \"700\": \"#7b1fa2\",\n \"800\": \"#6a1b9a\",\n \"900\": \"#4a148c\",\n \"a100\": \"#ea80fc\",\n \"a200\": \"#e040fb\",\n \"a400\": \"#d500f9\",\n \"a700\": \"#aa00ff\"\n};\nexport var deepPurple = {\n \"50\": \"#ede7f6\",\n \"100\": \"#d1c4e9\",\n \"200\": \"#b39ddb\",\n \"300\": \"#9575cd\",\n \"400\": \"#7e57c2\",\n \"500\": \"#673ab7\",\n \"600\": \"#5e35b1\",\n \"700\": \"#512da8\",\n \"800\": \"#4527a0\",\n \"900\": \"#311b92\",\n \"a100\": \"#b388ff\",\n \"a200\": \"#7c4dff\",\n \"a400\": \"#651fff\",\n \"a700\": \"#6200ea\"\n};\nexport var indigo = {\n \"50\": \"#e8eaf6\",\n \"100\": \"#c5cae9\",\n \"200\": \"#9fa8da\",\n \"300\": \"#7986cb\",\n \"400\": \"#5c6bc0\",\n \"500\": \"#3f51b5\",\n \"600\": \"#3949ab\",\n \"700\": \"#303f9f\",\n \"800\": \"#283593\",\n \"900\": \"#1a237e\",\n \"a100\": \"#8c9eff\",\n \"a200\": \"#536dfe\",\n \"a400\": \"#3d5afe\",\n \"a700\": \"#304ffe\"\n};\nexport var blue = {\n \"50\": \"#e3f2fd\",\n \"100\": \"#bbdefb\",\n \"200\": \"#90caf9\",\n \"300\": \"#64b5f6\",\n \"400\": \"#42a5f5\",\n \"500\": \"#2196f3\",\n \"600\": \"#1e88e5\",\n \"700\": \"#1976d2\",\n \"800\": \"#1565c0\",\n \"900\": \"#0d47a1\",\n \"a100\": \"#82b1ff\",\n \"a200\": \"#448aff\",\n \"a400\": \"#2979ff\",\n \"a700\": \"#2962ff\"\n};\nexport var lightBlue = {\n \"50\": \"#e1f5fe\",\n \"100\": \"#b3e5fc\",\n \"200\": \"#81d4fa\",\n \"300\": \"#4fc3f7\",\n \"400\": \"#29b6f6\",\n \"500\": \"#03a9f4\",\n \"600\": \"#039be5\",\n \"700\": \"#0288d1\",\n \"800\": \"#0277bd\",\n \"900\": \"#01579b\",\n \"a100\": \"#80d8ff\",\n \"a200\": \"#40c4ff\",\n \"a400\": \"#00b0ff\",\n \"a700\": \"#0091ea\"\n};\nexport var cyan = {\n \"50\": \"#e0f7fa\",\n \"100\": \"#b2ebf2\",\n \"200\": \"#80deea\",\n \"300\": \"#4dd0e1\",\n \"400\": \"#26c6da\",\n \"500\": \"#00bcd4\",\n \"600\": \"#00acc1\",\n \"700\": \"#0097a7\",\n \"800\": \"#00838f\",\n \"900\": \"#006064\",\n \"a100\": \"#84ffff\",\n \"a200\": \"#18ffff\",\n \"a400\": \"#00e5ff\",\n \"a700\": \"#00b8d4\"\n};\nexport var teal = {\n \"50\": \"#e0f2f1\",\n \"100\": \"#b2dfdb\",\n \"200\": \"#80cbc4\",\n \"300\": \"#4db6ac\",\n \"400\": \"#26a69a\",\n \"500\": \"#009688\",\n \"600\": \"#00897b\",\n \"700\": \"#00796b\",\n \"800\": \"#00695c\",\n \"900\": \"#004d40\",\n \"a100\": \"#a7ffeb\",\n \"a200\": \"#64ffda\",\n \"a400\": \"#1de9b6\",\n \"a700\": \"#00bfa5\"\n};\nexport var green = {\n \"50\": \"#e8f5e9\",\n \"100\": \"#c8e6c9\",\n \"200\": \"#a5d6a7\",\n \"300\": \"#81c784\",\n \"400\": \"#66bb6a\",\n \"500\": \"#4caf50\",\n \"600\": \"#43a047\",\n \"700\": \"#388e3c\",\n \"800\": \"#2e7d32\",\n \"900\": \"#1b5e20\",\n \"a100\": \"#b9f6ca\",\n \"a200\": \"#69f0ae\",\n \"a400\": \"#00e676\",\n \"a700\": \"#00c853\"\n};\nexport var lightGreen = {\n \"50\": \"#f1f8e9\",\n \"100\": \"#dcedc8\",\n \"200\": \"#c5e1a5\",\n \"300\": \"#aed581\",\n \"400\": \"#9ccc65\",\n \"500\": \"#8bc34a\",\n \"600\": \"#7cb342\",\n \"700\": \"#689f38\",\n \"800\": \"#558b2f\",\n \"900\": \"#33691e\",\n \"a100\": \"#ccff90\",\n \"a200\": \"#b2ff59\",\n \"a400\": \"#76ff03\",\n \"a700\": \"#64dd17\"\n};\nexport var lime = {\n \"50\": \"#f9fbe7\",\n \"100\": \"#f0f4c3\",\n \"200\": \"#e6ee9c\",\n \"300\": \"#dce775\",\n \"400\": \"#d4e157\",\n \"500\": \"#cddc39\",\n \"600\": \"#c0ca33\",\n \"700\": \"#afb42b\",\n \"800\": \"#9e9d24\",\n \"900\": \"#827717\",\n \"a100\": \"#f4ff81\",\n \"a200\": \"#eeff41\",\n \"a400\": \"#c6ff00\",\n \"a700\": \"#aeea00\"\n};\nexport var yellow = {\n \"50\": \"#fffde7\",\n \"100\": \"#fff9c4\",\n \"200\": \"#fff59d\",\n \"300\": \"#fff176\",\n \"400\": \"#ffee58\",\n \"500\": \"#ffeb3b\",\n \"600\": \"#fdd835\",\n \"700\": \"#fbc02d\",\n \"800\": \"#f9a825\",\n \"900\": \"#f57f17\",\n \"a100\": \"#ffff8d\",\n \"a200\": \"#ffff00\",\n \"a400\": \"#ffea00\",\n \"a700\": \"#ffd600\"\n};\nexport var amber = {\n \"50\": \"#fff8e1\",\n \"100\": \"#ffecb3\",\n \"200\": \"#ffe082\",\n \"300\": \"#ffd54f\",\n \"400\": \"#ffca28\",\n \"500\": \"#ffc107\",\n \"600\": \"#ffb300\",\n \"700\": \"#ffa000\",\n \"800\": \"#ff8f00\",\n \"900\": \"#ff6f00\",\n \"a100\": \"#ffe57f\",\n \"a200\": \"#ffd740\",\n \"a400\": \"#ffc400\",\n \"a700\": \"#ffab00\"\n};\nexport var orange = {\n \"50\": \"#fff3e0\",\n \"100\": \"#ffe0b2\",\n \"200\": \"#ffcc80\",\n \"300\": \"#ffb74d\",\n \"400\": \"#ffa726\",\n \"500\": \"#ff9800\",\n \"600\": \"#fb8c00\",\n \"700\": \"#f57c00\",\n \"800\": \"#ef6c00\",\n \"900\": \"#e65100\",\n \"a100\": \"#ffd180\",\n \"a200\": \"#ffab40\",\n \"a400\": \"#ff9100\",\n \"a700\": \"#ff6d00\"\n};\nexport var deepOrange = {\n \"50\": \"#fbe9e7\",\n \"100\": \"#ffccbc\",\n \"200\": \"#ffab91\",\n \"300\": \"#ff8a65\",\n \"400\": \"#ff7043\",\n \"500\": \"#ff5722\",\n \"600\": \"#f4511e\",\n \"700\": \"#e64a19\",\n \"800\": \"#d84315\",\n \"900\": \"#bf360c\",\n \"a100\": \"#ff9e80\",\n \"a200\": \"#ff6e40\",\n \"a400\": \"#ff3d00\",\n \"a700\": \"#dd2c00\"\n};\nexport var brown = {\n \"50\": \"#efebe9\",\n \"100\": \"#d7ccc8\",\n \"200\": \"#bcaaa4\",\n \"300\": \"#a1887f\",\n \"400\": \"#8d6e63\",\n \"500\": \"#795548\",\n \"600\": \"#6d4c41\",\n \"700\": \"#5d4037\",\n \"800\": \"#4e342e\",\n \"900\": \"#3e2723\"\n};\nexport var grey = {\n \"50\": \"#fafafa\",\n \"100\": \"#f5f5f5\",\n \"200\": \"#eeeeee\",\n \"300\": \"#e0e0e0\",\n \"400\": \"#bdbdbd\",\n \"500\": \"#9e9e9e\",\n \"600\": \"#757575\",\n \"700\": \"#616161\",\n \"800\": \"#424242\",\n \"900\": \"#212121\"\n};\nexport var blueGrey = {\n \"50\": \"#eceff1\",\n \"100\": \"#cfd8dc\",\n \"200\": \"#b0bec5\",\n \"300\": \"#90a4ae\",\n \"400\": \"#78909c\",\n \"500\": \"#607d8b\",\n \"600\": \"#546e7a\",\n \"700\": \"#455a64\",\n \"800\": \"#37474f\",\n \"900\": \"#263238\"\n};\nexport var darkText = {\n \"primary\": \"rgba(0, 0, 0, 0.87)\",\n \"secondary\": \"rgba(0, 0, 0, 0.54)\",\n \"disabled\": \"rgba(0, 0, 0, 0.38)\",\n \"dividers\": \"rgba(0, 0, 0, 0.12)\"\n};\nexport var lightText = {\n \"primary\": \"rgba(255, 255, 255, 1)\",\n \"secondary\": \"rgba(255, 255, 255, 0.7)\",\n \"disabled\": \"rgba(255, 255, 255, 0.5)\",\n \"dividers\": \"rgba(255, 255, 255, 0.12)\"\n};\nexport var darkIcons = {\n \"active\": \"rgba(0, 0, 0, 0.54)\",\n \"inactive\": \"rgba(0, 0, 0, 0.38)\"\n};\nexport var lightIcons = {\n \"active\": \"rgba(255, 255, 255, 1)\",\n \"inactive\": \"rgba(255, 255, 255, 0.5)\"\n};\nexport var white = \"#ffffff\";\nexport var black = \"#000000\";\nexport default {\n red: red,\n pink: pink,\n purple: purple,\n deepPurple: deepPurple,\n indigo: indigo,\n blue: blue,\n lightBlue: lightBlue,\n cyan: cyan,\n teal: teal,\n green: green,\n lightGreen: lightGreen,\n lime: lime,\n yellow: yellow,\n amber: amber,\n orange: orange,\n deepOrange: deepOrange,\n brown: brown,\n grey: grey,\n blueGrey: blueGrey,\n darkText: darkText,\n lightText: lightText,\n darkIcons: darkIcons,\n lightIcons: lightIcons,\n white: white,\n black: black\n};","/*\n * JavaScript Load Image Scaling\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require */\n;\n\n(function (factory) {\n 'use strict';\n\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image'], factory);\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'));\n } else {\n // Browser globals:\n factory(window.loadImage);\n }\n})(function (loadImage) {\n 'use strict';\n\n var originalTransform = loadImage.transform;\n\n loadImage.transform = function (img, options, callback, file, data) {\n originalTransform.call(loadImage, loadImage.scale(img, options, data), options, callback, file, data);\n }; // Transform image coordinates, allows to override e.g.\n // the canvas orientation based on the orientation option,\n // gets canvas, options passed as arguments:\n\n\n loadImage.transformCoordinates = function () {}; // Returns transformed options, allows to override e.g.\n // maxWidth, maxHeight and crop options based on the aspectRatio.\n // gets img, options passed as arguments:\n\n\n loadImage.getTransformedOptions = function (img, options) {\n var aspectRatio = options.aspectRatio;\n var newOptions;\n var i;\n var width;\n var height;\n\n if (!aspectRatio) {\n return options;\n }\n\n newOptions = {};\n\n for (i in options) {\n if (Object.prototype.hasOwnProperty.call(options, i)) {\n newOptions[i] = options[i];\n }\n }\n\n newOptions.crop = true;\n width = img.naturalWidth || img.width;\n height = img.naturalHeight || img.height;\n\n if (width / height > aspectRatio) {\n newOptions.maxWidth = height * aspectRatio;\n newOptions.maxHeight = height;\n } else {\n newOptions.maxWidth = width;\n newOptions.maxHeight = width / aspectRatio;\n }\n\n return newOptions;\n }; // Canvas render method, allows to implement a different rendering algorithm:\n\n\n loadImage.renderImageToCanvas = function (canvas, img, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY, destWidth, destHeight, options) {\n var ctx = canvas.getContext('2d');\n\n if (options.imageSmoothingEnabled === false) {\n ctx.imageSmoothingEnabled = false;\n } else if (options.imageSmoothingQuality) {\n ctx.imageSmoothingQuality = options.imageSmoothingQuality;\n }\n\n ctx.drawImage(img, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY, destWidth, destHeight);\n return canvas;\n }; // Determines if the target image should be a canvas element:\n\n\n loadImage.hasCanvasOption = function (options) {\n return options.canvas || options.crop || !!options.aspectRatio;\n }; // Scales and/or crops the given image (img or canvas HTML element)\n // using the given options.\n // Returns a canvas object if the browser supports canvas\n // and the hasCanvasOption method returns true or a canvas\n // object is passed as image, else the scaled image:\n\n\n loadImage.scale = function (img, options, data) {\n // eslint-disable-next-line no-param-reassign\n options = options || {};\n var canvas = document.createElement('canvas');\n var useCanvas = img.getContext || loadImage.hasCanvasOption(options) && canvas.getContext;\n var width = img.naturalWidth || img.width;\n var height = img.naturalHeight || img.height;\n var destWidth = width;\n var destHeight = height;\n var maxWidth;\n var maxHeight;\n var minWidth;\n var minHeight;\n var sourceWidth;\n var sourceHeight;\n var sourceX;\n var sourceY;\n var pixelRatio;\n var downsamplingRatio;\n var tmp;\n /**\n * Scales up image dimensions\n */\n\n function scaleUp() {\n var scale = Math.max((minWidth || destWidth) / destWidth, (minHeight || destHeight) / destHeight);\n\n if (scale > 1) {\n destWidth *= scale;\n destHeight *= scale;\n }\n }\n /**\n * Scales down image dimensions\n */\n\n\n function scaleDown() {\n var scale = Math.min((maxWidth || destWidth) / destWidth, (maxHeight || destHeight) / destHeight);\n\n if (scale < 1) {\n destWidth *= scale;\n destHeight *= scale;\n }\n }\n\n if (useCanvas) {\n // eslint-disable-next-line no-param-reassign\n options = loadImage.getTransformedOptions(img, options, data);\n sourceX = options.left || 0;\n sourceY = options.top || 0;\n\n if (options.sourceWidth) {\n sourceWidth = options.sourceWidth;\n\n if (options.right !== undefined && options.left === undefined) {\n sourceX = width - sourceWidth - options.right;\n }\n } else {\n sourceWidth = width - sourceX - (options.right || 0);\n }\n\n if (options.sourceHeight) {\n sourceHeight = options.sourceHeight;\n\n if (options.bottom !== undefined && options.top === undefined) {\n sourceY = height - sourceHeight - options.bottom;\n }\n } else {\n sourceHeight = height - sourceY - (options.bottom || 0);\n }\n\n destWidth = sourceWidth;\n destHeight = sourceHeight;\n }\n\n maxWidth = options.maxWidth;\n maxHeight = options.maxHeight;\n minWidth = options.minWidth;\n minHeight = options.minHeight;\n\n if (useCanvas && maxWidth && maxHeight && options.crop) {\n destWidth = maxWidth;\n destHeight = maxHeight;\n tmp = sourceWidth / sourceHeight - maxWidth / maxHeight;\n\n if (tmp < 0) {\n sourceHeight = maxHeight * sourceWidth / maxWidth;\n\n if (options.top === undefined && options.bottom === undefined) {\n sourceY = (height - sourceHeight) / 2;\n }\n } else if (tmp > 0) {\n sourceWidth = maxWidth * sourceHeight / maxHeight;\n\n if (options.left === undefined && options.right === undefined) {\n sourceX = (width - sourceWidth) / 2;\n }\n }\n } else {\n if (options.contain || options.cover) {\n minWidth = maxWidth = maxWidth || minWidth;\n minHeight = maxHeight = maxHeight || minHeight;\n }\n\n if (options.cover) {\n scaleDown();\n scaleUp();\n } else {\n scaleUp();\n scaleDown();\n }\n }\n\n if (useCanvas) {\n pixelRatio = options.pixelRatio;\n\n if (pixelRatio > 1) {\n canvas.style.width = destWidth + 'px';\n canvas.style.height = destHeight + 'px';\n destWidth *= pixelRatio;\n destHeight *= pixelRatio;\n canvas.getContext('2d').scale(pixelRatio, pixelRatio);\n }\n\n downsamplingRatio = options.downsamplingRatio;\n\n if (downsamplingRatio > 0 && downsamplingRatio < 1 && destWidth < sourceWidth && destHeight < sourceHeight) {\n while (sourceWidth * downsamplingRatio > destWidth) {\n canvas.width = sourceWidth * downsamplingRatio;\n canvas.height = sourceHeight * downsamplingRatio;\n loadImage.renderImageToCanvas(canvas, img, sourceX, sourceY, sourceWidth, sourceHeight, 0, 0, canvas.width, canvas.height, options);\n sourceX = 0;\n sourceY = 0;\n sourceWidth = canvas.width;\n sourceHeight = canvas.height; // eslint-disable-next-line no-param-reassign\n\n img = document.createElement('canvas');\n img.width = sourceWidth;\n img.height = sourceHeight;\n loadImage.renderImageToCanvas(img, canvas, 0, 0, sourceWidth, sourceHeight, 0, 0, sourceWidth, sourceHeight, options);\n }\n }\n\n canvas.width = destWidth;\n canvas.height = destHeight;\n loadImage.transformCoordinates(canvas, options);\n return loadImage.renderImageToCanvas(canvas, img, sourceX, sourceY, sourceWidth, sourceHeight, 0, 0, destWidth, destHeight, options);\n }\n\n img.width = destWidth;\n img.height = destHeight;\n return img;\n };\n});","/*\n * JavaScript Load Image Exif Parser\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require, DataView */\n\n/* eslint-disable no-console */\n;\n\n(function (factory) {\n 'use strict';\n\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image', './load-image-meta'], factory);\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'), require('./load-image-meta'));\n } else {\n // Browser globals:\n factory(window.loadImage);\n }\n})(function (loadImage) {\n 'use strict';\n /**\n * Exif tag map\n *\n * @name ExifMap\n * @class\n * @param {number} tagCode Private IFD tag code\n */\n\n function ExifMap(tagCode) {\n if (tagCode) {\n Object.defineProperty(this, 'map', {\n value: this.privateIFDs[tagCode].map\n });\n Object.defineProperty(this, 'tags', {\n value: this.tags && this.tags[tagCode] || {}\n });\n }\n }\n\n ExifMap.prototype.map = {\n Orientation: 0x0112,\n Thumbnail: 0x0201,\n Exif: 0x8769,\n GPSInfo: 0x8825,\n Interoperability: 0xa005\n };\n ExifMap.prototype.privateIFDs = {\n 0x8769: {\n name: 'Exif',\n map: {}\n },\n 0x8825: {\n name: 'GPSInfo',\n map: {}\n },\n 0xa005: {\n name: 'Interoperability',\n map: {}\n }\n };\n /**\n * Retrieves exif tag value\n *\n * @param {number|string} id Exif tag code or name\n * @returns {object} Exif tag value\n */\n\n ExifMap.prototype.get = function (id) {\n return this[id] || this[this.map[id]];\n };\n /**\n * Returns the Exif Thumbnail data as Blob.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} offset Thumbnail data offset\n * @param {number} length Thumbnail data length\n * @returns {undefined|Blob} Returns the Thumbnail Blob or undefined\n */\n\n\n function getExifThumbnail(dataView, offset, length) {\n if (!length || offset + length > dataView.byteLength) {\n console.log('Invalid Exif data: Invalid thumbnail data.');\n return;\n }\n\n return new Blob([dataView.buffer.slice(offset, offset + length)], {\n type: 'image/jpeg'\n });\n }\n\n var ExifTagTypes = {\n // byte, 8-bit unsigned int:\n 1: {\n getValue: function getValue(dataView, dataOffset) {\n return dataView.getUint8(dataOffset);\n },\n size: 1\n },\n // ascii, 8-bit byte:\n 2: {\n getValue: function getValue(dataView, dataOffset) {\n return String.fromCharCode(dataView.getUint8(dataOffset));\n },\n size: 1,\n ascii: true\n },\n // short, 16 bit int:\n 3: {\n getValue: function getValue(dataView, dataOffset, littleEndian) {\n return dataView.getUint16(dataOffset, littleEndian);\n },\n size: 2\n },\n // long, 32 bit int:\n 4: {\n getValue: function getValue(dataView, dataOffset, littleEndian) {\n return dataView.getUint32(dataOffset, littleEndian);\n },\n size: 4\n },\n // rational = two long values, first is numerator, second is denominator:\n 5: {\n getValue: function getValue(dataView, dataOffset, littleEndian) {\n return dataView.getUint32(dataOffset, littleEndian) / dataView.getUint32(dataOffset + 4, littleEndian);\n },\n size: 8\n },\n // slong, 32 bit signed int:\n 9: {\n getValue: function getValue(dataView, dataOffset, littleEndian) {\n return dataView.getInt32(dataOffset, littleEndian);\n },\n size: 4\n },\n // srational, two slongs, first is numerator, second is denominator:\n 10: {\n getValue: function getValue(dataView, dataOffset, littleEndian) {\n return dataView.getInt32(dataOffset, littleEndian) / dataView.getInt32(dataOffset + 4, littleEndian);\n },\n size: 8\n }\n }; // undefined, 8-bit byte, value depending on field:\n\n ExifTagTypes[7] = ExifTagTypes[1];\n /**\n * Returns Exif tag value.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} tiffOffset TIFF offset\n * @param {number} offset Tag offset\n * @param {number} type Tag type\n * @param {number} length Tag length\n * @param {boolean} littleEndian Little endian encoding\n * @returns {object} Tag value\n */\n\n function getExifValue(dataView, tiffOffset, offset, type, length, littleEndian) {\n var tagType = ExifTagTypes[type];\n var tagSize;\n var dataOffset;\n var values;\n var i;\n var str;\n var c;\n\n if (!tagType) {\n console.log('Invalid Exif data: Invalid tag type.');\n return;\n }\n\n tagSize = tagType.size * length; // Determine if the value is contained in the dataOffset bytes,\n // or if the value at the dataOffset is a pointer to the actual data:\n\n dataOffset = tagSize > 4 ? tiffOffset + dataView.getUint32(offset + 8, littleEndian) : offset + 8;\n\n if (dataOffset + tagSize > dataView.byteLength) {\n console.log('Invalid Exif data: Invalid data offset.');\n return;\n }\n\n if (length === 1) {\n return tagType.getValue(dataView, dataOffset, littleEndian);\n }\n\n values = [];\n\n for (i = 0; i < length; i += 1) {\n values[i] = tagType.getValue(dataView, dataOffset + i * tagType.size, littleEndian);\n }\n\n if (tagType.ascii) {\n str = ''; // Concatenate the chars:\n\n for (i = 0; i < values.length; i += 1) {\n c = values[i]; // Ignore the terminating NULL byte(s):\n\n if (c === \"\\0\") {\n break;\n }\n\n str += c;\n }\n\n return str;\n }\n\n return values;\n }\n /**\n * Parses Exif tags.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} tiffOffset TIFF offset\n * @param {number} dirOffset Directory offset\n * @param {boolean} littleEndian Little endian encoding\n * @param {ExifMap} tags Map to store parsed exif tags\n * @param {ExifMap} tagOffsets Map to store parsed exif tag offsets\n * @param {object} includeTags Map of tags to include\n * @param {object} excludeTags Map of tags to exclude\n * @returns {number} Next directory offset\n */\n\n\n function parseExifTags(dataView, tiffOffset, dirOffset, littleEndian, tags, tagOffsets, includeTags, excludeTags) {\n var tagsNumber, dirEndOffset, i, tagOffset, tagNumber, tagValue;\n\n if (dirOffset + 6 > dataView.byteLength) {\n console.log('Invalid Exif data: Invalid directory offset.');\n return;\n }\n\n tagsNumber = dataView.getUint16(dirOffset, littleEndian);\n dirEndOffset = dirOffset + 2 + 12 * tagsNumber;\n\n if (dirEndOffset + 4 > dataView.byteLength) {\n console.log('Invalid Exif data: Invalid directory size.');\n return;\n }\n\n for (i = 0; i < tagsNumber; i += 1) {\n tagOffset = dirOffset + 2 + 12 * i;\n tagNumber = dataView.getUint16(tagOffset, littleEndian);\n if (includeTags && !includeTags[tagNumber]) continue;\n if (excludeTags && excludeTags[tagNumber] === true) continue;\n tagValue = getExifValue(dataView, tiffOffset, tagOffset, dataView.getUint16(tagOffset + 2, littleEndian), // tag type\n dataView.getUint32(tagOffset + 4, littleEndian), // tag length\n littleEndian);\n tags[tagNumber] = tagValue;\n\n if (tagOffsets) {\n tagOffsets[tagNumber] = tagOffset;\n }\n } // Return the offset to the next directory:\n\n\n return dataView.getUint32(dirEndOffset, littleEndian);\n }\n /**\n * Parses Private IFD tags.\n *\n * @param {object} data Data object to store exif tags and offsets\n * @param {number} tagCode Private IFD tag code\n * @param {DataView} dataView Data view interface\n * @param {number} tiffOffset TIFF offset\n * @param {boolean} littleEndian Little endian encoding\n * @param {object} includeTags Map of tags to include\n * @param {object} excludeTags Map of tags to exclude\n */\n\n\n function parseExifPrivateIFD(data, tagCode, dataView, tiffOffset, littleEndian, includeTags, excludeTags) {\n var dirOffset = data.exif[tagCode];\n\n if (dirOffset) {\n data.exif[tagCode] = new ExifMap(tagCode);\n\n if (data.exifOffsets) {\n data.exifOffsets[tagCode] = new ExifMap(tagCode);\n }\n\n parseExifTags(dataView, tiffOffset, tiffOffset + dirOffset, littleEndian, data.exif[tagCode], data.exifOffsets && data.exifOffsets[tagCode], includeTags && includeTags[tagCode], excludeTags && excludeTags[tagCode]);\n }\n }\n\n loadImage.parseExifData = function (dataView, offset, length, data, options) {\n if (options.disableExif) {\n return;\n }\n\n var includeTags = options.includeExifTags;\n var excludeTags = options.excludeExifTags || {\n 0x8769: {\n // ExifIFDPointer\n 0x927c: true // MakerNote\n\n }\n };\n var tiffOffset = offset + 10;\n var littleEndian;\n var dirOffset;\n var privateIFDs; // Check for the ASCII code for \"Exif\" (0x45786966):\n\n if (dataView.getUint32(offset + 4) !== 0x45786966) {\n // No Exif data, might be XMP data instead\n return;\n }\n\n if (tiffOffset + 8 > dataView.byteLength) {\n console.log('Invalid Exif data: Invalid segment size.');\n return;\n } // Check for the two null bytes:\n\n\n if (dataView.getUint16(offset + 8) !== 0x0000) {\n console.log('Invalid Exif data: Missing byte alignment offset.');\n return;\n } // Check the byte alignment:\n\n\n switch (dataView.getUint16(tiffOffset)) {\n case 0x4949:\n littleEndian = true;\n break;\n\n case 0x4d4d:\n littleEndian = false;\n break;\n\n default:\n console.log('Invalid Exif data: Invalid byte alignment marker.');\n return;\n } // Check for the TIFF tag marker (0x002A):\n\n\n if (dataView.getUint16(tiffOffset + 2, littleEndian) !== 0x002a) {\n console.log('Invalid Exif data: Missing TIFF marker.');\n return;\n } // Retrieve the directory offset bytes, usually 0x00000008 or 8 decimal:\n\n\n dirOffset = dataView.getUint32(tiffOffset + 4, littleEndian); // Create the exif object to store the tags:\n\n data.exif = new ExifMap();\n\n if (!options.disableExifOffsets) {\n data.exifOffsets = new ExifMap();\n data.exifTiffOffset = tiffOffset;\n data.exifLittleEndian = littleEndian;\n } // Parse the tags of the main image directory and retrieve the\n // offset to the next directory, usually the thumbnail directory:\n\n\n dirOffset = parseExifTags(dataView, tiffOffset, tiffOffset + dirOffset, littleEndian, data.exif, data.exifOffsets, includeTags, excludeTags);\n\n if (dirOffset && !options.disableExifThumbnail) {\n dirOffset = parseExifTags(dataView, tiffOffset, tiffOffset + dirOffset, littleEndian, data.exif, data.exifOffsets, includeTags, excludeTags); // Check for JPEG Thumbnail offset:\n\n if (data.exif[0x0201] && data.exif[0x0202]) {\n data.exif[0x0201] = getExifThumbnail(dataView, tiffOffset + data.exif[0x0201], data.exif[0x0202] // Thumbnail data length\n );\n }\n }\n\n privateIFDs = Object.keys(data.exif.privateIFDs);\n privateIFDs.forEach(function (tagCode) {\n parseExifPrivateIFD(data, tagCode, dataView, tiffOffset, littleEndian, includeTags, excludeTags);\n });\n }; // Registers the Exif parser for the APP1 JPEG meta data segment:\n\n\n loadImage.metaDataParsers.jpeg[0xffe1].push(loadImage.parseExifData);\n loadImage.exifWriters = {\n // Orientation writer:\n 0x0112: function _(buffer, data, value) {\n var view = new DataView(buffer, data.exifOffsets[0x0112] + 8, 2);\n view.setUint16(0, value, data.exifLittleEndian);\n return buffer;\n }\n };\n\n loadImage.writeExifData = function (buffer, data, id, value) {\n loadImage.exifWriters[data.exif.map[id]](buffer, data, value);\n };\n\n loadImage.ExifMap = ExifMap; // Adds the following properties to the parseMetaData callback data:\n // - exif: The parsed Exif tags\n // - exifOffsets: The parsed Exif tag offsets\n // - exifTiffOffset: TIFF header offset (used for offset pointers)\n // - exifLittleEndian: little endian order if true, big endian if false\n // Adds the following options to the parseMetaData method:\n // - disableExif: Disables Exif parsing when true.\n // - disableExifThumbnail: Disables parsing of Thumbnail data when true.\n // - disableExifOffsets: Disables storing Exif tag offsets when true.\n // - includeExifTags: A map of Exif tags to include for parsing.\n // - excludeExifTags: A map of Exif tags to exclude from parsing.\n});","/*\n * JavaScript Load Image IPTC Parser\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * Copyright 2018, Dave Bevan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require, DataView */\n;\n\n(function (factory) {\n 'use strict';\n\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image', './load-image-meta'], factory);\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'), require('./load-image-meta'));\n } else {\n // Browser globals:\n factory(window.loadImage);\n }\n})(function (loadImage) {\n 'use strict';\n /**\n * IPTC tag map\n *\n * @name IptcMap\n * @class\n */\n\n function IptcMap() {}\n\n IptcMap.prototype.map = {\n ObjectName: 5\n };\n IptcMap.prototype.types = {\n 0: 'Uint16',\n // ApplicationRecordVersion\n 200: 'Uint16',\n // ObjectPreviewFileFormat\n 201: 'Uint16',\n // ObjectPreviewFileVersion\n 202: 'binary' // ObjectPreviewData\n\n };\n /**\n * Retrieves IPTC tag value\n *\n * @param {number|string} id IPTC tag code or name\n * @returns {object} IPTC tag value\n */\n\n IptcMap.prototype.get = function (id) {\n return this[id] || this[this.map[id]];\n };\n /**\n * Retrieves string for the given DataView and range\n *\n * @param {DataView} dataView Data view interface\n * @param {number} offset Offset start\n * @param {number} length Offset length\n * @returns {string} String value\n */\n\n\n function getStringValue(dataView, offset, length) {\n var outstr = '';\n var end = offset + length;\n\n for (var n = offset; n < end; n += 1) {\n outstr += String.fromCharCode(dataView.getUint8(n));\n }\n\n return outstr;\n }\n /**\n * Retrieves tag value for the given DataView and range\n *\n * @param {number} tagCode Private IFD tag code\n * @param {IptcMap} map IPTC tag map\n * @param {DataView} dataView Data view interface\n * @param {number} offset Range start\n * @param {number} length Range length\n * @returns {object} Tag value\n */\n\n\n function getTagValue(tagCode, map, dataView, offset, length) {\n if (map.types[tagCode] === 'binary') {\n return new Blob([dataView.buffer.slice(offset, offset + length)]);\n }\n\n if (map.types[tagCode] === 'Uint16') {\n return dataView.getUint16(offset);\n }\n\n return getStringValue(dataView, offset, length);\n }\n /**\n * Combines IPTC value with existing ones.\n *\n * @param {object} value Existing IPTC field value\n * @param {object} newValue New IPTC field value\n * @returns {object} Resulting IPTC field value\n */\n\n\n function combineTagValues(value, newValue) {\n if (value === undefined) return newValue;\n\n if (value instanceof Array) {\n value.push(newValue);\n return value;\n }\n\n return [value, newValue];\n }\n /**\n * Parses IPTC tags.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} segmentOffset Segment offset\n * @param {number} segmentLength Segment length\n * @param {object} data Data export object\n * @param {object} includeTags Map of tags to include\n * @param {object} excludeTags Map of tags to exclude\n */\n\n\n function parseIptcTags(dataView, segmentOffset, segmentLength, data, includeTags, excludeTags) {\n var value, tagSize, tagCode;\n var segmentEnd = segmentOffset + segmentLength;\n var offset = segmentOffset;\n\n while (offset < segmentEnd) {\n if (dataView.getUint8(offset) === 0x1c && // tag marker\n dataView.getUint8(offset + 1) === 0x02 // record number, only handles v2\n ) {\n tagCode = dataView.getUint8(offset + 2);\n\n if ((!includeTags || includeTags[tagCode]) && (!excludeTags || !excludeTags[tagCode])) {\n tagSize = dataView.getInt16(offset + 3);\n value = getTagValue(tagCode, data.iptc, dataView, offset + 5, tagSize);\n data.iptc[tagCode] = combineTagValues(data.iptc[tagCode], value);\n\n if (data.iptcOffsets) {\n data.iptcOffsets[tagCode] = offset;\n }\n }\n }\n\n offset += 1;\n }\n }\n /**\n * Tests if field segment starts at offset.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} offset Segment offset\n * @returns {boolean} True if '8BIM' exists at offset\n */\n\n\n function isSegmentStart(dataView, offset) {\n return dataView.getUint32(offset) === 0x3842494d && // Photoshop segment start\n dataView.getUint16(offset + 4) === 0x0404 // IPTC segment start\n ;\n }\n /**\n * Returns header length.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} offset Segment offset\n * @returns {number} Header length\n */\n\n\n function getHeaderLength(dataView, offset) {\n var length = dataView.getUint8(offset + 7);\n if (length % 2 !== 0) length += 1; // Check for pre photoshop 6 format\n\n if (length === 0) {\n // Always 4\n length = 4;\n }\n\n return length;\n }\n\n loadImage.parseIptcData = function (dataView, offset, length, data, options) {\n if (options.disableIptc) {\n return;\n }\n\n var markerLength = offset + length;\n\n while (offset + 8 < markerLength) {\n if (isSegmentStart(dataView, offset)) {\n var headerLength = getHeaderLength(dataView, offset);\n var segmentOffset = offset + 8 + headerLength;\n\n if (segmentOffset > markerLength) {\n // eslint-disable-next-line no-console\n console.log('Invalid IPTC data: Invalid segment offset.');\n break;\n }\n\n var segmentLength = dataView.getUint16(offset + 6 + headerLength);\n\n if (offset + segmentLength > markerLength) {\n // eslint-disable-next-line no-console\n console.log('Invalid IPTC data: Invalid segment size.');\n break;\n } // Create the iptc object to store the tags:\n\n\n data.iptc = new IptcMap();\n\n if (!options.disableIptcOffsets) {\n data.iptcOffsets = new IptcMap();\n }\n\n parseIptcTags(dataView, segmentOffset, segmentLength, data, options.includeIptcTags, options.excludeIptcTags || {\n 202: true\n } // ObjectPreviewData\n );\n return;\n } // eslint-disable-next-line no-param-reassign\n\n\n offset += 1;\n }\n }; // Registers this IPTC parser for the APP13 JPEG meta data segment:\n\n\n loadImage.metaDataParsers.jpeg[0xffed].push(loadImage.parseIptcData);\n loadImage.IptcMap = IptcMap; // Adds the following properties to the parseMetaData callback data:\n // - iptc: The iptc tags, parsed by the parseIptcData method\n // Adds the following options to the parseMetaData method:\n // - disableIptc: Disables IPTC parsing when true.\n // - disableIptcOffsets: Disables storing IPTC tag offsets when true.\n // - includeIptcTags: A map of IPTC tags to include for parsing.\n // - excludeIptcTags: A map of IPTC tags to exclude from parsing.\n});","// Stores whether the warning was already emitted.\nvar warningEmitted = false;\n/**\n * Emits warning if the provided Node.js version string is pending deprecation.\n *\n * @param {string} version - The Node.js version string.\n */\n\nexport var emitWarningIfUnsupportedVersion = function emitWarningIfUnsupportedVersion(version) {\n if (version && !warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 12) {\n warningEmitted = true;\n process.emitWarning(\"The AWS SDK for JavaScript (v3) will\\n\" + (\"no longer support Node.js \" + version + \" as of January 1, 2022.\\n\") + \"To continue receiving updates to AWS services, bug fixes, and security\\n\" + \"updates please upgrade to Node.js 12.x or later.\\n\\n\" + \"More information can be found at: https://a.co/1l6FLnu\", \"NodeDeprecationWarning\");\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Sha256 = void 0;\n\nvar isEmptyData_1 = require(\"./isEmptyData\");\n\nvar constants_1 = require(\"./constants\");\n\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\n\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\n\nvar Sha256 =\n/** @class */\nfunction () {\n function Sha256(secret) {\n if (secret) {\n this.operation = getKeyPromise(secret).then(function (keyData) {\n return util_locate_window_1.locateWindow().msCrypto.subtle.sign(constants_1.SHA_256_HMAC_ALGO, keyData);\n });\n this.operation.catch(function () {});\n } else {\n this.operation = Promise.resolve(util_locate_window_1.locateWindow().msCrypto.subtle.digest(\"SHA-256\"));\n }\n }\n\n Sha256.prototype.update = function (toHash) {\n var _this = this;\n\n if (isEmptyData_1.isEmptyData(toHash)) {\n return;\n }\n\n this.operation = this.operation.then(function (operation) {\n operation.onerror = function () {\n _this.operation = Promise.reject(new Error(\"Error encountered updating hash\"));\n };\n\n operation.process(toArrayBufferView(toHash));\n return operation;\n });\n this.operation.catch(function () {});\n };\n\n Sha256.prototype.digest = function () {\n return this.operation.then(function (operation) {\n return new Promise(function (resolve, reject) {\n operation.onerror = function () {\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n\n operation.oncomplete = function () {\n if (operation.result) {\n resolve(new Uint8Array(operation.result));\n }\n\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n\n operation.finish();\n });\n });\n };\n\n return Sha256;\n}();\n\nexports.Sha256 = Sha256;\n\nfunction getKeyPromise(secret) {\n return new Promise(function (resolve, reject) {\n var keyOperation = util_locate_window_1.locateWindow().msCrypto.subtle.importKey(\"raw\", toArrayBufferView(secret), constants_1.SHA_256_HMAC_ALGO, false, [\"sign\"]);\n\n keyOperation.oncomplete = function () {\n if (keyOperation.result) {\n resolve(keyOperation.result);\n }\n\n reject(new Error(\"ImportKey completed without importing key.\"));\n };\n\n keyOperation.onerror = function () {\n reject(new Error(\"ImportKey failed to import key.\"));\n };\n });\n}\n\nfunction toArrayBufferView(data) {\n if (typeof data === \"string\") {\n return util_utf8_browser_1.fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n\n return new Uint8Array(data);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isEmptyData = void 0;\n\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n\nexports.isEmptyData = isEmptyData;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.EMPTY_DATA_SHA_256 = exports.SHA_256_HMAC_ALGO = exports.SHA_256_HASH = void 0;\nexports.SHA_256_HASH = {\n name: \"SHA-256\"\n};\nexports.SHA_256_HMAC_ALGO = {\n name: \"HMAC\",\n hash: exports.SHA_256_HASH\n};\nexports.EMPTY_DATA_SHA_256 = new Uint8Array([227, 176, 196, 66, 152, 252, 28, 20, 154, 251, 244, 200, 153, 111, 185, 36, 39, 174, 65, 228, 100, 155, 147, 76, 164, 149, 153, 27, 120, 82, 184, 85]);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Sha256 = void 0;\n\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\n\nvar isEmptyData_1 = require(\"./isEmptyData\");\n\nvar constants_1 = require(\"./constants\");\n\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\n\nvar Sha256 =\n/** @class */\nfunction () {\n function Sha256(secret) {\n this.toHash = new Uint8Array(0);\n\n if (secret !== void 0) {\n this.key = new Promise(function (resolve, reject) {\n util_locate_window_1.locateWindow().crypto.subtle.importKey(\"raw\", convertToBuffer(secret), constants_1.SHA_256_HMAC_ALGO, false, [\"sign\"]).then(resolve, reject);\n });\n this.key.catch(function () {});\n }\n }\n\n Sha256.prototype.update = function (data) {\n if (isEmptyData_1.isEmptyData(data)) {\n return;\n }\n\n var update = convertToBuffer(data);\n var typedArray = new Uint8Array(this.toHash.byteLength + update.byteLength);\n typedArray.set(this.toHash, 0);\n typedArray.set(update, this.toHash.byteLength);\n this.toHash = typedArray;\n };\n\n Sha256.prototype.digest = function () {\n var _this = this;\n\n if (this.key) {\n return this.key.then(function (key) {\n return util_locate_window_1.locateWindow().crypto.subtle.sign(constants_1.SHA_256_HMAC_ALGO, key, _this.toHash).then(function (data) {\n return new Uint8Array(data);\n });\n });\n }\n\n if (isEmptyData_1.isEmptyData(this.toHash)) {\n return Promise.resolve(constants_1.EMPTY_DATA_SHA_256);\n }\n\n return Promise.resolve().then(function () {\n return util_locate_window_1.locateWindow().crypto.subtle.digest(constants_1.SHA_256_HASH, _this.toHash);\n }).then(function (data) {\n return Promise.resolve(new Uint8Array(data));\n });\n };\n\n return Sha256;\n}();\n\nexports.Sha256 = Sha256;\n\nfunction convertToBuffer(data) {\n if (typeof data === \"string\") {\n return util_utf8_browser_1.fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n\n return new Uint8Array(data);\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***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MAX_HASHABLE_LENGTH = exports.INIT = exports.KEY = exports.DIGEST_LENGTH = exports.BLOCK_SIZE = void 0;\n/**\n * @internal\n */\n\nexports.BLOCK_SIZE = 64;\n/**\n * @internal\n */\n\nexports.DIGEST_LENGTH = 32;\n/**\n * @internal\n */\n\nexports.KEY = new Uint32Array([0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2]);\n/**\n * @internal\n */\n\nexports.INIT = [0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19];\n/**\n * @internal\n */\n\nexports.MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;","/*! *****************************************************************************\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***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.decodeHTML = exports.decodeHTMLStrict = exports.decodeXML = void 0;\n\nvar entities_json_1 = __importDefault(require(\"./maps/entities.json\"));\n\nvar legacy_json_1 = __importDefault(require(\"./maps/legacy.json\"));\n\nvar xml_json_1 = __importDefault(require(\"./maps/xml.json\"));\n\nvar decode_codepoint_1 = __importDefault(require(\"./decode_codepoint\"));\n\nvar strictEntityRe = /&(?:[a-zA-Z0-9]+|#[xX][\\da-fA-F]+|#\\d+);/g;\nexports.decodeXML = getStrictDecoder(xml_json_1.default);\nexports.decodeHTMLStrict = getStrictDecoder(entities_json_1.default);\n\nfunction getStrictDecoder(map) {\n var replace = getReplacer(map);\n return function (str) {\n return String(str).replace(strictEntityRe, replace);\n };\n}\n\nvar sorter = function sorter(a, b) {\n return a < b ? 1 : -1;\n};\n\nexports.decodeHTML = function () {\n var legacy = Object.keys(legacy_json_1.default).sort(sorter);\n var keys = Object.keys(entities_json_1.default).sort(sorter);\n\n for (var i = 0, j = 0; i < keys.length; i++) {\n if (legacy[j] === keys[i]) {\n keys[i] += \";?\";\n j++;\n } else {\n keys[i] += \";\";\n }\n }\n\n var re = new RegExp(\"&(?:\" + keys.join(\"|\") + \"|#[xX][\\\\da-fA-F]+;?|#\\\\d+;?)\", \"g\");\n var replace = getReplacer(entities_json_1.default);\n\n function replacer(str) {\n if (str.substr(-1) !== \";\") str += \";\";\n return replace(str);\n } // TODO consider creating a merged map\n\n\n return function (str) {\n return String(str).replace(re, replacer);\n };\n}();\n\nfunction getReplacer(map) {\n return function replace(str) {\n if (str.charAt(1) === \"#\") {\n var secondChar = str.charAt(2);\n\n if (secondChar === \"X\" || secondChar === \"x\") {\n return decode_codepoint_1.default(parseInt(str.substr(3), 16));\n }\n\n return decode_codepoint_1.default(parseInt(str.substr(2), 10));\n } // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n\n\n return map[str.slice(1, -1)] || str;\n };\n}","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.escapeUTF8 = exports.escape = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.encodeXML = void 0;\n\nvar xml_json_1 = __importDefault(require(\"./maps/xml.json\"));\n\nvar inverseXML = getInverseObj(xml_json_1.default);\nvar xmlReplacer = getInverseReplacer(inverseXML);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\n\nexports.encodeXML = getASCIIEncoder(inverseXML);\n\nvar entities_json_1 = __importDefault(require(\"./maps/entities.json\"));\n\nvar inverseHTML = getInverseObj(entities_json_1.default);\nvar htmlReplacer = getInverseReplacer(inverseHTML);\n/**\n * Encodes all entities and non-ASCII characters in the input.\n *\n * This includes characters that are valid ASCII characters in HTML documents.\n * For example `#` will be encoded as `#`. To get a more compact output,\n * consider using the `encodeNonAsciiHTML` function.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\n\nexports.encodeHTML = getInverse(inverseHTML, htmlReplacer);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\n\nexports.encodeNonAsciiHTML = getASCIIEncoder(inverseHTML);\n\nfunction getInverseObj(obj) {\n return Object.keys(obj).sort().reduce(function (inverse, name) {\n inverse[obj[name]] = \"&\" + name + \";\";\n return inverse;\n }, {});\n}\n\nfunction getInverseReplacer(inverse) {\n var single = [];\n var multiple = [];\n\n for (var _i = 0, _a = Object.keys(inverse); _i < _a.length; _i++) {\n var k = _a[_i];\n\n if (k.length === 1) {\n // Add value to single array\n single.push(\"\\\\\" + k);\n } else {\n // Add value to multiple array\n multiple.push(k);\n }\n } // Add ranges to single characters.\n\n\n single.sort();\n\n for (var start = 0; start < single.length - 1; start++) {\n // Find the end of a run of characters\n var end = start;\n\n while (end < single.length - 1 && single[end].charCodeAt(1) + 1 === single[end + 1].charCodeAt(1)) {\n end += 1;\n }\n\n var count = 1 + end - start; // We want to replace at least three characters\n\n if (count < 3) continue;\n single.splice(start, count, single[start] + \"-\" + single[end]);\n }\n\n multiple.unshift(\"[\" + single.join(\"\") + \"]\");\n return new RegExp(multiple.join(\"|\"), \"g\");\n} // /[^\\0-\\x7F]/gu\n\n\nvar reNonASCII = /(?:[\\x80-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])/g;\nvar getCodePoint = // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\nfunction (str) {\n return str.codePointAt(0);\n} : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\nfunction (c) {\n return (c.charCodeAt(0) - 0xd800) * 0x400 + c.charCodeAt(1) - 0xdc00 + 0x10000;\n};\n\nfunction singleCharReplacer(c) {\n return \"&#x\" + (c.length > 1 ? getCodePoint(c) : c.charCodeAt(0)).toString(16).toUpperCase() + \";\";\n}\n\nfunction getInverse(inverse, re) {\n return function (data) {\n return data.replace(re, function (name) {\n return inverse[name];\n }).replace(reNonASCII, singleCharReplacer);\n };\n}\n\nvar reEscapeChars = new RegExp(xmlReplacer.source + \"|\" + reNonASCII.source, \"g\");\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\n\nfunction escape(data) {\n return data.replace(reEscapeChars, singleCharReplacer);\n}\n\nexports.escape = escape;\n/**\n * Encodes all characters not valid in XML documents using numeric hexadecimal\n * reference (eg. `ü`).\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\n\nfunction escapeUTF8(data) {\n return data.replace(xmlReplacer, singleCharReplacer);\n}\n\nexports.escapeUTF8 = escapeUTF8;\n\nfunction getASCIIEncoder(obj) {\n return function (data) {\n return data.replace(reEscapeChars, function (c) {\n return obj[c] || singleCharReplacer(c);\n });\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar react_1 = require(\"react\");\n\nfunction useDebouncedCallback(callback, delay, options) {\n if (options === void 0) {\n options = {};\n }\n\n var maxWait = options.maxWait;\n var maxWaitHandler = react_1.useRef(null);\n var maxWaitArgs = react_1.useRef([]);\n var leading = options.leading;\n var trailing = options.trailing === undefined ? true : options.trailing;\n var leadingCall = react_1.useRef(false);\n var functionTimeoutHandler = react_1.useRef(null);\n var isComponentUnmounted = react_1.useRef(false);\n var debouncedFunction = react_1.useRef(callback);\n debouncedFunction.current = callback;\n var cancelDebouncedCallback = react_1.useCallback(function () {\n clearTimeout(functionTimeoutHandler.current);\n clearTimeout(maxWaitHandler.current);\n maxWaitHandler.current = null;\n maxWaitArgs.current = [];\n functionTimeoutHandler.current = null;\n leadingCall.current = false;\n }, []);\n react_1.useEffect(function () {\n return function () {\n // we use flag, as we allow to call callPending outside the hook\n isComponentUnmounted.current = true;\n };\n }, []);\n var debouncedCallback = react_1.useCallback(function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n maxWaitArgs.current = args;\n clearTimeout(functionTimeoutHandler.current);\n\n if (leadingCall.current) {\n leadingCall.current = false;\n }\n\n if (!functionTimeoutHandler.current && leading && !leadingCall.current) {\n debouncedFunction.current.apply(debouncedFunction, args);\n leadingCall.current = true;\n }\n\n functionTimeoutHandler.current = setTimeout(function () {\n var shouldCallFunction = true;\n\n if (leading && leadingCall.current) {\n shouldCallFunction = false;\n }\n\n cancelDebouncedCallback();\n\n if (!isComponentUnmounted.current && trailing && shouldCallFunction) {\n debouncedFunction.current.apply(debouncedFunction, args);\n }\n }, delay);\n\n if (maxWait && !maxWaitHandler.current && trailing) {\n maxWaitHandler.current = setTimeout(function () {\n var args = maxWaitArgs.current;\n cancelDebouncedCallback();\n\n if (!isComponentUnmounted.current) {\n debouncedFunction.current.apply(null, args);\n }\n }, maxWait);\n }\n }, [maxWait, delay, cancelDebouncedCallback, leading, trailing]);\n var callPending = react_1.useCallback(function () {\n // Call pending callback only if we have anything in our queue\n if (!functionTimeoutHandler.current) {\n return;\n }\n\n debouncedFunction.current.apply(null, maxWaitArgs.current);\n cancelDebouncedCallback();\n }, [cancelDebouncedCallback]); // At the moment, we use 3 args array so that we save backward compatibility\n\n return [debouncedCallback, cancelDebouncedCallback, callPending];\n}\n\nexports.default = useDebouncedCallback;",";\n\n(function (root, factory) {\n if (typeof exports === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function (Math) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo; // Initialization and round constants tables\n\n var H = [];\n var K = []; // Compute constants\n\n (function () {\n function isPrime(n) {\n var sqrtN = Math.sqrt(n);\n\n for (var factor = 2; factor <= sqrtN; factor++) {\n if (!(n % factor)) {\n return false;\n }\n }\n\n return true;\n }\n\n function getFractionalBits(n) {\n return (n - (n | 0)) * 0x100000000 | 0;\n }\n\n var n = 2;\n var nPrime = 0;\n\n while (nPrime < 64) {\n if (isPrime(n)) {\n if (nPrime < 8) {\n H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n }\n\n K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n nPrime++;\n }\n\n n++;\n }\n })(); // Reusable object\n\n\n var W = [];\n /**\n * SHA-256 hash algorithm.\n */\n\n var SHA256 = C_algo.SHA256 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = new WordArray.init(H.slice(0));\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcut\n var H = this._hash.words; // Working variables\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n var f = H[5];\n var g = H[6];\n var h = H[7]; // Computation\n\n for (var i = 0; i < 64; i++) {\n if (i < 16) {\n W[i] = M[offset + i] | 0;\n } else {\n var gamma0x = W[i - 15];\n var gamma0 = (gamma0x << 25 | gamma0x >>> 7) ^ (gamma0x << 14 | gamma0x >>> 18) ^ gamma0x >>> 3;\n var gamma1x = W[i - 2];\n var gamma1 = (gamma1x << 15 | gamma1x >>> 17) ^ (gamma1x << 13 | gamma1x >>> 19) ^ gamma1x >>> 10;\n W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n }\n\n var ch = e & f ^ ~e & g;\n var maj = a & b ^ a & c ^ b & c;\n var sigma0 = (a << 30 | a >>> 2) ^ (a << 19 | a >>> 13) ^ (a << 10 | a >>> 22);\n var sigma1 = (e << 26 | e >>> 6) ^ (e << 21 | e >>> 11) ^ (e << 7 | e >>> 25);\n var t1 = h + sigma1 + ch + K[i] + W[i];\n var t2 = sigma0 + maj;\n h = g;\n g = f;\n f = e;\n e = d + t1 | 0;\n d = c;\n c = b;\n b = a;\n a = t1 + t2 | 0;\n } // Intermediate hash value\n\n\n H[0] = H[0] + a | 0;\n H[1] = H[1] + b | 0;\n H[2] = H[2] + c | 0;\n H[3] = H[3] + d | 0;\n H[4] = H[4] + e | 0;\n H[5] = H[5] + f | 0;\n H[6] = H[6] + g | 0;\n H[7] = H[7] + h | 0;\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8; // Add padding\n\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;\n data.sigBytes = dataWords.length * 4; // Hash final blocks\n\n this._process(); // Return final computed hash\n\n\n return this._hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA256('message');\n * var hash = CryptoJS.SHA256(wordArray);\n */\n\n C.SHA256 = Hasher._createHelper(SHA256);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA256(message, key);\n */\n\n C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n })(Math);\n\n return CryptoJS.SHA256;\n});",";\n\n(function (root, factory, undef) {\n if (typeof exports === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./x64-core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Hasher = C_lib.Hasher;\n var C_x64 = C.x64;\n var X64Word = C_x64.Word;\n var X64WordArray = C_x64.WordArray;\n var C_algo = C.algo;\n\n function X64Word_create() {\n return X64Word.create.apply(X64Word, arguments);\n } // Constants\n\n\n var K = [X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd), X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc), X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019), X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118), X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe), X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2), X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1), X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694), X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3), X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65), X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483), X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5), X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210), X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4), X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725), X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70), X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926), X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df), X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8), X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b), X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001), X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30), X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910), X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8), X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53), X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8), X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb), X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3), X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60), X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec), X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9), X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b), X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207), X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178), X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6), X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b), X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493), X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c), X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a), X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)]; // Reusable objects\n\n var W = [];\n\n (function () {\n for (var i = 0; i < 80; i++) {\n W[i] = X64Word_create();\n }\n })();\n /**\n * SHA-512 hash algorithm.\n */\n\n\n var SHA512 = C_algo.SHA512 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = new X64WordArray.init([new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b), new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1), new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f), new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)]);\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcuts\n var H = this._hash.words;\n var H0 = H[0];\n var H1 = H[1];\n var H2 = H[2];\n var H3 = H[3];\n var H4 = H[4];\n var H5 = H[5];\n var H6 = H[6];\n var H7 = H[7];\n var H0h = H0.high;\n var H0l = H0.low;\n var H1h = H1.high;\n var H1l = H1.low;\n var H2h = H2.high;\n var H2l = H2.low;\n var H3h = H3.high;\n var H3l = H3.low;\n var H4h = H4.high;\n var H4l = H4.low;\n var H5h = H5.high;\n var H5l = H5.low;\n var H6h = H6.high;\n var H6l = H6.low;\n var H7h = H7.high;\n var H7l = H7.low; // Working variables\n\n var ah = H0h;\n var al = H0l;\n var bh = H1h;\n var bl = H1l;\n var ch = H2h;\n var cl = H2l;\n var dh = H3h;\n var dl = H3l;\n var eh = H4h;\n var el = H4l;\n var fh = H5h;\n var fl = H5l;\n var gh = H6h;\n var gl = H6l;\n var hh = H7h;\n var hl = H7l; // Rounds\n\n for (var i = 0; i < 80; i++) {\n var Wil;\n var Wih; // Shortcut\n\n var Wi = W[i]; // Extend message\n\n if (i < 16) {\n Wih = Wi.high = M[offset + i * 2] | 0;\n Wil = Wi.low = M[offset + i * 2 + 1] | 0;\n } else {\n // Gamma0\n var gamma0x = W[i - 15];\n var gamma0xh = gamma0x.high;\n var gamma0xl = gamma0x.low;\n var gamma0h = (gamma0xh >>> 1 | gamma0xl << 31) ^ (gamma0xh >>> 8 | gamma0xl << 24) ^ gamma0xh >>> 7;\n var gamma0l = (gamma0xl >>> 1 | gamma0xh << 31) ^ (gamma0xl >>> 8 | gamma0xh << 24) ^ (gamma0xl >>> 7 | gamma0xh << 25); // Gamma1\n\n var gamma1x = W[i - 2];\n var gamma1xh = gamma1x.high;\n var gamma1xl = gamma1x.low;\n var gamma1h = (gamma1xh >>> 19 | gamma1xl << 13) ^ (gamma1xh << 3 | gamma1xl >>> 29) ^ gamma1xh >>> 6;\n var gamma1l = (gamma1xl >>> 19 | gamma1xh << 13) ^ (gamma1xl << 3 | gamma1xh >>> 29) ^ (gamma1xl >>> 6 | gamma1xh << 26); // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n\n var Wi7 = W[i - 7];\n var Wi7h = Wi7.high;\n var Wi7l = Wi7.low;\n var Wi16 = W[i - 16];\n var Wi16h = Wi16.high;\n var Wi16l = Wi16.low;\n Wil = gamma0l + Wi7l;\n Wih = gamma0h + Wi7h + (Wil >>> 0 < gamma0l >>> 0 ? 1 : 0);\n Wil = Wil + gamma1l;\n Wih = Wih + gamma1h + (Wil >>> 0 < gamma1l >>> 0 ? 1 : 0);\n Wil = Wil + Wi16l;\n Wih = Wih + Wi16h + (Wil >>> 0 < Wi16l >>> 0 ? 1 : 0);\n Wi.high = Wih;\n Wi.low = Wil;\n }\n\n var chh = eh & fh ^ ~eh & gh;\n var chl = el & fl ^ ~el & gl;\n var majh = ah & bh ^ ah & ch ^ bh & ch;\n var majl = al & bl ^ al & cl ^ bl & cl;\n var sigma0h = (ah >>> 28 | al << 4) ^ (ah << 30 | al >>> 2) ^ (ah << 25 | al >>> 7);\n var sigma0l = (al >>> 28 | ah << 4) ^ (al << 30 | ah >>> 2) ^ (al << 25 | ah >>> 7);\n var sigma1h = (eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9);\n var sigma1l = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9); // t1 = h + sigma1 + ch + K[i] + W[i]\n\n var Ki = K[i];\n var Kih = Ki.high;\n var Kil = Ki.low;\n var t1l = hl + sigma1l;\n var t1h = hh + sigma1h + (t1l >>> 0 < hl >>> 0 ? 1 : 0);\n var t1l = t1l + chl;\n var t1h = t1h + chh + (t1l >>> 0 < chl >>> 0 ? 1 : 0);\n var t1l = t1l + Kil;\n var t1h = t1h + Kih + (t1l >>> 0 < Kil >>> 0 ? 1 : 0);\n var t1l = t1l + Wil;\n var t1h = t1h + Wih + (t1l >>> 0 < Wil >>> 0 ? 1 : 0); // t2 = sigma0 + maj\n\n var t2l = sigma0l + majl;\n var t2h = sigma0h + majh + (t2l >>> 0 < sigma0l >>> 0 ? 1 : 0); // Update working variables\n\n hh = gh;\n hl = gl;\n gh = fh;\n gl = fl;\n fh = eh;\n fl = el;\n el = dl + t1l | 0;\n eh = dh + t1h + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;\n dh = ch;\n dl = cl;\n ch = bh;\n cl = bl;\n bh = ah;\n bl = al;\n al = t1l + t2l | 0;\n ah = t1h + t2h + (al >>> 0 < t1l >>> 0 ? 1 : 0) | 0;\n } // Intermediate hash value\n\n\n H0l = H0.low = H0l + al;\n H0.high = H0h + ah + (H0l >>> 0 < al >>> 0 ? 1 : 0);\n H1l = H1.low = H1l + bl;\n H1.high = H1h + bh + (H1l >>> 0 < bl >>> 0 ? 1 : 0);\n H2l = H2.low = H2l + cl;\n H2.high = H2h + ch + (H2l >>> 0 < cl >>> 0 ? 1 : 0);\n H3l = H3.low = H3l + dl;\n H3.high = H3h + dh + (H3l >>> 0 < dl >>> 0 ? 1 : 0);\n H4l = H4.low = H4l + el;\n H4.high = H4h + eh + (H4l >>> 0 < el >>> 0 ? 1 : 0);\n H5l = H5.low = H5l + fl;\n H5.high = H5h + fh + (H5l >>> 0 < fl >>> 0 ? 1 : 0);\n H6l = H6.low = H6l + gl;\n H6.high = H6h + gh + (H6l >>> 0 < gl >>> 0 ? 1 : 0);\n H7l = H7.low = H7l + hl;\n H7.high = H7h + hh + (H7l >>> 0 < hl >>> 0 ? 1 : 0);\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8; // Add padding\n\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 128 >>> 10 << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);\n dataWords[(nBitsLeft + 128 >>> 10 << 5) + 31] = nBitsTotal;\n data.sigBytes = dataWords.length * 4; // Hash final blocks\n\n this._process(); // Convert hash to 32-bit word array before returning\n\n\n var hash = this._hash.toX32(); // Return final computed hash\n\n\n return hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n },\n blockSize: 1024 / 32\n });\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA512('message');\n * var hash = CryptoJS.SHA512(wordArray);\n */\n\n C.SHA512 = Hasher._createHelper(SHA512);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA512(message, key);\n */\n\n C.HmacSHA512 = Hasher._createHmacHelper(SHA512);\n })();\n\n return CryptoJS.SHA512;\n});","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __extends } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { AbstractPureComponent2, Classes, getRef, Keys, Utils } from \"../../common\";\nimport { Icon } from \"../icon/icon\";\nimport { Spinner } from \"../spinner/spinner\";\n\nvar AbstractButton =\n/** @class */\nfunction (_super) {\n __extends(AbstractButton, _super);\n\n function AbstractButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n isActive: false\n };\n _this.currentKeyDown = null; // we're casting as `any` to get around a somewhat opaque safeInvoke error\n // that \"Type argument candidate 'KeyboardEvent' is not a valid type\n // argument because it is not a supertype of candidate\n // 'KeyboardEvent'.\"\n\n _this.handleKeyDown = function (e) {\n var _a, _b;\n\n if (Keys.isKeyboardClick(e.which)) {\n e.preventDefault();\n\n if (e.which !== _this.currentKeyDown) {\n _this.setState({\n isActive: true\n });\n }\n }\n\n _this.currentKeyDown = e.which;\n (_b = (_a = _this.props).onKeyDown) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n };\n\n _this.handleKeyUp = function (e) {\n var _a, _b;\n\n if (Keys.isKeyboardClick(e.which)) {\n _this.setState({\n isActive: false\n });\n\n getRef(_this.buttonRef).click();\n }\n\n _this.currentKeyDown = null;\n (_b = (_a = _this.props).onKeyUp) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n };\n\n return _this;\n }\n\n AbstractButton.prototype.getCommonButtonProps = function () {\n var _a;\n\n var _b = this.props,\n alignText = _b.alignText,\n fill = _b.fill,\n large = _b.large,\n loading = _b.loading,\n outlined = _b.outlined,\n minimal = _b.minimal,\n small = _b.small,\n tabIndex = _b.tabIndex;\n var disabled = this.props.disabled || loading;\n var className = classNames(Classes.BUTTON, (_a = {}, _a[Classes.ACTIVE] = this.state.isActive || this.props.active, _a[Classes.DISABLED] = disabled, _a[Classes.FILL] = fill, _a[Classes.LARGE] = large, _a[Classes.LOADING] = loading, _a[Classes.MINIMAL] = minimal, _a[Classes.OUTLINED] = outlined, _a[Classes.SMALL] = small, _a), Classes.alignmentClass(alignText), Classes.intentClass(this.props.intent), this.props.className);\n return {\n className: className,\n disabled: disabled,\n onClick: disabled ? undefined : this.props.onClick,\n onKeyDown: this.handleKeyDown,\n onKeyUp: this.handleKeyUp,\n tabIndex: disabled ? -1 : tabIndex\n };\n };\n\n AbstractButton.prototype.renderChildren = function () {\n var _a = this.props,\n children = _a.children,\n icon = _a.icon,\n loading = _a.loading,\n rightIcon = _a.rightIcon,\n text = _a.text;\n return [loading && React.createElement(Spinner, {\n key: \"loading\",\n className: Classes.BUTTON_SPINNER,\n size: Icon.SIZE_LARGE\n }), React.createElement(Icon, {\n key: \"leftIcon\",\n icon: icon\n }), (!Utils.isReactNodeEmpty(text) || !Utils.isReactNodeEmpty(children)) && React.createElement(\"span\", {\n key: \"text\",\n className: Classes.BUTTON_TEXT\n }, text, children), React.createElement(Icon, {\n key: \"rightIcon\",\n icon: rightIcon\n })];\n };\n\n return AbstractButton;\n}(AbstractPureComponent2);\n\nexport { AbstractButton };","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __extends } from \"tslib\"; // HACKHACK: these components should go in separate files\n\n/* eslint-disable max-classes-per-file */\n\nimport * as React from \"react\";\nimport { DISPLAYNAME_PREFIX, removeNonHTMLProps } from \"../../common/props\";\nimport { isRefObject } from \"../../common/refs\";\nimport { AbstractButton } from \"./abstractButton\";\n\nvar Button =\n/** @class */\nfunction (_super) {\n __extends(Button, _super);\n\n function Button() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.handleRef = isRefObject(_this.props.elementRef) ? _this.buttonRef = _this.props.elementRef : function (ref) {\n var _a;\n\n _this.buttonRef = ref;\n (_a = _this.props.elementRef) === null || _a === void 0 ? void 0 : _a(ref);\n };\n return _this;\n }\n\n Button.prototype.render = function () {\n return React.createElement(\"button\", __assign({\n type: \"button\",\n ref: this.handleRef\n }, removeNonHTMLProps(this.props), this.getCommonButtonProps()), this.renderChildren());\n };\n\n Button.displayName = DISPLAYNAME_PREFIX + \".Button\";\n return Button;\n}(AbstractButton);\n\nexport { Button };\n\nvar AnchorButton =\n/** @class */\nfunction (_super) {\n __extends(AnchorButton, _super);\n\n function AnchorButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.handleRef = isRefObject(_this.props.elementRef) ? _this.buttonRef = _this.props.elementRef : function (ref) {\n var _a;\n\n _this.buttonRef = ref;\n (_a = _this.props.elementRef) === null || _a === void 0 ? void 0 : _a(ref);\n };\n return _this;\n }\n\n AnchorButton.prototype.render = function () {\n var _a = this.props,\n href = _a.href,\n _b = _a.tabIndex,\n tabIndex = _b === void 0 ? 0 : _b;\n var commonProps = this.getCommonButtonProps();\n return React.createElement(\"a\", __assign({\n role: \"button\",\n ref: this.handleRef\n }, removeNonHTMLProps(this.props), commonProps, {\n href: commonProps.disabled ? undefined : href,\n tabIndex: commonProps.disabled ? -1 : tabIndex\n }), this.renderChildren());\n };\n\n AnchorButton.displayName = DISPLAYNAME_PREFIX + \".AnchorButton\";\n return AnchorButton;\n}(AbstractButton);\n\nexport { AnchorButton };","// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n// alea, a 53-bit multiply-with-carry generator by Johannes Baagøe.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea'); // xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\n\n\nvar xor128 = require('./lib/xor128'); // xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\n\n\nvar xorwow = require('./lib/xorwow'); // xorshift7, by François Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\n\n\nvar xorshift7 = require('./lib/xorshift7'); // xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\n\n\nvar xor4096 = require('./lib/xor4096'); // Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\n\n\nvar tychei = require('./lib/tychei'); // The original ARC4-based prng included in this library.\n// Period: ~2^1600\n\n\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\nmodule.exports = sr;","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __assign, __decorate, __extends, __rest } from \"tslib\";\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { AbstractPureComponent2, Classes, Position } from \"../../common\";\nimport { safeInvoke } from \"../../common/utils\";\nimport { Popover } from \"../popover/popover\";\nvar POPPER_MODIFIERS = {\n preventOverflow: {\n boundariesElement: \"viewport\"\n }\n};\nvar TRANSITION_DURATION = 100;\n/* istanbul ignore next */\n\nvar ContextMenu =\n/** @class */\nfunction (_super) {\n __extends(ContextMenu, _super);\n\n function ContextMenu() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n isDarkTheme: false,\n isOpen: false,\n menu: null,\n offset: null\n };\n\n _this.cancelContextMenu = function (e) {\n return e.preventDefault();\n };\n\n _this.handleBackdropContextMenu = function (e) {\n // React function to remove from the event pool, useful when using a event within a callback\n e.persist();\n e.preventDefault(); // wait for backdrop to disappear so we can find the \"real\" element at event coordinates.\n // timeout duration is equivalent to transition duration so we know it's animated out.\n\n _this.setTimeout(function () {\n // retrigger context menu event at the element beneath the backdrop.\n // if it has a `contextmenu` event handler then it'll be invoked.\n // if it doesn't, no native menu will show (at least on OSX) :(\n var newTarget = document.elementFromPoint(e.clientX, e.clientY);\n\n var view = e.view,\n newEventInit = __rest(e, [\"view\"]);\n\n newTarget.dispatchEvent(new MouseEvent(\"contextmenu\", newEventInit));\n }, TRANSITION_DURATION);\n };\n\n _this.handlePopoverInteraction = function (nextOpenState) {\n if (!nextOpenState) {\n // delay the actual hiding till the event queue clears\n // to avoid flicker of opening twice\n requestAnimationFrame(function () {\n return _this.hide();\n });\n }\n };\n\n return _this;\n }\n\n ContextMenu.prototype.render = function () {\n var _a; // prevent right-clicking in a context menu\n\n\n var content = React.createElement(\"div\", {\n onContextMenu: this.cancelContextMenu\n }, this.state.menu);\n var popoverClassName = classNames((_a = {}, _a[Classes.DARK] = this.state.isDarkTheme, _a)); // HACKHACK: workaround until we have access to Popper#scheduleUpdate().\n // https://github.com/palantir/blueprint/issues/692\n // Generate key based on offset so a new Popover instance is created\n // when offset changes, to force recomputing position.\n\n var key = this.state.offset == null ? \"\" : this.state.offset.left + \"x\" + this.state.offset.top; // wrap the popover in a positioned div to make sure it is properly\n // offset on the screen.\n\n return React.createElement(\"div\", {\n className: Classes.CONTEXT_MENU_POPOVER_TARGET,\n style: this.state.offset\n }, React.createElement(Popover, __assign({}, this.props, {\n backdropProps: {\n onContextMenu: this.handleBackdropContextMenu\n },\n content: content,\n enforceFocus: false,\n key: key,\n hasBackdrop: true,\n isOpen: this.state.isOpen,\n minimal: true,\n modifiers: POPPER_MODIFIERS,\n onInteraction: this.handlePopoverInteraction,\n position: Position.RIGHT_TOP,\n popoverClassName: popoverClassName,\n target: React.createElement(\"div\", null),\n transitionDuration: TRANSITION_DURATION\n })));\n };\n\n ContextMenu.prototype.show = function (menu, offset, onClose, isDarkTheme) {\n this.setState({\n isOpen: true,\n menu: menu,\n offset: offset,\n onClose: onClose,\n isDarkTheme: isDarkTheme\n });\n };\n\n ContextMenu.prototype.hide = function () {\n safeInvoke(this.state.onClose);\n this.setState({\n isOpen: false,\n onClose: undefined\n });\n };\n\n ContextMenu = __decorate([polyfill], ContextMenu);\n return ContextMenu;\n}(AbstractPureComponent2);\n\nvar contextMenuElement;\nvar contextMenu;\n/**\n * Show the given menu element at the given offset from the top-left corner of the viewport.\n * The menu will appear below-right of this point and will flip to below-left if there is not enough\n * room onscreen. The optional callback will be invoked when this menu closes.\n */\n\nexport function show(menu, offset, onClose, isDarkTheme) {\n if (contextMenuElement == null) {\n contextMenuElement = document.createElement(\"div\");\n contextMenuElement.classList.add(Classes.CONTEXT_MENU);\n document.body.appendChild(contextMenuElement);\n contextMenu = ReactDOM.render(React.createElement(ContextMenu, {\n onClosed: remove\n }), contextMenuElement);\n }\n\n contextMenu.show(menu, offset, onClose, isDarkTheme);\n}\n/** Hide the open context menu. */\n\nexport function hide() {\n if (contextMenu != null) {\n contextMenu.hide();\n }\n}\n/** Return whether a context menu is currently open. */\n\nexport function isOpen() {\n return contextMenu != null && contextMenu.state.isOpen;\n}\n\nfunction remove() {\n if (contextMenuElement != null) {\n ReactDOM.unmountComponentAtNode(contextMenuElement);\n contextMenuElement.remove();\n contextMenuElement = null;\n contextMenu = null;\n }\n}","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\n\n/* eslint-disable require-jsdoc, valid-jsdoc */\nvar MapShim = function () {\n if (typeof Map !== 'undefined') {\n return Map;\n }\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\n\n\n function getIndex(arr, key) {\n var result = -1;\n arr.some(function (entry, index) {\n if (entry[0] === key) {\n result = index;\n return true;\n }\n\n return false;\n });\n return result;\n }\n\n return (\n /** @class */\n function () {\n function class_1() {\n this.__entries__ = [];\n }\n\n Object.defineProperty(class_1.prototype, \"size\", {\n /**\r\n * @returns {boolean}\r\n */\n get: function get() {\n return this.__entries__.length;\n },\n enumerable: true,\n configurable: true\n });\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\n\n class_1.prototype.get = function (key) {\n var index = getIndex(this.__entries__, key);\n var entry = this.__entries__[index];\n return entry && entry[1];\n };\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.set = function (key, value) {\n var index = getIndex(this.__entries__, key);\n\n if (~index) {\n this.__entries__[index][1] = value;\n } else {\n this.__entries__.push([key, value]);\n }\n };\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.delete = function (key) {\n var entries = this.__entries__;\n var index = getIndex(entries, key);\n\n if (~index) {\n entries.splice(index, 1);\n }\n };\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.has = function (key) {\n return !!~getIndex(this.__entries__, key);\n };\n /**\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.clear = function () {\n this.__entries__.splice(0);\n };\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.forEach = function (callback, ctx) {\n if (ctx === void 0) {\n ctx = null;\n }\n\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\n var entry = _a[_i];\n callback.call(ctx, entry[1], entry[0]);\n }\n };\n\n return class_1;\n }()\n );\n}();\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\n\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document; // Returns global object of a current environment.\n\nvar global$1 = function () {\n if (typeof global !== 'undefined' && global.Math === Math) {\n return global;\n }\n\n if (typeof self !== 'undefined' && self.Math === Math) {\n return self;\n }\n\n if (typeof window !== 'undefined' && window.Math === Math) {\n return window;\n } // eslint-disable-next-line no-new-func\n\n\n return Function('return this')();\n}();\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\n\n\nvar requestAnimationFrame$1 = function () {\n if (typeof requestAnimationFrame === 'function') {\n // It's required to use a bounded function because IE sometimes throws\n // an \"Invalid calling object\" error if rAF is invoked without the global\n // object on the left hand side.\n return requestAnimationFrame.bind(global$1);\n }\n\n return function (callback) {\n return setTimeout(function () {\n return callback(Date.now());\n }, 1000 / 60);\n };\n}(); // Defines minimum timeout before adding a trailing call.\n\n\nvar trailingTimeout = 2;\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\n\nfunction throttle(callback, delay) {\n var leadingCall = false,\n trailingCall = false,\n lastCallTime = 0;\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\n\n function resolvePending() {\n if (leadingCall) {\n leadingCall = false;\n callback();\n }\n\n if (trailingCall) {\n proxy();\n }\n }\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\n\n\n function timeoutCallback() {\n requestAnimationFrame$1(resolvePending);\n }\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\n\n\n function proxy() {\n var timeStamp = Date.now();\n\n if (leadingCall) {\n // Reject immediately following calls.\n if (timeStamp - lastCallTime < trailingTimeout) {\n return;\n } // Schedule new call to be in invoked when the pending one is resolved.\n // This is important for \"transitions\" which never actually start\n // immediately so there is a chance that we might miss one if change\n // happens amids the pending invocation.\n\n\n trailingCall = true;\n } else {\n leadingCall = true;\n trailingCall = false;\n setTimeout(timeoutCallback, delay);\n }\n\n lastCallTime = timeStamp;\n }\n\n return proxy;\n} // Minimum delay before invoking the update of observers.\n\n\nvar REFRESH_DELAY = 20; // A list of substrings of CSS properties used to find transition events that\n// might affect dimensions of observed elements.\n\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight']; // Check if MutationObserver is available.\n\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\n\nvar ResizeObserverController =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\n function ResizeObserverController() {\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\n this.connected_ = false;\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\n\n this.mutationEventsAdded_ = false;\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\n\n this.mutationsObserver_ = null;\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\n\n this.observers_ = [];\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\n }\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.addObserver = function (observer) {\n if (!~this.observers_.indexOf(observer)) {\n this.observers_.push(observer);\n } // Add listeners if they haven't been added yet.\n\n\n if (!this.connected_) {\n this.connect_();\n }\n };\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.removeObserver = function (observer) {\n var observers = this.observers_;\n var index = observers.indexOf(observer); // Remove observer if it's present in registry.\n\n if (~index) {\n observers.splice(index, 1);\n } // Remove listeners if controller has no connected observers.\n\n\n if (!observers.length && this.connected_) {\n this.disconnect_();\n }\n };\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.refresh = function () {\n var changesDetected = this.updateObservers_(); // Continue running updates if changes have been detected as there might\n // be future ones caused by CSS transitions.\n\n if (changesDetected) {\n this.refresh();\n }\n };\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\n\n\n ResizeObserverController.prototype.updateObservers_ = function () {\n // Collect observers that have active observations.\n var activeObservers = this.observers_.filter(function (observer) {\n return observer.gatherActive(), observer.hasActive();\n }); // Deliver notifications in a separate cycle in order to avoid any\n // collisions between observers, e.g. when multiple instances of\n // ResizeObserver are tracking the same element and the callback of one\n // of them changes content dimensions of the observed target. Sometimes\n // this may result in notifications being blocked for the rest of observers.\n\n activeObservers.forEach(function (observer) {\n return observer.broadcastActive();\n });\n return activeObservers.length > 0;\n };\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.connect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already added.\n if (!isBrowser || this.connected_) {\n return;\n } // Subscription to the \"Transitionend\" event is used as a workaround for\n // delayed transitions. This way it's possible to capture at least the\n // final state of an element.\n\n\n document.addEventListener('transitionend', this.onTransitionEnd_);\n window.addEventListener('resize', this.refresh);\n\n if (mutationObserverSupported) {\n this.mutationsObserver_ = new MutationObserver(this.refresh);\n this.mutationsObserver_.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n } else {\n document.addEventListener('DOMSubtreeModified', this.refresh);\n this.mutationEventsAdded_ = true;\n }\n\n this.connected_ = true;\n };\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.disconnect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already removed.\n if (!isBrowser || !this.connected_) {\n return;\n }\n\n document.removeEventListener('transitionend', this.onTransitionEnd_);\n window.removeEventListener('resize', this.refresh);\n\n if (this.mutationsObserver_) {\n this.mutationsObserver_.disconnect();\n }\n\n if (this.mutationEventsAdded_) {\n document.removeEventListener('DOMSubtreeModified', this.refresh);\n }\n\n this.mutationsObserver_ = null;\n this.mutationEventsAdded_ = false;\n this.connected_ = false;\n };\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\n var _b = _a.propertyName,\n propertyName = _b === void 0 ? '' : _b; // Detect whether transition may affect dimensions of an element.\n\n var isReflowProperty = transitionKeys.some(function (key) {\n return !!~propertyName.indexOf(key);\n });\n\n if (isReflowProperty) {\n this.refresh();\n }\n };\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\n\n\n ResizeObserverController.getInstance = function () {\n if (!this.instance_) {\n this.instance_ = new ResizeObserverController();\n }\n\n return this.instance_;\n };\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\n\n\n ResizeObserverController.instance_ = null;\n return ResizeObserverController;\n}();\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\n\n\nvar defineConfigurable = function defineConfigurable(target, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var key = _a[_i];\n Object.defineProperty(target, key, {\n value: props[key],\n enumerable: false,\n writable: false,\n configurable: true\n });\n }\n\n return target;\n};\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\n\n\nvar getWindowOf = function getWindowOf(target) {\n // Assume that the element is an instance of Node, which means that it\n // has the \"ownerDocument\" property from which we can retrieve a\n // corresponding global object.\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView; // Return the local global object if it's not possible extract one from\n // provided element.\n\n return ownerGlobal || global$1;\n}; // Placeholder of an empty content rectangle.\n\n\nvar emptyRect = createRectInit(0, 0, 0, 0);\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\n\nfunction toFloat(value) {\n return parseFloat(value) || 0;\n}\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\n\n\nfunction getBordersSize(styles) {\n var positions = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n positions[_i - 1] = arguments[_i];\n }\n\n return positions.reduce(function (size, position) {\n var value = styles['border-' + position + '-width'];\n return size + toFloat(value);\n }, 0);\n}\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\n\n\nfunction getPaddings(styles) {\n var positions = ['top', 'right', 'bottom', 'left'];\n var paddings = {};\n\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\n var position = positions_1[_i];\n var value = styles['padding-' + position];\n paddings[position] = toFloat(value);\n }\n\n return paddings;\n}\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getSVGContentRect(target) {\n var bbox = target.getBBox();\n return createRectInit(0, 0, bbox.width, bbox.height);\n}\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getHTMLElementContentRect(target) {\n // Client width & height properties can't be\n // used exclusively as they provide rounded values.\n var clientWidth = target.clientWidth,\n clientHeight = target.clientHeight; // By this condition we can catch all non-replaced inline, hidden and\n // detached elements. Though elements with width & height properties less\n // than 0.5 will be discarded as well.\n //\n // Without it we would need to implement separate methods for each of\n // those cases and it's not possible to perform a precise and performance\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\n // gives wrong results for elements with width & height less than 0.5.\n\n if (!clientWidth && !clientHeight) {\n return emptyRect;\n }\n\n var styles = getWindowOf(target).getComputedStyle(target);\n var paddings = getPaddings(styles);\n var horizPad = paddings.left + paddings.right;\n var vertPad = paddings.top + paddings.bottom; // Computed styles of width & height are being used because they are the\n // only dimensions available to JS that contain non-rounded values. It could\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\n // affected by CSS transformations let alone paddings, borders and scroll bars.\n\n var width = toFloat(styles.width),\n height = toFloat(styles.height); // Width & height include paddings and borders when the 'border-box' box\n // model is applied (except for IE).\n\n if (styles.boxSizing === 'border-box') {\n // Following conditions are required to handle Internet Explorer which\n // doesn't include paddings and borders to computed CSS dimensions.\n //\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\n // properties then it's either IE, and thus we don't need to subtract\n // anything, or an element merely doesn't have paddings/borders styles.\n if (Math.round(width + horizPad) !== clientWidth) {\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\n }\n\n if (Math.round(height + vertPad) !== clientHeight) {\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\n }\n } // Following steps can't be applied to the document's root element as its\n // client[Width/Height] properties represent viewport area of the window.\n // Besides, it's as well not necessary as the itself neither has\n // rendered scroll bars nor it can be clipped.\n\n\n if (!isDocumentElement(target)) {\n // In some browsers (only in Firefox, actually) CSS width & height\n // include scroll bars size which can be removed at this step as scroll\n // bars are the only difference between rounded dimensions + paddings\n // and \"client\" properties, though that is not always true in Chrome.\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\n var horizScrollbar = Math.round(height + vertPad) - clientHeight; // Chrome has a rather weird rounding of \"client\" properties.\n // E.g. for an element with content width of 314.2px it sometimes gives\n // the client width of 315px and for the width of 314.7px it may give\n // 314px. And it doesn't happen all the time. So just ignore this delta\n // as a non-relevant.\n\n if (Math.abs(vertScrollbar) !== 1) {\n width -= vertScrollbar;\n }\n\n if (Math.abs(horizScrollbar) !== 1) {\n height -= horizScrollbar;\n }\n }\n\n return createRectInit(paddings.left, paddings.top, width, height);\n}\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\n\n\nvar isSVGGraphicsElement = function () {\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\n // interface.\n if (typeof SVGGraphicsElement !== 'undefined') {\n return function (target) {\n return target instanceof getWindowOf(target).SVGGraphicsElement;\n };\n } // If it's so, then check that element is at least an instance of the\n // SVGElement and that it has the \"getBBox\" method.\n // eslint-disable-next-line no-extra-parens\n\n\n return function (target) {\n return target instanceof getWindowOf(target).SVGElement && typeof target.getBBox === 'function';\n };\n}();\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\n\n\nfunction isDocumentElement(target) {\n return target === getWindowOf(target).document.documentElement;\n}\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getContentRect(target) {\n if (!isBrowser) {\n return emptyRect;\n }\n\n if (isSVGGraphicsElement(target)) {\n return getSVGContentRect(target);\n }\n\n return getHTMLElementContentRect(target);\n}\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\n\n\nfunction createReadOnlyRect(_a) {\n var x = _a.x,\n y = _a.y,\n width = _a.width,\n height = _a.height; // If DOMRectReadOnly is available use it as a prototype for the rectangle.\n\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\n var rect = Object.create(Constr.prototype); // Rectangle's properties are not writable and non-enumerable.\n\n defineConfigurable(rect, {\n x: x,\n y: y,\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: height + y,\n left: x\n });\n return rect;\n}\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction createRectInit(x, y, width, height) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n}\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\n\n\nvar ResizeObservation =\n/** @class */\nfunction () {\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\n function ResizeObservation(target) {\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\n this.broadcastWidth = 0;\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\n\n this.broadcastHeight = 0;\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\n\n this.contentRect_ = createRectInit(0, 0, 0, 0);\n this.target = target;\n }\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n ResizeObservation.prototype.isActive = function () {\n var rect = getContentRect(this.target);\n this.contentRect_ = rect;\n return rect.width !== this.broadcastWidth || rect.height !== this.broadcastHeight;\n };\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\n\n\n ResizeObservation.prototype.broadcastRect = function () {\n var rect = this.contentRect_;\n this.broadcastWidth = rect.width;\n this.broadcastHeight = rect.height;\n return rect;\n };\n\n return ResizeObservation;\n}();\n\nvar ResizeObserverEntry =\n/** @class */\nfunction () {\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\n function ResizeObserverEntry(target, rectInit) {\n var contentRect = createReadOnlyRect(rectInit); // According to the specification following properties are not writable\n // and are also not enumerable in the native implementation.\n //\n // Property accessors are not being used as they'd require to define a\n // private WeakMap storage which may cause memory leaks in browsers that\n // don't support this type of collections.\n\n defineConfigurable(this, {\n target: target,\n contentRect: contentRect\n });\n }\n\n return ResizeObserverEntry;\n}();\n\nvar ResizeObserverSPI =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\n function ResizeObserverSPI(callback, controller, callbackCtx) {\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\n this.activeObservations_ = [];\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\n\n this.observations_ = new MapShim();\n\n if (typeof callback !== 'function') {\n throw new TypeError('The callback provided as parameter 1 is not a function.');\n }\n\n this.callback_ = callback;\n this.controller_ = controller;\n this.callbackCtx_ = callbackCtx;\n }\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.observe = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n } // Do nothing if current environment doesn't have the Element interface.\n\n\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n\n var observations = this.observations_; // Do nothing if element is already being observed.\n\n if (observations.has(target)) {\n return;\n }\n\n observations.set(target, new ResizeObservation(target));\n this.controller_.addObserver(this); // Force the update of observations.\n\n this.controller_.refresh();\n };\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.unobserve = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n } // Do nothing if current environment doesn't have the Element interface.\n\n\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n\n var observations = this.observations_; // Do nothing if element is not being observed.\n\n if (!observations.has(target)) {\n return;\n }\n\n observations.delete(target);\n\n if (!observations.size) {\n this.controller_.removeObserver(this);\n }\n };\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.disconnect = function () {\n this.clearActive();\n this.observations_.clear();\n this.controller_.removeObserver(this);\n };\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.gatherActive = function () {\n var _this = this;\n\n this.clearActive();\n this.observations_.forEach(function (observation) {\n if (observation.isActive()) {\n _this.activeObservations_.push(observation);\n }\n });\n };\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.broadcastActive = function () {\n // Do nothing if observer doesn't have active observations.\n if (!this.hasActive()) {\n return;\n }\n\n var ctx = this.callbackCtx_; // Create ResizeObserverEntry instance for every active observation.\n\n var entries = this.activeObservations_.map(function (observation) {\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\n });\n this.callback_.call(ctx, entries, ctx);\n this.clearActive();\n };\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.clearActive = function () {\n this.activeObservations_.splice(0);\n };\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n ResizeObserverSPI.prototype.hasActive = function () {\n return this.activeObservations_.length > 0;\n };\n\n return ResizeObserverSPI;\n}(); // Registry of internal observers. If WeakMap is not available use current shim\n// for the Map collection as it has all required methods and because WeakMap\n// can't be fully polyfilled anyway.\n\n\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\n\nvar ResizeObserver =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\n function ResizeObserver(callback) {\n if (!(this instanceof ResizeObserver)) {\n throw new TypeError('Cannot call a class as a function.');\n }\n\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n }\n\n var controller = ResizeObserverController.getInstance();\n var observer = new ResizeObserverSPI(callback, controller, this);\n observers.set(this, observer);\n }\n\n return ResizeObserver;\n}(); // Expose public methods of ResizeObserver.\n\n\n['observe', 'unobserve', 'disconnect'].forEach(function (method) {\n ResizeObserver.prototype[method] = function () {\n var _a;\n\n return (_a = observers.get(this))[method].apply(_a, arguments);\n };\n});\n\nvar index = function () {\n // Export existing implementation if available.\n if (typeof global$1.ResizeObserver !== 'undefined') {\n return global$1.ResizeObserver;\n }\n\n return ResizeObserver;\n}();\n\nexport default index;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","var objectKeys = require('object-keys');\n\nvar isArguments = require('is-arguments');\n\nvar is = require('object-is');\n\nvar isRegex = require('is-regex');\n\nvar flags = require('regexp.prototype.flags');\n\nvar isDate = require('is-date-object');\n\nvar getTime = Date.prototype.getTime;\n\nfunction deepEqual(actual, expected, options) {\n var opts = options || {}; // 7.1. All identical values are equivalent, as determined by ===.\n\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n } // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n\n\n if (!actual || !expected || typeof actual !== 'object' && typeof expected !== 'object') {\n return opts.strict ? is(actual, expected) : actual == expected;\n }\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // eslint-disable-next-line no-use-before-define\n\n\n return objEquiv(actual, expected, opts);\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n /* eslint max-statements: [2, 50] */\n var i, key;\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) {\n return false;\n } // an identical 'prototype' property.\n\n\n if (a.prototype !== b.prototype) {\n return false;\n }\n\n if (isArguments(a) !== isArguments(b)) {\n return false;\n }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n\n if (aIsRegex !== bIsRegex) {\n return false;\n }\n\n if (aIsRegex || bIsRegex) {\n return a.source === b.source && flags(a) === flags(b);\n }\n\n if (isDate(a) && isDate(b)) {\n return getTime.call(a) === getTime.call(b);\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n\n if (aIsBuffer !== bIsBuffer) {\n return false;\n }\n\n if (aIsBuffer || bIsBuffer) {\n // && would work too, because both are true or both false here\n if (a.length !== b.length) {\n return false;\n }\n\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n try {\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n } catch (e) {\n // happens when one is a string literal and the other isn't\n return false;\n } // having the same number of owned properties (keys incorporates hasOwnProperty)\n\n\n if (ka.length !== kb.length) {\n return false;\n } // the same set of keys (although not necessarily the same order),\n\n\n ka.sort();\n kb.sort(); // ~~~cheap key test\n\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) {\n return false;\n }\n } // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n\n\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n\n if (!deepEqual(a[key], b[key], opts)) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = deepEqual;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nexports.default = function () {\n var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return function (Element) {\n return function (_Component) {\n _inherits(DelayRender, _Component);\n\n function DelayRender() {\n _classCallCheck(this, DelayRender);\n\n var _this = _possibleConstructorReturn(this, (DelayRender.__proto__ || Object.getPrototypeOf(DelayRender)).call(this));\n\n _this.state = {\n ready: true\n };\n return _this;\n }\n\n _createClass(DelayRender, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n var _this2 = this;\n\n var delay = args.delay,\n onRender = args.onRender;\n var d = parseInt(delay, 10);\n\n if (d && d > 0) {\n this.setState({\n ready: false\n });\n this.timeout = setTimeout(function () {\n _this2.setState({\n ready: true\n });\n\n if (onRender && typeof onRender === 'function') {\n onRender();\n }\n }, delay);\n } else {\n this.setState({\n ready: true\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n if (this.state.ready) {\n return _react2.default.createElement(Element, Element.props);\n }\n\n return null;\n }\n }]);\n\n return DelayRender;\n }(_react.Component);\n };\n};","import { createElement, Component, useRef, useState, useCallback, useEffect } from 'react';\nimport invariant from 'tiny-invariant';\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nvar INSTANCE_MAP = new Map();\nvar OBSERVER_MAP = new Map();\nvar ROOT_IDS = new Map();\nvar consecutiveRootId = 0;\n/**\n * Generate a unique ID for the root element\n * @param root\n */\n\nfunction getRootId(root) {\n if (!root) return '';\n if (ROOT_IDS.has(root)) return ROOT_IDS.get(root);\n consecutiveRootId += 1;\n ROOT_IDS.set(root, consecutiveRootId.toString());\n return ROOT_IDS.get(root) + '_';\n}\n/**\n * Monitor element, and trigger callback when element becomes inView\n * @param element {HTMLElement}\n * @param callback {Function} Called with inView\n * @param options {Object} InterSection observer options\n * @param options.threshold {Number} Number between 0 and 1, indicating how much of the element should be inView before triggering\n * @param options.root {HTMLElement}\n * @param options.rootMargin {String} The CSS margin to apply to the root element.\n */\n\n\nfunction observe(element, callback, options) {\n if (options === void 0) {\n options = {};\n } // IntersectionObserver needs a threshold to trigger, so set it to 0 if it's not defined.\n // Modify the options object, since it's used in the onChange handler.\n\n\n if (!options.threshold) options.threshold = 0;\n var _options = options,\n root = _options.root,\n rootMargin = _options.rootMargin,\n threshold = _options.threshold; // Validate that the element is not being used in another \n\n !!INSTANCE_MAP.has(element) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"react-intersection-observer: Trying to observe %s, but it's already being observed by another instance.\\nMake sure the `ref` is only used by a single instance.\\n\\n%s\") : invariant(false) : void 0;\n /* istanbul ignore if */\n\n if (!element) return; // Create a unique ID for this observer instance, based on the root, root margin and threshold.\n // An observer with the same options can be reused, so lets use this fact\n\n var observerId = getRootId(root) + (rootMargin ? threshold.toString() + \"_\" + rootMargin : threshold.toString());\n var observerInstance = OBSERVER_MAP.get(observerId);\n\n if (!observerInstance) {\n observerInstance = new IntersectionObserver(onChange, options);\n /* istanbul ignore else */\n\n if (observerId) OBSERVER_MAP.set(observerId, observerInstance);\n }\n\n var instance = {\n callback: callback,\n element: element,\n inView: false,\n observerId: observerId,\n observer: observerInstance,\n // Make sure we have the thresholds value. It's undefined on a browser like Chrome 51.\n thresholds: observerInstance.thresholds || (Array.isArray(threshold) ? threshold : [threshold])\n };\n INSTANCE_MAP.set(element, instance);\n observerInstance.observe(element);\n return instance;\n}\n/**\n * Stop observing an element. If an element is removed from the DOM or otherwise destroyed,\n * make sure to call this method.\n * @param element {Element}\n */\n\n\nfunction unobserve(element) {\n if (!element) return;\n var instance = INSTANCE_MAP.get(element);\n\n if (instance) {\n var observerId = instance.observerId,\n observer = instance.observer;\n var root = observer.root;\n observer.unobserve(element); // Check if we are still observing any elements with the same threshold.\n\n var itemsLeft = false; // Check if we still have observers configured with the same root.\n\n var rootObserved = false;\n /* istanbul ignore else */\n\n if (observerId) {\n INSTANCE_MAP.forEach(function (item, key) {\n if (key !== element) {\n if (item.observerId === observerId) {\n itemsLeft = true;\n rootObserved = true;\n }\n\n if (item.observer.root === root) {\n rootObserved = true;\n }\n }\n });\n }\n\n if (!rootObserved && root) ROOT_IDS[\"delete\"](root);\n\n if (observer && !itemsLeft) {\n // No more elements to observe for threshold, disconnect observer\n observer.disconnect();\n } // Remove reference to element\n\n\n INSTANCE_MAP[\"delete\"](element);\n }\n}\n\nfunction onChange(changes) {\n changes.forEach(function (intersection) {\n var isIntersecting = intersection.isIntersecting,\n intersectionRatio = intersection.intersectionRatio,\n target = intersection.target;\n var instance = INSTANCE_MAP.get(target); // Firefox can report a negative intersectionRatio when scrolling.\n\n /* istanbul ignore else */\n\n if (instance && intersectionRatio >= 0) {\n // If threshold is an array, check if any of them intersects. This just triggers the onChange event multiple times.\n var inView = instance.thresholds.some(function (threshold) {\n return instance.inView ? intersectionRatio > threshold : intersectionRatio >= threshold;\n });\n\n if (isIntersecting !== undefined) {\n // If isIntersecting is defined, ensure that the element is actually intersecting.\n // Otherwise it reports a threshold of 0\n inView = inView && isIntersecting;\n }\n\n instance.inView = inView;\n instance.callback(inView, intersection);\n }\n });\n}\n\nfunction isPlainChildren(props) {\n return typeof props.children !== 'function';\n}\n/**\n * Monitors scroll, and triggers the children function with updated props\n *\n \n {({inView, ref}) => (\n

{`${inView}`}

\n )}\n
\n */\n\n\nvar InView = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InView, _React$Component);\n\n function InView() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n inView: false,\n entry: undefined\n });\n\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"handleNode\", function (node) {\n if (_this.node) {\n unobserve(_this.node);\n\n if (!node && !_this.props.triggerOnce) {\n _this.setState({\n inView: false,\n entry: undefined\n });\n }\n }\n\n _this.node = node ? node : null;\n\n _this.observeNode();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleChange\", function (inView, entry) {\n // Only trigger a state update if inView has changed.\n // This prevents an unnecessary extra state update during mount, when the element stats outside the viewport\n if (inView !== _this.state.inView || inView) {\n _this.setState({\n inView: inView,\n entry: entry\n });\n }\n\n if (_this.props.onChange) {\n // If the user is actively listening for onChange, always trigger it\n _this.props.onChange(inView, entry);\n }\n });\n\n return _this;\n }\n\n var _proto = InView.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n !this.node ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"react-intersection-observer: No DOM node found. Make sure you forward \\\"ref\\\" to the root DOM element you want to observe.\") : invariant(false) : void 0;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // If a IntersectionObserver option changed, reinit the observer\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold) {\n unobserve(this.node);\n this.observeNode();\n }\n\n if (prevState.inView !== this.state.inView) {\n if (this.state.inView && this.props.triggerOnce) {\n unobserve(this.node);\n this.node = null;\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.node) {\n unobserve(this.node);\n this.node = null;\n }\n };\n\n _proto.observeNode = function observeNode() {\n if (!this.node) return;\n var _this$props = this.props,\n threshold = _this$props.threshold,\n root = _this$props.root,\n rootMargin = _this$props.rootMargin;\n observe(this.node, this.handleChange, {\n threshold: threshold,\n root: root,\n rootMargin: rootMargin\n });\n };\n\n _proto.render = function render() {\n var _this$state = this.state,\n inView = _this$state.inView,\n entry = _this$state.entry;\n\n if (!isPlainChildren(this.props)) {\n return this.props.children({\n inView: inView,\n entry: entry,\n ref: this.handleNode\n });\n }\n\n var _this$props2 = this.props,\n children = _this$props2.children,\n as = _this$props2.as,\n tag = _this$props2.tag,\n triggerOnce = _this$props2.triggerOnce,\n threshold = _this$props2.threshold,\n root = _this$props2.root,\n rootMargin = _this$props2.rootMargin,\n onChange = _this$props2.onChange,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"children\", \"as\", \"tag\", \"triggerOnce\", \"threshold\", \"root\", \"rootMargin\", \"onChange\"]);\n\n return createElement(as || tag || 'div', _extends({\n ref: this.handleNode\n }, props), children);\n };\n\n return InView;\n}(Component);\n\n_defineProperty(InView, \"displayName\", 'InView');\n\n_defineProperty(InView, \"defaultProps\", {\n threshold: 0,\n triggerOnce: false\n});\n/* eslint-disable react-hooks/exhaustive-deps */\n\n\nvar initialState = {\n inView: false,\n entry: undefined\n};\n\nfunction useInView(options) {\n if (options === void 0) {\n options = {};\n }\n\n var ref = useRef();\n\n var _React$useState = useState(initialState),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var setRef = useCallback(function (node) {\n if (ref.current) {\n unobserve(ref.current);\n }\n\n if (node) {\n observe(node, function (inView, intersection) {\n setState({\n inView: inView,\n entry: intersection\n });\n\n if (inView && options.triggerOnce) {\n // If it should only trigger once, unobserve the element after it's inView\n unobserve(node);\n }\n }, options);\n } // Store a reference to the node, so we can unobserve it later\n\n\n ref.current = node;\n }, [options.threshold, options.root, options.rootMargin, options.triggerOnce]);\n useEffect(function () {\n if (!ref.current && state !== initialState && !options.triggerOnce) {\n // If we don't have a ref, then reset the state (unless the hook is set to only `triggerOnce`)\n // This ensures we correctly reflect the current state - If you aren't observing anything, then nothing is inView\n setState(initialState);\n }\n });\n return [setRef, state.inView, state.entry];\n}\n\nexport default InView;\nexport { InView, useInView };","module.exports = function (e) {\n var t = {};\n\n function r(n) {\n if (t[n]) return t[n].exports;\n var o = t[n] = {\n i: n,\n l: !1,\n exports: {}\n };\n return e[n].call(o.exports, o, o.exports, r), o.l = !0, o.exports;\n }\n\n return r.m = e, r.c = t, r.d = function (e, t, n) {\n r.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: n\n });\n }, r.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, r.t = function (e, t) {\n if (1 & t && (e = r(e)), 8 & t) return e;\n if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n var n = Object.create(null);\n if (r.r(n), Object.defineProperty(n, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var o in e) {\n r.d(n, o, function (t) {\n return e[t];\n }.bind(null, o));\n }\n return n;\n }, r.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return r.d(t, \"a\", t), t;\n }, r.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, r.p = \"\", r(r.s = 8);\n}([function (e, t, r) {\n e.exports = r(4)();\n}, function (e, t) {\n e.exports = require(\"react\");\n}, function (e, t, r) {\n (function (t) {\n var r;\n r = \"undefined\" != typeof window ? window : void 0 !== t ? t : \"undefined\" != typeof self ? self : {}, e.exports = r;\n }).call(this, r(3));\n}, function (e, t) {\n var r;\n\n r = function () {\n return this;\n }();\n\n try {\n r = r || new Function(\"return this\")();\n } catch (e) {\n \"object\" == typeof window && (r = window);\n }\n\n e.exports = r;\n}, function (e, t, r) {\n \"use strict\";\n\n var n = r(5);\n\n function o() {}\n\n function a() {}\n\n a.resetWarningCache = o, e.exports = function () {\n function e(e, t, r, o, a, i) {\n if (i !== n) {\n var l = new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");\n throw l.name = \"Invariant Violation\", l;\n }\n }\n\n function t() {\n return e;\n }\n\n e.isRequired = e;\n var r = {\n array: e,\n bool: e,\n func: e,\n number: e,\n object: e,\n string: e,\n symbol: e,\n any: e,\n arrayOf: t,\n element: e,\n elementType: e,\n instanceOf: t,\n node: e,\n objectOf: t,\n oneOf: t,\n oneOfType: t,\n shape: t,\n exact: t,\n checkPropTypes: a,\n resetWarningCache: o\n };\n return r.PropTypes = r, r;\n };\n}, function (e, t, r) {\n \"use strict\";\n\n e.exports = \"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\";\n}, function (e, t, r) {\n (t = r(7)(!1)).push([e.i, \"@keyframes pulse {\\r\\n\\t0% {\\r\\n\\t\\ttransform: scale(1);\\r\\n\\t}\\r\\n\\t50% {\\r\\n\\t\\ttransform: scale(0.8);\\r\\n\\t}\\r\\n\\t100% {\\r\\n\\t\\ttransform: scale(1);\\r\\n\\t}\\r\\n}\\r\\n\", \"\"]), e.exports = t;\n}, function (e, t, r) {\n \"use strict\";\n\n e.exports = function (e) {\n var t = [];\n return t.toString = function () {\n return this.map(function (t) {\n var r = function (e, t) {\n var r = e[1] || \"\",\n n = e[3];\n if (!n) return r;\n\n if (t && \"function\" == typeof btoa) {\n var o = (i = n, l = btoa(unescape(encodeURIComponent(JSON.stringify(i)))), c = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(l), \"/*# \".concat(c, \" */\")),\n a = n.sources.map(function (e) {\n return \"/*# sourceURL=\".concat(n.sourceRoot || \"\").concat(e, \" */\");\n });\n return [r].concat(a).concat([o]).join(\"\\n\");\n }\n\n var i, l, c;\n return [r].join(\"\\n\");\n }(t, e);\n\n return t[2] ? \"@media \".concat(t[2], \" {\").concat(r, \"}\") : r;\n }).join(\"\");\n }, t.i = function (e, r, n) {\n \"string\" == typeof e && (e = [[null, e, \"\"]]);\n var o = {};\n if (n) for (var a = 0; a < this.length; a++) {\n var i = this[a][0];\n null != i && (o[i] = !0);\n }\n\n for (var l = 0; l < e.length; l++) {\n var c = [].concat(e[l]);\n n && o[c[0]] || (r && (c[2] ? c[2] = \"\".concat(r, \" and \").concat(c[2]) : c[2] = r), t.push(c));\n }\n }, t;\n };\n}, function (e, t, r) {\n \"use strict\";\n\n r.r(t);\n var n = r(1),\n o = r.n(n),\n a = r(2),\n i = r.n(a),\n l = r(0),\n c = r.n(l);\n\n function u(e, t) {\n var r = Object.keys(e);\n\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n t && (n = n.filter(function (t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n })), r.push.apply(r, n);\n }\n\n return r;\n }\n\n function s(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = null != arguments[t] ? arguments[t] : {};\n t % 2 ? u(Object(r), !0).forEach(function (t) {\n f(e, t, r[t]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : u(Object(r)).forEach(function (t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));\n });\n }\n\n return e;\n }\n\n function f(e, t, r) {\n return t in e ? Object.defineProperty(e, t, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[t] = r, e;\n }\n\n var p = function p(e, t) {\n switch (t.type) {\n case \"init\":\n case \"changeValues\":\n case \"setKnobPosition\":\n return s(s({}, e), t.payload);\n\n case \"onMouseDown\":\n case \"onMouseUp\":\n case \"setInitialKnobPosition\":\n return s(s({}, e), t.payload);\n\n default:\n throw new Error();\n }\n },\n d = function d(e, t) {\n var r = Object(n.useRef)(null);\n Object(n.useEffect)(function () {\n r.current = t;\n }, [t]), Object(n.useEffect)(function () {\n if (void 0 !== i.a) {\n var t = function t(e) {\n return r.current(e);\n };\n\n return i.a.addEventListener(e, t, {\n passive: !1\n }), function () {\n i.a.removeEventListener(e, t);\n };\n }\n }, [e]);\n };\n\n function b(e, t) {\n return function (e) {\n if (Array.isArray(e)) return e;\n }(e) || function (e, t) {\n var r = null == e ? null : \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (null == r) return;\n var n,\n o,\n a = [],\n i = !0,\n l = !1;\n\n try {\n for (r = r.call(e); !(i = (n = r.next()).done) && (a.push(n.value), !t || a.length !== t); i = !0) {\n ;\n }\n } catch (e) {\n l = !0, o = e;\n } finally {\n try {\n i || null == r.return || r.return();\n } finally {\n if (l) throw o;\n }\n }\n\n return a;\n }(e, t) || function (e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return g(e, t);\n var r = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === r && e.constructor && (r = e.constructor.name);\n if (\"Map\" === r || \"Set\" === r) return Array.from(e);\n if (\"Arguments\" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return g(e, t);\n }(e, t) || function () {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }();\n }\n\n function g(e, t) {\n (null == t || t > e.length) && (t = e.length);\n\n for (var r = 0, n = new Array(t); r < t; r++) {\n n[r] = e[r];\n }\n\n return n;\n }\n\n var y = function y() {\n var e = b(Object(n.useState)(!0), 2),\n t = e[0],\n r = e[1];\n return Object(n.useEffect)(function () {\n r(!1);\n }, []), t;\n };\n\n r(6);\n\n function v(e, t) {\n var r = Object.keys(e);\n\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n t && (n = n.filter(function (t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n })), r.push.apply(r, n);\n }\n\n return r;\n }\n\n function m(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = null != arguments[t] ? arguments[t] : {};\n t % 2 ? v(Object(r), !0).forEach(function (t) {\n h(e, t, r[t]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : v(Object(r)).forEach(function (t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));\n });\n }\n\n return e;\n }\n\n function h(e, t, r) {\n return t in e ? Object.defineProperty(e, t, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[t] = r, e;\n }\n\n var O = function O(e) {\n var t = e.isDragging,\n r = e.knobPosition,\n n = e.knobColor,\n a = e.knobSize,\n i = e.hideKnob,\n l = e.onMouseDown,\n c = e.trackSize,\n u = e.children,\n s = {\n knob: {\n position: \"absolute\",\n left: \"-\".concat(a / 2 - c / 2, \"px\"),\n top: \"-\".concat(a / 2 - c / 2, \"px\"),\n cursor: \"grab\",\n zIndex: 3\n },\n dragging: {\n cursor: \"grabbing\"\n },\n pause: {\n animationPlayState: \"paused\"\n },\n animation: {\n transformOrigin: \"50% 50%\",\n animationTimingFunction: \"ease-out\",\n animationDuration: \"1500ms\",\n animationIterationCount: \"infinite\",\n animationName: \"pulse\"\n },\n hide: {\n opacity: 0\n }\n };\n return o.a.createElement(\"div\", {\n style: m(m(m({\n transform: \"translate(\".concat(r.x, \"px, \").concat(r.y, \"px)\")\n }, s.knob), t && s.dragging), i && s.hide),\n onMouseDown: l,\n onTouchStart: l\n }, o.a.createElement(\"svg\", {\n width: \"\".concat(a, \"px\"),\n height: \"\".concat(a, \"px\"),\n viewBox: \"0 0 \".concat(a, \" \").concat(a)\n }, o.a.createElement(\"circle\", {\n style: m(m({}, s.animation), t && s.pause),\n fill: n,\n fillOpacity: \"0.2\",\n stroke: \"none\",\n cx: a / 2,\n cy: a / 2,\n r: a / 2\n }), o.a.createElement(\"circle\", {\n fill: n,\n stroke: \"none\",\n cx: a / 2,\n cy: a / 2,\n r: 2 * a / 3 / 2\n }), u || o.a.createElement(\"svg\", {\n width: \"\".concat(a, \"px\"),\n height: \"\".concat(a, \"px\"),\n viewBox: \"0 0 36 36\"\n }, o.a.createElement(\"rect\", {\n fill: \"#FFFFFF\",\n x: \"14\",\n y: \"14\",\n width: \"8\",\n height: \"1\"\n }), o.a.createElement(\"rect\", {\n fill: \"#FFFFFF\",\n x: \"14\",\n y: \"17\",\n width: \"8\",\n height: \"1\"\n }), o.a.createElement(\"rect\", {\n fill: \"#FFFFFF\",\n x: \"14\",\n y: \"20\",\n width: \"8\",\n height: \"1\"\n }))));\n };\n\n O.propTypes = {\n isDragging: c.a.bool,\n knobPosition: c.a.object,\n knobColor: c.a.string,\n knobRadius: c.a.number,\n knobSize: c.a.number,\n trackSize: c.a.number,\n children: c.a.element,\n onMouseDown: c.a.func\n };\n var j = O;\n\n function w(e, t) {\n var r = Object.keys(e);\n\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n t && (n = n.filter(function (t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n })), r.push.apply(r, n);\n }\n\n return r;\n }\n\n function P(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = null != arguments[t] ? arguments[t] : {};\n t % 2 ? w(Object(r), !0).forEach(function (t) {\n k(e, t, r[t]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : w(Object(r)).forEach(function (t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));\n });\n }\n\n return e;\n }\n\n function k(e, t, r) {\n return t in e ? Object.defineProperty(e, t, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[t] = r, e;\n }\n\n var S = function S(e) {\n var t = e.labelColor,\n r = e.labelBottom,\n n = e.labelFontSize,\n a = e.valueFontSize,\n i = e.appendToValue,\n l = e.prependToValue,\n c = e.verticalOffset,\n u = e.hideLabelValue,\n s = e.label,\n f = e.value,\n p = {\n labels: {\n position: \"absolute\",\n top: \"0\",\n left: \"0\",\n width: \"100%\",\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n color: \"\".concat(t),\n userSelect: \"none\",\n zIndex: 1\n },\n value: {\n fontSize: \"\".concat(a),\n position: \"relative\"\n },\n bottomMargin: {\n marginBottom: \"calc(\".concat(c, \")\")\n },\n appended: {\n position: \"absolute\",\n right: \"0\",\n top: \"0\",\n transform: \"translate(100%, 0)\"\n },\n prepended: {\n position: \"absolute\",\n left: \"0\",\n top: \"0\",\n transform: \"translate(-100%, 0)\"\n },\n hide: {\n display: \"none\"\n }\n };\n return o.a.createElement(\"div\", {\n style: P(P({}, p.labels), u && p.hide)\n }, r || o.a.createElement(\"div\", {\n style: {\n fontSize: n\n }\n }, s), o.a.createElement(\"div\", {\n style: P(P({}, p.value), !r && p.bottomMargin)\n }, o.a.createElement(\"code\", null, o.a.createElement(\"span\", {\n style: p.prepended\n }, l), f, o.a.createElement(\"span\", {\n style: p.appended\n }, i))), r && o.a.createElement(\"div\", {\n style: {\n fontSize: n\n }\n }, s));\n };\n\n S.propTypes = {\n label: c.a.string.isRequired,\n value: c.a.string.isRequired,\n labelColor: c.a.string,\n labelBottom: c.a.bool,\n labelFontSize: c.a.string,\n valueFontSize: c.a.string,\n appendToValue: c.a.string,\n prependToValue: c.a.string,\n verticalOffset: c.a.string,\n hideLabelValue: c.a.bool\n };\n\n var E = S,\n x = function x(e) {\n var t = e.width,\n r = e.label,\n n = e.direction,\n a = e.strokeDasharray,\n i = e.strokeDashoffset,\n l = e.progressColorFrom,\n c = e.progressColorTo,\n u = e.trackColor,\n s = e.progressSize,\n f = e.trackSize,\n p = e.svgFullPath,\n d = e.radiansOffset,\n b = e.progressLineCap,\n g = {\n svg: {\n position: \"relative\",\n zIndex: 2\n },\n path: {\n transform: \"rotate(\".concat(d, \"rad) \").concat(-1 === n ? \"scale(-1, 1)\" : \"scale(1, 1)\"),\n transformOrigin: \"center center\"\n }\n },\n y = f / 2,\n v = t / 2 - y;\n return o.a.createElement(\"svg\", {\n width: \"\".concat(t, \"px\"),\n height: \"\".concat(t, \"px\"),\n viewBox: \"0 0 \".concat(t, \" \").concat(t),\n overflow: \"visible\",\n style: g.svg\n }, o.a.createElement(\"defs\", null, o.a.createElement(\"linearGradient\", {\n id: r,\n x1: \"100%\",\n x2: \"0%\"\n }, o.a.createElement(\"stop\", {\n offset: \"0%\",\n stopColor: l\n }), o.a.createElement(\"stop\", {\n offset: \"100%\",\n stopColor: c\n }))), o.a.createElement(\"circle\", {\n strokeWidth: f,\n fill: \"none\",\n stroke: u,\n cx: t / 2,\n cy: t / 2,\n r: v\n }), o.a.createElement(\"path\", {\n style: g.path,\n ref: p,\n strokeDasharray: a,\n strokeDashoffset: i,\n strokeWidth: s,\n strokeLinecap: \"round\" !== b ? \"butt\" : \"round\",\n fill: \"none\",\n stroke: \"url(#\".concat(r, \")\"),\n d: \"\\n M \".concat(t / 2, \", \").concat(t / 2, \"\\n m 0, -\").concat(t / 2 - y, \"\\n a \").concat(t / 2 - y, \",\").concat(t / 2 - y, \" 0 0,1 0,\").concat(t - 2 * y, \"\\n a -\").concat(t / 2 - y, \",-\").concat(t / 2 - y, \" 0 0,1 0,-\").concat(t - 2 * y, \"\\n \")\n }));\n };\n\n x.propTypes = {\n width: c.a.number,\n label: c.a.string,\n direction: c.a.number,\n svgFullPath: c.a.object,\n strokeDasharray: c.a.number,\n strokeDashoffset: c.a.number,\n progressColorFrom: c.a.string,\n progressColorTo: c.a.string,\n progressLineCap: c.a.string,\n progressSize: c.a.number,\n trackColor: c.a.string,\n trackSize: c.a.number,\n radiansOffset: c.a.number\n };\n var F = x;\n\n function D(e, t) {\n var r = Object.keys(e);\n\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n t && (n = n.filter(function (t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n })), r.push.apply(r, n);\n }\n\n return r;\n }\n\n function C(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = null != arguments[t] ? arguments[t] : {};\n t % 2 ? D(Object(r), !0).forEach(function (t) {\n T(e, t, r[t]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : D(Object(r)).forEach(function (t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));\n });\n }\n\n return e;\n }\n\n function T(e, t, r) {\n return t in e ? Object.defineProperty(e, t, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[t] = r, e;\n }\n\n function z(e) {\n return function (e) {\n if (Array.isArray(e)) return A(e);\n }(e) || function (e) {\n if (\"undefined\" != typeof Symbol && null != e[Symbol.iterator] || null != e[\"@@iterator\"]) return Array.from(e);\n }(e) || I(e) || function () {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }();\n }\n\n function M(e, t) {\n return function (e) {\n if (Array.isArray(e)) return e;\n }(e) || function (e, t) {\n var r = null == e ? null : \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (null == r) return;\n var n,\n o,\n a = [],\n i = !0,\n l = !1;\n\n try {\n for (r = r.call(e); !(i = (n = r.next()).done) && (a.push(n.value), !t || a.length !== t); i = !0) {\n ;\n }\n } catch (e) {\n l = !0, o = e;\n } finally {\n try {\n i || null == r.return || r.return();\n } finally {\n if (l) throw o;\n }\n }\n\n return a;\n }(e, t) || I(e, t) || function () {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }();\n }\n\n function I(e, t) {\n if (e) {\n if (\"string\" == typeof e) return A(e, t);\n var r = Object.prototype.toString.call(e).slice(8, -1);\n return \"Object\" === r && e.constructor && (r = e.constructor.name), \"Map\" === r || \"Set\" === r ? Array.from(e) : \"Arguments\" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? A(e, t) : void 0;\n }\n }\n\n function A(e, t) {\n (null == t || t > e.length) && (t = e.length);\n\n for (var r = 0, n = new Array(t); r < t; r++) {\n n[r] = e[r];\n }\n\n return n;\n }\n\n var L = {\n top: Math.PI / 2,\n right: 0,\n bottom: -Math.PI / 2,\n left: -Math.PI\n },\n V = function V(e) {\n return e < 0 ? -1 : 1;\n },\n R = function R(e) {\n return e * Math.PI / 180;\n },\n _ = function _(e, t) {\n for (var r = [], n = e; n <= t; n++) {\n r.push(n);\n }\n\n return r;\n },\n B = {\n circularSlider: {\n position: \"relative\",\n display: \"inline-block\",\n opacity: 0,\n transition: \"opacity 1s ease-in\"\n },\n mounted: {\n opacity: 1\n }\n },\n U = function U(e) {\n var t = e.label,\n r = void 0 === t ? \"ANGLE\" : t,\n a = e.width,\n l = void 0 === a ? 280 : a,\n c = e.direction,\n u = void 0 === c ? 1 : c,\n s = e.min,\n f = void 0 === s ? 0 : s,\n b = e.max,\n g = void 0 === b ? 360 : b,\n v = e.knobColor,\n m = void 0 === v ? \"#4e63ea\" : v,\n h = e.knobSize,\n O = void 0 === h ? 36 : h,\n w = e.knobPosition,\n P = void 0 === w ? \"top\" : w,\n k = e.labelColor,\n S = void 0 === k ? \"#272b77\" : k,\n x = e.labelBottom,\n D = void 0 !== x && x,\n T = e.labelFontSize,\n I = void 0 === T ? \"1rem\" : T,\n A = e.valueFontSize,\n U = void 0 === A ? \"3rem\" : A,\n K = e.appendToValue,\n W = void 0 === K ? \"\" : K,\n N = e.prependToValue,\n q = void 0 === N ? \"\" : N,\n Y = e.verticalOffset,\n X = void 0 === Y ? \"1.5rem\" : Y,\n G = e.hideLabelValue,\n $ = void 0 !== G && G,\n H = e.hideKnob,\n J = void 0 !== H && H,\n Q = e.knobDraggable,\n Z = void 0 === Q || Q,\n ee = e.progressColorFrom,\n te = void 0 === ee ? \"#80C3F3\" : ee,\n re = e.progressColorTo,\n ne = void 0 === re ? \"#4990E2\" : re,\n oe = e.progressSize,\n ae = void 0 === oe ? 8 : oe,\n ie = e.trackColor,\n le = void 0 === ie ? \"#DDDEFB\" : ie,\n ce = e.trackSize,\n ue = void 0 === ce ? 8 : ce,\n se = e.data,\n fe = void 0 === se ? [] : se,\n pe = e.dataIndex,\n de = void 0 === pe ? 0 : pe,\n be = e.progressLineCap,\n ge = void 0 === be ? \"round\" : be,\n ye = e.renderLabelValue,\n ve = void 0 === ye ? null : ye,\n me = e.children,\n he = e.onChange,\n Oe = void 0 === he ? function (e) {} : he,\n je = {\n mounted: !1,\n isDragging: !1,\n width: l,\n radius: l / 2,\n knobPosition: P,\n label: 0,\n data: fe,\n radians: 0,\n offset: 0,\n knob: {\n x: 0,\n y: 0\n },\n dashFullArray: 0,\n dashFullOffset: 0\n },\n we = y(),\n Pe = M(Object(n.useReducer)(p, je), 2),\n ke = Pe[0],\n Se = Pe[1],\n Ee = Object(n.useRef)(null),\n xe = Object(n.useRef)(null),\n Fe = !we && \"ontouchstart\" in i.a,\n De = {\n DOWN: Fe ? \"touchstart\" : \"mousedown\",\n UP: Fe ? \"touchend\" : \"mouseup\",\n MOVE: Fe ? \"touchmove\" : \"mousemove\"\n },\n Ce = Object(n.useCallback)(function (e) {\n var t = ke.radius - ue / 2,\n r = e + L[P],\n n = (r > 0 ? r : 2 * Math.PI + r) * (360 / (2 * Math.PI)),\n o = n / 360 * ke.dashFullArray;\n n = -1 === V(u) ? 360 - n : n;\n var a = (ke.data.length - 1) / 360,\n i = Math.round(n * a);\n ke.data[i] !== ke.label && Oe(ke.data[i]), Se({\n type: \"setKnobPosition\",\n payload: {\n dashFullOffset: -1 === V(u) ? o : ke.dashFullArray - o,\n label: ke.data[i],\n knob: {\n x: t * Math.cos(e) + t,\n y: t * Math.sin(e) + t\n }\n }\n });\n }, [ke.dashFullArray, ke.radius, ke.data, ke.label, P, ue, u, Oe]),\n Te = Object(n.useCallback)(function (e) {\n if (ke.isDragging) {\n var t;\n e.preventDefault(), \"touchmove\" === e.type && (t = e.changedTouches[0]);\n\n var r = function r(e) {\n var t,\n r,\n n,\n o,\n a,\n l,\n c,\n u,\n s = e.current.getBoundingClientRect(),\n f = !we && ((null !== (t = null === i.a || void 0 === i.a ? void 0 : i.a.pageXOffset) && void 0 !== t ? t : 0) || (null !== (r = null === (n = document) || void 0 === n || null === (o = n.documentElement) || void 0 === o ? void 0 : o.scrollLeft) && void 0 !== r ? r : 0)),\n p = !we && ((null !== (a = null === i.a || void 0 === i.a ? void 0 : i.a.pageYOffset) && void 0 !== a ? a : 0) || (null !== (l = null === (c = document) || void 0 === c || null === (u = c.documentElement) || void 0 === u ? void 0 : u.scrollTop) && void 0 !== l ? l : 0));\n return {\n top: s.top + p,\n left: s.left + f\n };\n },\n n = (\"touchmove\" === e.type ? t.pageX : e.pageX) - (r(Ee).left + ke.radius),\n o = (\"touchmove\" === e.type ? t.pageY : e.pageY) - (r(Ee).top + ke.radius),\n a = Math.atan2(o, n);\n\n Ce(a);\n }\n }, [ke.isDragging, ke.radius, Ce, we]);\n Object(n.useEffect)(function () {\n Se({\n type: \"init\",\n payload: {\n mounted: !0,\n data: ke.data.length ? z(ke.data) : z(_(f, g)),\n dashFullArray: xe.current.getTotalLength ? xe.current.getTotalLength() : 0\n }\n });\n }, [g, f]), Object(n.useEffect)(function () {\n console.log(l), Se({\n type: \"changeValues\",\n payload: {\n width: l,\n radius: l / 2,\n dashFullArray: xe.current.getTotalLength ? xe.current.getTotalLength() : 0\n }\n });\n }, [l]), Object(n.useEffect)(function () {\n var e = ke.data.length,\n t = de > e - 1 ? e - 1 : de;\n\n if (e) {\n var r = 360 / e,\n n = R(r) / 2;\n\n if (Se({\n type: \"setInitialKnobPosition\",\n payload: {\n radians: Math.PI / 2 - L[ke.knobPosition],\n offset: n\n }\n }), t) {\n var o = V(u) * t * r,\n a = R(o) - L[ke.knobPosition];\n return Ce(a + n * V(u));\n }\n\n Ce(-L[ke.knobPosition] * V(u) + n * V(u));\n }\n }, [ke.dashFullArray, ke.knobPosition, ke.data.length, de, u]), d(De.MOVE, Te), d(De.UP, function () {\n Se({\n type: \"onMouseUp\",\n payload: {\n isDragging: !1\n }\n });\n });\n var ze = r.replace(/[\\W_]/g, \"_\");\n return o.a.createElement(\"div\", {\n style: C(C({}, B.circularSlider), ke.mounted && B.mounted),\n ref: Ee\n }, o.a.createElement(F, {\n width: l,\n label: ze,\n direction: u,\n strokeDasharray: ke.dashFullArray,\n strokeDashoffset: ke.dashFullOffset,\n svgFullPath: xe,\n progressSize: ae,\n progressColorFrom: te,\n progressColorTo: ne,\n progressLineCap: ge,\n trackColor: le,\n trackSize: ue,\n radiansOffset: ke.radians\n }), Z && o.a.createElement(j, {\n isDragging: ke.isDragging,\n knobPosition: {\n x: ke.knob.x,\n y: ke.knob.y\n },\n knobSize: O,\n knobColor: m,\n trackSize: ue,\n hideKnob: J,\n onMouseDown: function onMouseDown() {\n Se({\n type: \"onMouseDown\",\n payload: {\n isDragging: !0\n }\n });\n }\n }, me), ve || o.a.createElement(E, {\n label: r,\n labelColor: S,\n labelBottom: D,\n labelFontSize: I,\n verticalOffset: X,\n valueFontSize: U,\n appendToValue: W,\n prependToValue: q,\n hideLabelValue: $,\n value: \"\".concat(ke.label)\n }));\n };\n\n U.propTypes = {\n label: c.a.string,\n width: c.a.number,\n direction: c.a.number,\n min: c.a.number,\n max: c.a.number,\n knobColor: c.a.string,\n knobPosition: c.a.string,\n hideKnob: c.a.bool,\n knobDraggable: c.a.bool,\n labelColor: c.a.string,\n labelBottom: c.a.bool,\n labelFontSize: c.a.string,\n valueFontSize: c.a.string,\n appendToValue: c.a.string,\n renderLabelValue: c.a.element,\n prependToValue: c.a.string,\n verticalOffset: c.a.string,\n hideLabelValue: c.a.bool,\n progressLineCap: c.a.string,\n progressColorFrom: c.a.string,\n progressColorTo: c.a.string,\n progressSize: c.a.number,\n trackColor: c.a.string,\n trackSize: c.a.number,\n data: c.a.array,\n dataIndex: c.a.number,\n onChange: c.a.func\n };\n t.default = U;\n}]);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CustomPicker = exports.TwitterPicker = exports.SwatchesPicker = exports.SliderPicker = exports.SketchPicker = exports.PhotoshopPicker = exports.MaterialPicker = exports.HuePicker = exports.GithubPicker = exports.CompactPicker = exports.ChromePicker = exports.default = exports.CirclePicker = exports.BlockPicker = exports.AlphaPicker = undefined;\n\nvar _Alpha = require('./components/alpha/Alpha');\n\nObject.defineProperty(exports, 'AlphaPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Alpha).default;\n }\n});\n\nvar _Block = require('./components/block/Block');\n\nObject.defineProperty(exports, 'BlockPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Block).default;\n }\n});\n\nvar _Circle = require('./components/circle/Circle');\n\nObject.defineProperty(exports, 'CirclePicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Circle).default;\n }\n});\n\nvar _Chrome = require('./components/chrome/Chrome');\n\nObject.defineProperty(exports, 'ChromePicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Chrome).default;\n }\n});\n\nvar _Compact = require('./components/compact/Compact');\n\nObject.defineProperty(exports, 'CompactPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Compact).default;\n }\n});\n\nvar _Github = require('./components/github/Github');\n\nObject.defineProperty(exports, 'GithubPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Github).default;\n }\n});\n\nvar _Hue = require('./components/hue/Hue');\n\nObject.defineProperty(exports, 'HuePicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Hue).default;\n }\n});\n\nvar _Material = require('./components/material/Material');\n\nObject.defineProperty(exports, 'MaterialPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Material).default;\n }\n});\n\nvar _Photoshop = require('./components/photoshop/Photoshop');\n\nObject.defineProperty(exports, 'PhotoshopPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Photoshop).default;\n }\n});\n\nvar _Sketch = require('./components/sketch/Sketch');\n\nObject.defineProperty(exports, 'SketchPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Sketch).default;\n }\n});\n\nvar _Slider = require('./components/slider/Slider');\n\nObject.defineProperty(exports, 'SliderPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Slider).default;\n }\n});\n\nvar _Swatches = require('./components/swatches/Swatches');\n\nObject.defineProperty(exports, 'SwatchesPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Swatches).default;\n }\n});\n\nvar _Twitter = require('./components/twitter/Twitter');\n\nObject.defineProperty(exports, 'TwitterPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Twitter).default;\n }\n});\n\nvar _ColorWrap = require('./components/common/ColorWrap');\n\nObject.defineProperty(exports, 'CustomPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ColorWrap).default;\n }\n});\n\nvar _Chrome2 = _interopRequireDefault(_Chrome);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = _Chrome2.default;","'use strict';\n/**\n * Simple module to localize the React interface using the same syntax\n * used in the ReactNativeLocalization module\n * (https://github.com/stefalda/ReactNativeLocalization)\n *\n * Originally developed by Stefano Falda (stefano.falda@gmail.com)\n *\n * It uses a call to the Navigator/Browser object to get the current interface language,\n * then display the correct language strings or the default language (the first\n * one if a match is not found).\n *\n * This library has been refactored to use the newly created localized-strings package so to\n * unify the code and make it easier to mantain\n *\n * How to use:\n * Check the instructions at:\n * https://github.com/stefalda/react-localization\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _localizedStrings = require('localized-strings');\n\nvar _localizedStrings2 = _interopRequireDefault(_localizedStrings);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar placeholderRegex = /(\\{[\\d|\\w]+\\})/;\n/**\n * Format the passed string replacing the numbered or tokenized placeholders\n * eg. 1: I'd like some {0} and {1}, or just {0}\n * eg. 2: I'd like some {bread} and {butter}, or just {bread}\n * Use example:\n * eg. 1: strings.formatString(strings.question, strings.bread, strings.butter)\n * eg. 2: strings.formatString(strings.question, { bread: strings.bread, butter: strings.butter }\n *\n * THIS METHOD OVERRIDE the one of the parent class by adding support for JSX code\n*/\n\n_localizedStrings2.default.prototype.formatString = function (str) {\n for (var _len = arguments.length, valuesForPlaceholders = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n valuesForPlaceholders[_key - 1] = arguments[_key];\n }\n\n var hasObject = false;\n var res = (str || '').split(placeholderRegex).filter(function (textPart) {\n return !!textPart;\n }).map(function (textPart, index) {\n if (textPart.match(placeholderRegex)) {\n var matchedKey = textPart.slice(1, -1);\n var valueForPlaceholder = valuesForPlaceholders[matchedKey]; // If no value found, check if working with an object instead\n\n if (valueForPlaceholder == undefined) {\n var valueFromObjectPlaceholder = valuesForPlaceholders[0][matchedKey];\n\n if (valueFromObjectPlaceholder !== undefined) {\n valueForPlaceholder = valueFromObjectPlaceholder;\n } else {\n // If value still isn't found, then it must have been undefined/null\n return valueForPlaceholder;\n }\n }\n\n if (_react2.default.isValidElement(valueForPlaceholder)) {\n hasObject = true;\n return _react2.default.Children.toArray(valueForPlaceholder).map(function (component) {\n return _extends({}, component, {\n key: index.toString()\n });\n });\n }\n\n return valueForPlaceholder;\n }\n\n return textPart;\n }); // If the results contains a object return an array otherwise return a string\n\n if (hasObject) return res;\n return res.join('');\n};\n\nexports.default = _localizedStrings2.default;","(function (factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module['exports'] = factory() : typeof define === 'function' && define['amd'] ? define(factory()) : window['stylisRuleSheet'] = factory();\n})(function () {\n 'use strict';\n\n return function (insertRule) {\n var delimiter = '/*|*/';\n var needle = delimiter + '}';\n\n function toSheet(block) {\n if (block) try {\n insertRule(block + '}');\n } catch (e) {}\n }\n\n return function ruleSheet(context, content, selectors, parents, line, column, length, ns, depth, at) {\n switch (context) {\n // property\n case 1:\n // @import\n if (depth === 0 && content.charCodeAt(0) === 64) return insertRule(content + ';'), '';\n break;\n // selector\n\n case 2:\n if (ns === 0) return content + delimiter;\n break;\n // at-rule\n\n case 3:\n switch (ns) {\n // @font-face, @page\n case 102:\n case 112:\n return insertRule(selectors[0] + content), '';\n\n default:\n return content + (at === 0 ? delimiter : '');\n }\n\n case -2:\n content.split(needle).forEach(toSheet);\n }\n };\n };\n});","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\nexport default unitlessKeys;","/** @license\n *\n * jsPDF - PDF Document creation from JavaScript\n * Version 2.3.1 Built on 2021-03-08T15:44:11.674Z\n * CommitID 00000000\n *\n * Copyright (c) 2010-2020 James Hall , https://github.com/MrRio/jsPDF\n * 2015-2020 yWorks GmbH, http://www.yworks.com\n * 2015-2020 Lukas Holländer , https://github.com/HackbrettXXX\n * 2016-2018 Aras Abbasi \n * 2010 Aaron Spike, https://github.com/acspike\n * 2012 Willow Systems Corporation, willow-systems.com\n * 2012 Pablo Hess, https://github.com/pablohess\n * 2012 Florian Jenett, https://github.com/fjenett\n * 2013 Warren Weckesser, https://github.com/warrenweckesser\n * 2013 Youssef Beddad, https://github.com/lifof\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2013 Stefan Slonevskiy, https://github.com/stefslon\n * 2013 Jeremy Morel, https://github.com/jmorel\n * 2013 Christoph Hartmann, https://github.com/chris-rock\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Makes, https://github.com/dollaruw\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 Steven Spungin, https://github.com/Flamenco\n * 2014 Kenneth Glassey, https://github.com/Gavvers\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n *\n * Contributor(s):\n * siefkenj, ahwolf, rickygu, Midnith, saintclair, eaparango,\n * kim3er, mfo, alnorth, Flamenco\n */\nimport { zlibSync as t, unzlibSync as e } from \"fflate\";\n\nvar r = function () {\n return \"undefined\" != typeof window ? window : \"undefined\" != typeof global ? global : \"undefined\" != typeof self ? self : this;\n}();\n\nfunction n() {\n r.console && \"function\" == typeof r.console.log && r.console.log.apply(r.console, arguments);\n}\n\nvar i = {\n log: n,\n warn: function warn(t) {\n r.console && (\"function\" == typeof r.console.warn ? r.console.warn.apply(r.console, arguments) : n.call(null, arguments));\n },\n error: function error(t) {\n r.console && (\"function\" == typeof r.console.error ? r.console.error.apply(r.console, arguments) : n(t));\n }\n};\n/**\n * @license\n * FileSaver.js\n * A saveAs() FileSaver implementation.\n *\n * By Eli Grey, http://eligrey.com\n *\n * License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)\n * source : http://purl.eligrey.com/github/FileSaver.js\n */\n\nfunction a(t, e, r) {\n var n = new XMLHttpRequest();\n n.open(\"GET\", t), n.responseType = \"blob\", n.onload = function () {\n l(n.response, e, r);\n }, n.onerror = function () {\n i.error(\"could not download file\");\n }, n.send();\n}\n\nfunction o(t) {\n var e = new XMLHttpRequest();\n e.open(\"HEAD\", t, !1);\n\n try {\n e.send();\n } catch (t) {}\n\n return e.status >= 200 && e.status <= 299;\n}\n\nfunction s(t) {\n try {\n t.dispatchEvent(new MouseEvent(\"click\"));\n } catch (r) {\n var e = document.createEvent(\"MouseEvents\");\n e.initMouseEvent(\"click\", !0, !0, window, 0, 0, 0, 80, 20, !1, !1, !1, !1, 0, null), t.dispatchEvent(e);\n }\n}\n\nvar u,\n c,\n l = r.saveAs || (\"object\" != typeof window || window !== r ? function () {} : \"undefined\" != typeof HTMLAnchorElement && \"download\" in HTMLAnchorElement.prototype ? function (t, e, n) {\n var i = r.URL || r.webkitURL,\n u = document.createElement(\"a\");\n e = e || t.name || \"download\", u.download = e, u.rel = \"noopener\", \"string\" == typeof t ? (u.href = t, u.origin !== location.origin ? o(u.href) ? a(t, e, n) : s(u, u.target = \"_blank\") : s(u)) : (u.href = i.createObjectURL(t), setTimeout(function () {\n i.revokeObjectURL(u.href);\n }, 4e4), setTimeout(function () {\n s(u);\n }, 0));\n} : \"msSaveOrOpenBlob\" in navigator ? function (t, e, r) {\n if (e = e || t.name || \"download\", \"string\" == typeof t) {\n if (o(t)) a(t, e, r);else {\n var n = document.createElement(\"a\");\n n.href = t, n.target = \"_blank\", setTimeout(function () {\n s(n);\n });\n }\n } else navigator.msSaveOrOpenBlob(function (t, e) {\n return void 0 === e ? e = {\n autoBom: !1\n } : \"object\" != typeof e && (i.warn(\"Deprecated: Expected third argument to be a object\"), e = {\n autoBom: !e\n }), e.autoBom && /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(t.type) ? new Blob([String.fromCharCode(65279), t], {\n type: t.type\n }) : t;\n }(t, r), e);\n} : function (t, e, n, i) {\n if ((i = i || open(\"\", \"_blank\")) && (i.document.title = i.document.body.innerText = \"downloading...\"), \"string\" == typeof t) return a(t, e, n);\n var o = \"application/octet-stream\" === t.type,\n s = /constructor/i.test(r.HTMLElement) || r.safari,\n u = /CriOS\\/[\\d]+/.test(navigator.userAgent);\n\n if ((u || o && s) && \"object\" == typeof FileReader) {\n var c = new FileReader();\n c.onloadend = function () {\n var t = c.result;\n t = u ? t : t.replace(/^data:[^;]*;/, \"data:attachment/file;\"), i ? i.location.href = t : location = t, i = null;\n }, c.readAsDataURL(t);\n } else {\n var l = r.URL || r.webkitURL,\n h = l.createObjectURL(t);\n i ? i.location = h : location.href = h, i = null, setTimeout(function () {\n l.revokeObjectURL(h);\n }, 4e4);\n }\n});\n/**\n * A class to parse color values\n * @author Stoyan Stefanov \n * {@link http://www.phpied.com/rgb-color-parser-in-javascript/}\n * @license Use it if you like it\n */\n\nfunction h(t) {\n var e;\n t = t || \"\", this.ok = !1, \"#\" == t.charAt(0) && (t = t.substr(1, 6));\n t = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"00ffff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000000\",\n blanchedalmond: \"ffebcd\",\n blue: \"0000ff\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"00ffff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dodgerblue: \"1e90ff\",\n feldspar: \"d19275\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"ff00ff\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgrey: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslateblue: \"8470ff\",\n lightslategray: \"778899\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"00ff00\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"ff00ff\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370d8\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"d87093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n red: \"ff0000\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n violetred: \"d02090\",\n wheat: \"f5deb3\",\n white: \"ffffff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ffff00\",\n yellowgreen: \"9acd32\"\n }[t = (t = t.replace(/ /g, \"\")).toLowerCase()] || t;\n\n for (var r = [{\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n example: [\"rgb(123, 234, 45)\", \"rgb(255,234,245)\"],\n process: function process(t) {\n return [parseInt(t[1]), parseInt(t[2]), parseInt(t[3])];\n }\n }, {\n re: /^(\\w{2})(\\w{2})(\\w{2})$/,\n example: [\"#00ff00\", \"336699\"],\n process: function process(t) {\n return [parseInt(t[1], 16), parseInt(t[2], 16), parseInt(t[3], 16)];\n }\n }, {\n re: /^(\\w{1})(\\w{1})(\\w{1})$/,\n example: [\"#fb0\", \"f0f\"],\n process: function process(t) {\n return [parseInt(t[1] + t[1], 16), parseInt(t[2] + t[2], 16), parseInt(t[3] + t[3], 16)];\n }\n }], n = 0; n < r.length; n++) {\n var i = r[n].re,\n a = r[n].process,\n o = i.exec(t);\n o && (e = a(o), this.r = e[0], this.g = e[1], this.b = e[2], this.ok = !0);\n }\n\n this.r = this.r < 0 || isNaN(this.r) ? 0 : this.r > 255 ? 255 : this.r, this.g = this.g < 0 || isNaN(this.g) ? 0 : this.g > 255 ? 255 : this.g, this.b = this.b < 0 || isNaN(this.b) ? 0 : this.b > 255 ? 255 : this.b, this.toRGB = function () {\n return \"rgb(\" + this.r + \", \" + this.g + \", \" + this.b + \")\";\n }, this.toHex = function () {\n var t = this.r.toString(16),\n e = this.g.toString(16),\n r = this.b.toString(16);\n return 1 == t.length && (t = \"0\" + t), 1 == e.length && (e = \"0\" + e), 1 == r.length && (r = \"0\" + r), \"#\" + t + e + r;\n };\n}\n/**\n * @license\n * Joseph Myers does not specify a particular license for his work.\n *\n * Author: Joseph Myers\n * Accessed from: http://www.myersdaily.org/joseph/javascript/md5.js\n *\n * Modified by: Owen Leong\n */\n\n\nfunction f(t, e) {\n var r = t[0],\n n = t[1],\n i = t[2],\n a = t[3];\n r = p(r, n, i, a, e[0], 7, -680876936), a = p(a, r, n, i, e[1], 12, -389564586), i = p(i, a, r, n, e[2], 17, 606105819), n = p(n, i, a, r, e[3], 22, -1044525330), r = p(r, n, i, a, e[4], 7, -176418897), a = p(a, r, n, i, e[5], 12, 1200080426), i = p(i, a, r, n, e[6], 17, -1473231341), n = p(n, i, a, r, e[7], 22, -45705983), r = p(r, n, i, a, e[8], 7, 1770035416), a = p(a, r, n, i, e[9], 12, -1958414417), i = p(i, a, r, n, e[10], 17, -42063), n = p(n, i, a, r, e[11], 22, -1990404162), r = p(r, n, i, a, e[12], 7, 1804603682), a = p(a, r, n, i, e[13], 12, -40341101), i = p(i, a, r, n, e[14], 17, -1502002290), r = g(r, n = p(n, i, a, r, e[15], 22, 1236535329), i, a, e[1], 5, -165796510), a = g(a, r, n, i, e[6], 9, -1069501632), i = g(i, a, r, n, e[11], 14, 643717713), n = g(n, i, a, r, e[0], 20, -373897302), r = g(r, n, i, a, e[5], 5, -701558691), a = g(a, r, n, i, e[10], 9, 38016083), i = g(i, a, r, n, e[15], 14, -660478335), n = g(n, i, a, r, e[4], 20, -405537848), r = g(r, n, i, a, e[9], 5, 568446438), a = g(a, r, n, i, e[14], 9, -1019803690), i = g(i, a, r, n, e[3], 14, -187363961), n = g(n, i, a, r, e[8], 20, 1163531501), r = g(r, n, i, a, e[13], 5, -1444681467), a = g(a, r, n, i, e[2], 9, -51403784), i = g(i, a, r, n, e[7], 14, 1735328473), r = m(r, n = g(n, i, a, r, e[12], 20, -1926607734), i, a, e[5], 4, -378558), a = m(a, r, n, i, e[8], 11, -2022574463), i = m(i, a, r, n, e[11], 16, 1839030562), n = m(n, i, a, r, e[14], 23, -35309556), r = m(r, n, i, a, e[1], 4, -1530992060), a = m(a, r, n, i, e[4], 11, 1272893353), i = m(i, a, r, n, e[7], 16, -155497632), n = m(n, i, a, r, e[10], 23, -1094730640), r = m(r, n, i, a, e[13], 4, 681279174), a = m(a, r, n, i, e[0], 11, -358537222), i = m(i, a, r, n, e[3], 16, -722521979), n = m(n, i, a, r, e[6], 23, 76029189), r = m(r, n, i, a, e[9], 4, -640364487), a = m(a, r, n, i, e[12], 11, -421815835), i = m(i, a, r, n, e[15], 16, 530742520), r = v(r, n = m(n, i, a, r, e[2], 23, -995338651), i, a, e[0], 6, -198630844), a = v(a, r, n, i, e[7], 10, 1126891415), i = v(i, a, r, n, e[14], 15, -1416354905), n = v(n, i, a, r, e[5], 21, -57434055), r = v(r, n, i, a, e[12], 6, 1700485571), a = v(a, r, n, i, e[3], 10, -1894986606), i = v(i, a, r, n, e[10], 15, -1051523), n = v(n, i, a, r, e[1], 21, -2054922799), r = v(r, n, i, a, e[8], 6, 1873313359), a = v(a, r, n, i, e[15], 10, -30611744), i = v(i, a, r, n, e[6], 15, -1560198380), n = v(n, i, a, r, e[13], 21, 1309151649), r = v(r, n, i, a, e[4], 6, -145523070), a = v(a, r, n, i, e[11], 10, -1120210379), i = v(i, a, r, n, e[2], 15, 718787259), n = v(n, i, a, r, e[9], 21, -343485551), t[0] = x(r, t[0]), t[1] = x(n, t[1]), t[2] = x(i, t[2]), t[3] = x(a, t[3]);\n}\n\nfunction d(t, e, r, n, i, a) {\n return e = x(x(e, t), x(n, a)), x(e << i | e >>> 32 - i, r);\n}\n\nfunction p(t, e, r, n, i, a, o) {\n return d(e & r | ~e & n, t, e, i, a, o);\n}\n\nfunction g(t, e, r, n, i, a, o) {\n return d(e & n | r & ~n, t, e, i, a, o);\n}\n\nfunction m(t, e, r, n, i, a, o) {\n return d(e ^ r ^ n, t, e, i, a, o);\n}\n\nfunction v(t, e, r, n, i, a, o) {\n return d(r ^ (e | ~n), t, e, i, a, o);\n}\n\nfunction b(t) {\n var e,\n r = t.length,\n n = [1732584193, -271733879, -1732584194, 271733878];\n\n for (e = 64; e <= t.length; e += 64) {\n f(n, y(t.substring(e - 64, e)));\n }\n\n t = t.substring(e - 64);\n var i = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (e = 0; e < t.length; e++) {\n i[e >> 2] |= t.charCodeAt(e) << (e % 4 << 3);\n }\n\n if (i[e >> 2] |= 128 << (e % 4 << 3), e > 55) for (f(n, i), e = 0; e < 16; e++) {\n i[e] = 0;\n }\n return i[14] = 8 * r, f(n, i), n;\n}\n\nfunction y(t) {\n var e,\n r = [];\n\n for (e = 0; e < 64; e += 4) {\n r[e >> 2] = t.charCodeAt(e) + (t.charCodeAt(e + 1) << 8) + (t.charCodeAt(e + 2) << 16) + (t.charCodeAt(e + 3) << 24);\n }\n\n return r;\n}\n\nu = r.atob.bind(r), c = r.btoa.bind(r);\nvar w = \"0123456789abcdef\".split(\"\");\n\nfunction N(t) {\n for (var e = \"\", r = 0; r < 4; r++) {\n e += w[t >> 8 * r + 4 & 15] + w[t >> 8 * r & 15];\n }\n\n return e;\n}\n\nfunction L(t) {\n return String.fromCharCode((255 & t) >> 0, (65280 & t) >> 8, (16711680 & t) >> 16, (4278190080 & t) >> 24);\n}\n\nfunction A(t) {\n return b(t).map(L).join(\"\");\n}\n\nfunction x(t, e) {\n return t + e & 4294967295;\n}\n\nif (\"5d41402abc4b2a76b9719d911017c592\" != function (t) {\n for (var e = 0; e < t.length; e++) {\n t[e] = N(t[e]);\n }\n\n return t.join(\"\");\n}(b(\"hello\"))) {\n function _x(t, e) {\n var r = (65535 & t) + (65535 & e);\n return (t >> 16) + (e >> 16) + (r >> 16) << 16 | 65535 & r;\n }\n}\n/**\n * @license\n * FPDF is released under a permissive license: there is no usage restriction.\n * You may embed it freely in your application (commercial or not), with or\n * without modifications.\n *\n * Reference: http://www.fpdf.org/en/script/script37.php\n */\n\n\nfunction S(t, e) {\n var r, n, i, a;\n\n if (t !== r) {\n for (var o = (i = t, a = 1 + (256 / t.length >> 0), new Array(a + 1).join(i)), s = [], u = 0; u < 256; u++) {\n s[u] = u;\n }\n\n var c = 0;\n\n for (u = 0; u < 256; u++) {\n var l = s[u];\n c = (c + l + o.charCodeAt(u)) % 256, s[u] = s[c], s[c] = l;\n }\n\n r = t, n = s;\n } else s = n;\n\n var h = e.length,\n f = 0,\n d = 0,\n p = \"\";\n\n for (u = 0; u < h; u++) {\n d = (d + (l = s[f = (f + 1) % 256])) % 256, s[f] = s[d], s[d] = l, o = s[(s[f] + s[d]) % 256], p += String.fromCharCode(e.charCodeAt(u) ^ o);\n }\n\n return p;\n}\n/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n * Author: Owen Leong (@owenl131)\n * Date: 15 Oct 2020\n * References:\n * https://www.cs.cmu.edu/~dst/Adobe/Gallery/anon21jul01-pdf-encryption.txt\n * https://github.com/foliojs/pdfkit/blob/master/lib/security.js\n * http://www.fpdf.org/en/script/script37.php\n */\n\n\nvar _ = {\n print: 4,\n modify: 8,\n copy: 16,\n \"annot-forms\": 32\n};\n\nfunction P(t, e, r, n) {\n this.v = 1, this.r = 2;\n var i = 192;\n t.forEach(function (t) {\n if (void 0 !== _.perm) throw new Error(\"Invalid permission: \" + t);\n i += _[t];\n }), this.padding = \"(¿N^NuŠAd\\0NVÿú\u0001\\b..\\0¶Ðh>€/\\f©þdSiz\";\n var a = (e + this.padding).substr(0, 32),\n o = (r + this.padding).substr(0, 32);\n this.O = this.processOwnerPassword(a, o), this.P = -(1 + (255 ^ i)), this.encryptionKey = A(a + this.O + this.lsbFirstWord(this.P) + this.hexToBytes(n)).substr(0, 5), this.U = S(this.encryptionKey, this.padding);\n}\n\nfunction k(t) {\n if (\"object\" != typeof t) throw new Error(\"Invalid Context passed to initialize PubSub (jsPDF-module)\");\n var e = {};\n this.subscribe = function (t, r, n) {\n if (n = n || !1, \"string\" != typeof t || \"function\" != typeof r || \"boolean\" != typeof n) throw new Error(\"Invalid arguments passed to PubSub.subscribe (jsPDF-module)\");\n e.hasOwnProperty(t) || (e[t] = {});\n var i = Math.random().toString(35);\n return e[t][i] = [r, !!n], i;\n }, this.unsubscribe = function (t) {\n for (var r in e) {\n if (e[r][t]) return delete e[r][t], 0 === Object.keys(e[r]).length && delete e[r], !0;\n }\n\n return !1;\n }, this.publish = function (n) {\n if (e.hasOwnProperty(n)) {\n var a = Array.prototype.slice.call(arguments, 1),\n o = [];\n\n for (var s in e[n]) {\n var u = e[n][s];\n\n try {\n u[0].apply(t, a);\n } catch (t) {\n r.console && i.error(\"jsPDF PubSub Error\", t.message, t);\n }\n\n u[1] && o.push(s);\n }\n\n o.length && o.forEach(this.unsubscribe);\n }\n }, this.getTopics = function () {\n return e;\n };\n}\n\nfunction I(t) {\n if (!(this instanceof I)) return new I(t);\n var e = \"opacity,stroke-opacity\".split(\",\");\n\n for (var r in t) {\n t.hasOwnProperty(r) && e.indexOf(r) >= 0 && (this[r] = t[r]);\n }\n\n this.id = \"\", this.objectNumber = -1;\n}\n\nfunction F(t, e) {\n this.gState = t, this.matrix = e, this.id = \"\", this.objectNumber = -1;\n}\n\nfunction C(t, e, r, n, i) {\n if (!(this instanceof C)) return new C(t, e, r, n, i);\n this.type = \"axial\" === t ? 2 : 3, this.coords = e, this.colors = r, F.call(this, n, i);\n}\n\nfunction j(t, e, r, n, i) {\n if (!(this instanceof j)) return new j(t, e, r, n, i);\n this.boundingBox = t, this.xStep = e, this.yStep = r, this.stream = \"\", this.cloneIndex = 0, F.call(this, n, i);\n}\n\nfunction O(t) {\n var e,\n n = \"string\" == typeof arguments[0] ? arguments[0] : \"p\",\n a = arguments[1],\n o = arguments[2],\n s = arguments[3],\n u = [],\n f = 1,\n d = 16,\n p = \"S\",\n g = null;\n \"object\" == typeof (t = t || {}) && (n = t.orientation, a = t.unit || a, o = t.format || o, s = t.compress || t.compressPdf || s, null !== (g = t.encryption || null) && (g.userPassword = g.userPassword || \"\", g.ownerPassword = g.ownerPassword || \"\", g.userPermissions = g.userPermissions || []), f = \"number\" == typeof t.userUnit ? Math.abs(t.userUnit) : 1, void 0 !== t.precision && (e = t.precision), void 0 !== t.floatPrecision && (d = t.floatPrecision), p = t.defaultPathOperation || \"S\"), u = t.filters || (!0 === s ? [\"FlateEncode\"] : u), a = a || \"mm\", n = (\"\" + (n || \"P\")).toLowerCase();\n var m = t.putOnlyUsedFonts || !1,\n v = {},\n b = {\n internal: {},\n __private__: {}\n };\n b.__private__.PubSub = k;\n\n var y = \"1.3\",\n w = b.__private__.getPdfVersion = function () {\n return y;\n };\n\n b.__private__.setPdfVersion = function (t) {\n y = t;\n };\n\n var N = {\n a0: [2383.94, 3370.39],\n a1: [1683.78, 2383.94],\n a2: [1190.55, 1683.78],\n a3: [841.89, 1190.55],\n a4: [595.28, 841.89],\n a5: [419.53, 595.28],\n a6: [297.64, 419.53],\n a7: [209.76, 297.64],\n a8: [147.4, 209.76],\n a9: [104.88, 147.4],\n a10: [73.7, 104.88],\n b0: [2834.65, 4008.19],\n b1: [2004.09, 2834.65],\n b2: [1417.32, 2004.09],\n b3: [1000.63, 1417.32],\n b4: [708.66, 1000.63],\n b5: [498.9, 708.66],\n b6: [354.33, 498.9],\n b7: [249.45, 354.33],\n b8: [175.75, 249.45],\n b9: [124.72, 175.75],\n b10: [87.87, 124.72],\n c0: [2599.37, 3676.54],\n c1: [1836.85, 2599.37],\n c2: [1298.27, 1836.85],\n c3: [918.43, 1298.27],\n c4: [649.13, 918.43],\n c5: [459.21, 649.13],\n c6: [323.15, 459.21],\n c7: [229.61, 323.15],\n c8: [161.57, 229.61],\n c9: [113.39, 161.57],\n c10: [79.37, 113.39],\n dl: [311.81, 623.62],\n letter: [612, 792],\n \"government-letter\": [576, 756],\n legal: [612, 1008],\n \"junior-legal\": [576, 360],\n ledger: [1224, 792],\n tabloid: [792, 1224],\n \"credit-card\": [153, 243]\n };\n\n b.__private__.getPageFormats = function () {\n return N;\n };\n\n var L = b.__private__.getPageFormat = function (t) {\n return N[t];\n };\n\n o = o || \"a4\";\n var A = {\n COMPAT: \"compat\",\n ADVANCED: \"advanced\"\n },\n x = A.COMPAT;\n\n function S() {\n this.saveGraphicsState(), ct(new Ht(xt, 0, 0, -xt, 0, Er() * xt).toString() + \" cm\"), this.setFontSize(this.getFontSize() / xt), p = \"n\", x = A.ADVANCED;\n }\n\n function _() {\n this.restoreGraphicsState(), p = \"S\", x = A.COMPAT;\n }\n\n var F = function F(t, e) {\n if (\"bold\" == t && \"normal\" == e || \"bold\" == t && 400 == e || \"normal\" == t && \"italic\" == e || \"bold\" == t && \"italic\" == e) throw new Error(\"Invalid Combination of fontweight and fontstyle\");\n return e && t !== e && (t = 400 == e ? \"italic\" == t ? \"italic\" : \"normal\" : 700 == e && \"italic\" !== t ? \"bold\" : t + \"\" + e), t;\n };\n\n b.advancedAPI = function (t) {\n var e = x === A.COMPAT;\n return e && S.call(this), \"function\" != typeof t || (t(this), e && _.call(this)), this;\n }, b.compatAPI = function (t) {\n var e = x === A.ADVANCED;\n return e && _.call(this), \"function\" != typeof t || (t(this), e && S.call(this)), this;\n }, b.isAdvancedAPI = function () {\n return x === A.ADVANCED;\n };\n\n var B,\n M = function M(t) {\n if (x !== A.ADVANCED) throw new Error(t + \" is only available in 'advanced' API mode. You need to call advancedAPI() first.\");\n },\n E = b.roundToPrecision = b.__private__.roundToPrecision = function (t, r) {\n var n = e || r;\n if (isNaN(t) || isNaN(n)) throw new Error(\"Invalid argument passed to jsPDF.roundToPrecision\");\n return t.toFixed(n).replace(/0+$/, \"\");\n };\n\n B = b.hpf = b.__private__.hpf = \"number\" == typeof d ? function (t) {\n if (isNaN(t)) throw new Error(\"Invalid argument passed to jsPDF.hpf\");\n return E(t, d);\n } : \"smart\" === d ? function (t) {\n if (isNaN(t)) throw new Error(\"Invalid argument passed to jsPDF.hpf\");\n return E(t, t > -1 && t < 1 ? 16 : 5);\n } : function (t) {\n if (isNaN(t)) throw new Error(\"Invalid argument passed to jsPDF.hpf\");\n return E(t, 16);\n };\n\n var q = b.f2 = b.__private__.f2 = function (t) {\n if (isNaN(t)) throw new Error(\"Invalid argument passed to jsPDF.f2\");\n return E(t, 2);\n },\n R = b.__private__.f3 = function (t) {\n if (isNaN(t)) throw new Error(\"Invalid argument passed to jsPDF.f3\");\n return E(t, 3);\n },\n T = b.scale = b.__private__.scale = function (t) {\n if (isNaN(t)) throw new Error(\"Invalid argument passed to jsPDF.scale\");\n return x === A.COMPAT ? t * xt : x === A.ADVANCED ? t : void 0;\n },\n D = function D(t) {\n return x === A.COMPAT ? Er() - t : x === A.ADVANCED ? t : void 0;\n },\n U = function U(t) {\n return T(D(t));\n };\n\n b.__private__.setPrecision = b.setPrecision = function (t) {\n \"number\" == typeof parseInt(t, 10) && (e = parseInt(t, 10));\n };\n\n var z,\n H = \"00000000000000000000000000000000\",\n V = b.__private__.getFileId = function () {\n return H;\n },\n W = b.__private__.setFileId = function (t) {\n return H = void 0 !== t && /^[a-fA-F0-9]{32}$/.test(t) ? t.toUpperCase() : H.split(\"\").map(function () {\n return \"ABCDEF0123456789\".charAt(Math.floor(16 * Math.random()));\n }).join(\"\"), null !== g && (We = new P(g.userPermissions, g.userPassword, g.ownerPassword, H)), H;\n };\n\n b.setFileId = function (t) {\n return W(t), this;\n }, b.getFileId = function () {\n return V();\n };\n\n var G = b.__private__.convertDateToPDFDate = function (t) {\n var e = t.getTimezoneOffset(),\n r = e < 0 ? \"+\" : \"-\",\n n = Math.floor(Math.abs(e / 60)),\n i = Math.abs(e % 60),\n a = [r, Z(n), \"'\", Z(i), \"'\"].join(\"\");\n return [\"D:\", t.getFullYear(), Z(t.getMonth() + 1), Z(t.getDate()), Z(t.getHours()), Z(t.getMinutes()), Z(t.getSeconds()), a].join(\"\");\n },\n Y = b.__private__.convertPDFDateToDate = function (t) {\n var e = parseInt(t.substr(2, 4), 10),\n r = parseInt(t.substr(6, 2), 10) - 1,\n n = parseInt(t.substr(8, 2), 10),\n i = parseInt(t.substr(10, 2), 10),\n a = parseInt(t.substr(12, 2), 10),\n o = parseInt(t.substr(14, 2), 10);\n return new Date(e, r, n, i, a, o, 0);\n },\n J = b.__private__.setCreationDate = function (t) {\n var e;\n if (void 0 === t && (t = new Date()), t instanceof Date) e = G(t);else {\n if (!/^D:(20[0-2][0-9]|203[0-7]|19[7-9][0-9])(0[0-9]|1[0-2])([0-2][0-9]|3[0-1])(0[0-9]|1[0-9]|2[0-3])(0[0-9]|[1-5][0-9])(0[0-9]|[1-5][0-9])(\\+0[0-9]|\\+1[0-4]|-0[0-9]|-1[0-1])'(0[0-9]|[1-5][0-9])'?$/.test(t)) throw new Error(\"Invalid argument passed to jsPDF.setCreationDate\");\n e = t;\n }\n return z = e;\n },\n X = b.__private__.getCreationDate = function (t) {\n var e = z;\n return \"jsDate\" === t && (e = Y(z)), e;\n };\n\n b.setCreationDate = function (t) {\n return J(t), this;\n }, b.getCreationDate = function (t) {\n return X(t);\n };\n\n var K,\n Z = b.__private__.padd2 = function (t) {\n return (\"0\" + parseInt(t)).slice(-2);\n },\n $ = b.__private__.padd2Hex = function (t) {\n return (\"00\" + (t = t.toString())).substr(t.length);\n },\n Q = 0,\n tt = [],\n et = [],\n rt = 0,\n nt = [],\n it = [],\n at = !1,\n ot = et,\n st = function st() {\n Q = 0, rt = 0, et = [], tt = [], nt = [], Zt = Jt(), $t = Jt();\n };\n\n b.__private__.setCustomOutputDestination = function (t) {\n at = !0, ot = t;\n };\n\n var ut = function ut(t) {\n at || (ot = t);\n };\n\n b.__private__.resetCustomOutputDestination = function () {\n at = !1, ot = et;\n };\n\n var ct = b.__private__.out = function (t) {\n return t = t.toString(), rt += t.length + 1, ot.push(t), ot;\n },\n lt = b.__private__.write = function (t) {\n return ct(1 === arguments.length ? t.toString() : Array.prototype.join.call(arguments, \" \"));\n },\n ht = b.__private__.getArrayBuffer = function (t) {\n for (var e = t.length, r = new ArrayBuffer(e), n = new Uint8Array(r); e--;) {\n n[e] = t.charCodeAt(e);\n }\n\n return r;\n },\n ft = [[\"Helvetica\", \"helvetica\", \"normal\", \"WinAnsiEncoding\"], [\"Helvetica-Bold\", \"helvetica\", \"bold\", \"WinAnsiEncoding\"], [\"Helvetica-Oblique\", \"helvetica\", \"italic\", \"WinAnsiEncoding\"], [\"Helvetica-BoldOblique\", \"helvetica\", \"bolditalic\", \"WinAnsiEncoding\"], [\"Courier\", \"courier\", \"normal\", \"WinAnsiEncoding\"], [\"Courier-Bold\", \"courier\", \"bold\", \"WinAnsiEncoding\"], [\"Courier-Oblique\", \"courier\", \"italic\", \"WinAnsiEncoding\"], [\"Courier-BoldOblique\", \"courier\", \"bolditalic\", \"WinAnsiEncoding\"], [\"Times-Roman\", \"times\", \"normal\", \"WinAnsiEncoding\"], [\"Times-Bold\", \"times\", \"bold\", \"WinAnsiEncoding\"], [\"Times-Italic\", \"times\", \"italic\", \"WinAnsiEncoding\"], [\"Times-BoldItalic\", \"times\", \"bolditalic\", \"WinAnsiEncoding\"], [\"ZapfDingbats\", \"zapfdingbats\", \"normal\", null], [\"Symbol\", \"symbol\", \"normal\", null]];\n\n b.__private__.getStandardFonts = function () {\n return ft;\n };\n\n var dt = t.fontSize || 16;\n\n b.__private__.setFontSize = b.setFontSize = function (t) {\n return dt = x === A.ADVANCED ? t / xt : t, this;\n };\n\n var pt,\n gt = b.__private__.getFontSize = b.getFontSize = function () {\n return x === A.COMPAT ? dt : dt * xt;\n },\n mt = t.R2L || !1;\n\n b.__private__.setR2L = b.setR2L = function (t) {\n return mt = t, this;\n }, b.__private__.getR2L = b.getR2L = function () {\n return mt;\n };\n\n var vt,\n bt = b.__private__.setZoomMode = function (t) {\n var e = [void 0, null, \"fullwidth\", \"fullheight\", \"fullpage\", \"original\"];\n if (/^\\d*\\.?\\d*%$/.test(t)) pt = t;else if (isNaN(t)) {\n if (-1 === e.indexOf(t)) throw new Error('zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. \"' + t + '\" is not recognized.');\n pt = t;\n } else pt = parseInt(t, 10);\n };\n\n b.__private__.getZoomMode = function () {\n return pt;\n };\n\n var yt,\n wt = b.__private__.setPageMode = function (t) {\n if (-1 == [void 0, null, \"UseNone\", \"UseOutlines\", \"UseThumbs\", \"FullScreen\"].indexOf(t)) throw new Error('Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. \"' + t + '\" is not recognized.');\n vt = t;\n };\n\n b.__private__.getPageMode = function () {\n return vt;\n };\n\n var Nt = b.__private__.setLayoutMode = function (t) {\n if (-1 == [void 0, null, \"continuous\", \"single\", \"twoleft\", \"tworight\", \"two\"].indexOf(t)) throw new Error('Layout mode must be one of continuous, single, twoleft, tworight. \"' + t + '\" is not recognized.');\n yt = t;\n };\n\n b.__private__.getLayoutMode = function () {\n return yt;\n }, b.__private__.setDisplayMode = b.setDisplayMode = function (t, e, r) {\n return bt(t), Nt(e), wt(r), this;\n };\n var Lt = {\n title: \"\",\n subject: \"\",\n author: \"\",\n keywords: \"\",\n creator: \"\"\n };\n b.__private__.getDocumentProperty = function (t) {\n if (-1 === Object.keys(Lt).indexOf(t)) throw new Error(\"Invalid argument passed to jsPDF.getDocumentProperty\");\n return Lt[t];\n }, b.__private__.getDocumentProperties = function () {\n return Lt;\n }, b.__private__.setDocumentProperties = b.setProperties = b.setDocumentProperties = function (t) {\n for (var e in Lt) {\n Lt.hasOwnProperty(e) && t[e] && (Lt[e] = t[e]);\n }\n\n return this;\n }, b.__private__.setDocumentProperty = function (t, e) {\n if (-1 === Object.keys(Lt).indexOf(t)) throw new Error(\"Invalid arguments passed to jsPDF.setDocumentProperty\");\n return Lt[t] = e;\n };\n\n var At,\n xt,\n St,\n _t,\n Pt,\n kt = {},\n It = {},\n Ft = [],\n Ct = {},\n jt = {},\n Ot = {},\n Bt = {},\n Mt = null,\n Et = 0,\n qt = [],\n Rt = new k(b),\n Tt = t.hotfixes || [],\n Dt = {},\n Ut = {},\n zt = [],\n Ht = function Ht(t, e, r, n, i, a) {\n if (!(this instanceof Ht)) return new Ht(t, e, r, n, i, a);\n isNaN(t) && (t = 1), isNaN(e) && (e = 0), isNaN(r) && (r = 0), isNaN(n) && (n = 1), isNaN(i) && (i = 0), isNaN(a) && (a = 0), this._matrix = [t, e, r, n, i, a];\n };\n\n Object.defineProperty(Ht.prototype, \"sx\", {\n get: function get() {\n return this._matrix[0];\n },\n set: function set(t) {\n this._matrix[0] = t;\n }\n }), Object.defineProperty(Ht.prototype, \"shy\", {\n get: function get() {\n return this._matrix[1];\n },\n set: function set(t) {\n this._matrix[1] = t;\n }\n }), Object.defineProperty(Ht.prototype, \"shx\", {\n get: function get() {\n return this._matrix[2];\n },\n set: function set(t) {\n this._matrix[2] = t;\n }\n }), Object.defineProperty(Ht.prototype, \"sy\", {\n get: function get() {\n return this._matrix[3];\n },\n set: function set(t) {\n this._matrix[3] = t;\n }\n }), Object.defineProperty(Ht.prototype, \"tx\", {\n get: function get() {\n return this._matrix[4];\n },\n set: function set(t) {\n this._matrix[4] = t;\n }\n }), Object.defineProperty(Ht.prototype, \"ty\", {\n get: function get() {\n return this._matrix[5];\n },\n set: function set(t) {\n this._matrix[5] = t;\n }\n }), Object.defineProperty(Ht.prototype, \"a\", {\n get: function get() {\n return this._matrix[0];\n },\n set: function set(t) {\n this._matrix[0] = t;\n }\n }), Object.defineProperty(Ht.prototype, \"b\", {\n get: function get() {\n return this._matrix[1];\n },\n set: function set(t) {\n this._matrix[1] = t;\n }\n }), Object.defineProperty(Ht.prototype, \"c\", {\n get: function get() {\n return this._matrix[2];\n },\n set: function set(t) {\n this._matrix[2] = t;\n }\n }), Object.defineProperty(Ht.prototype, \"d\", {\n get: function get() {\n return this._matrix[3];\n },\n set: function set(t) {\n this._matrix[3] = t;\n }\n }), Object.defineProperty(Ht.prototype, \"e\", {\n get: function get() {\n return this._matrix[4];\n },\n set: function set(t) {\n this._matrix[4] = t;\n }\n }), Object.defineProperty(Ht.prototype, \"f\", {\n get: function get() {\n return this._matrix[5];\n },\n set: function set(t) {\n this._matrix[5] = t;\n }\n }), Object.defineProperty(Ht.prototype, \"rotation\", {\n get: function get() {\n return Math.atan2(this.shx, this.sx);\n }\n }), Object.defineProperty(Ht.prototype, \"scaleX\", {\n get: function get() {\n return this.decompose().scale.sx;\n }\n }), Object.defineProperty(Ht.prototype, \"scaleY\", {\n get: function get() {\n return this.decompose().scale.sy;\n }\n }), Object.defineProperty(Ht.prototype, \"isIdentity\", {\n get: function get() {\n return 1 === this.sx && 0 === this.shy && 0 === this.shx && 1 === this.sy && 0 === this.tx && 0 === this.ty;\n }\n }), Ht.prototype.join = function (t) {\n return [this.sx, this.shy, this.shx, this.sy, this.tx, this.ty].map(B).join(t);\n }, Ht.prototype.multiply = function (t) {\n var e = t.sx * this.sx + t.shy * this.shx,\n r = t.sx * this.shy + t.shy * this.sy,\n n = t.shx * this.sx + t.sy * this.shx,\n i = t.shx * this.shy + t.sy * this.sy,\n a = t.tx * this.sx + t.ty * this.shx + this.tx,\n o = t.tx * this.shy + t.ty * this.sy + this.ty;\n return new Ht(e, r, n, i, a, o);\n }, Ht.prototype.decompose = function () {\n var t = this.sx,\n e = this.shy,\n r = this.shx,\n n = this.sy,\n i = this.tx,\n a = this.ty,\n o = Math.sqrt(t * t + e * e),\n s = (t /= o) * r + (e /= o) * n;\n r -= t * s, n -= e * s;\n var u = Math.sqrt(r * r + n * n);\n return s /= u, t * (n /= u) < e * (r /= u) && (t = -t, e = -e, s = -s, o = -o), {\n scale: new Ht(o, 0, 0, u, 0, 0),\n translate: new Ht(1, 0, 0, 1, i, a),\n rotate: new Ht(t, e, -e, t, 0, 0),\n skew: new Ht(1, 0, s, 1, 0, 0)\n };\n }, Ht.prototype.toString = function (t) {\n return this.join(\" \");\n }, Ht.prototype.inversed = function () {\n var t = this.sx,\n e = this.shy,\n r = this.shx,\n n = this.sy,\n i = this.tx,\n a = this.ty,\n o = 1 / (t * n - e * r),\n s = n * o,\n u = -e * o,\n c = -r * o,\n l = t * o;\n return new Ht(s, u, c, l, -s * i - c * a, -u * i - l * a);\n }, Ht.prototype.applyToPoint = function (t) {\n var e = t.x * this.sx + t.y * this.shx + this.tx,\n r = t.x * this.shy + t.y * this.sy + this.ty;\n return new kr(e, r);\n }, Ht.prototype.applyToRectangle = function (t) {\n var e = this.applyToPoint(t),\n r = this.applyToPoint(new kr(t.x + t.w, t.y + t.h));\n return new Ir(e.x, e.y, r.x - e.x, r.y - e.y);\n }, Ht.prototype.clone = function () {\n var t = this.sx,\n e = this.shy,\n r = this.shx,\n n = this.sy,\n i = this.tx,\n a = this.ty;\n return new Ht(t, e, r, n, i, a);\n }, b.Matrix = Ht;\n\n var Vt = b.matrixMult = function (t, e) {\n return e.multiply(t);\n },\n Wt = new Ht(1, 0, 0, 1, 0, 0);\n\n b.unitMatrix = b.identityMatrix = Wt;\n\n var Gt = function Gt(t, e) {\n if (!jt[t]) {\n var r = (e instanceof C ? \"Sh\" : \"P\") + (Object.keys(Ct).length + 1).toString(10);\n e.id = r, jt[t] = r, Ct[r] = e, Rt.publish(\"addPattern\", e);\n }\n };\n\n b.ShadingPattern = C, b.TilingPattern = j, b.addShadingPattern = function (t, e) {\n return M(\"addShadingPattern()\"), Gt(t, e), this;\n }, b.beginTilingPattern = function (t) {\n M(\"beginTilingPattern()\"), Cr(t.boundingBox[0], t.boundingBox[1], t.boundingBox[2] - t.boundingBox[0], t.boundingBox[3] - t.boundingBox[1], t.matrix);\n }, b.endTilingPattern = function (t, e) {\n M(\"endTilingPattern()\"), e.stream = it[K].join(\"\\n\"), Gt(t, e), Rt.publish(\"endTilingPattern\", e), zt.pop().restore();\n };\n\n var Yt = b.__private__.newObject = function () {\n var t = Jt();\n return Xt(t, !0), t;\n },\n Jt = b.__private__.newObjectDeferred = function () {\n return Q++, tt[Q] = function () {\n return rt;\n }, Q;\n },\n Xt = function Xt(t, e) {\n return e = \"boolean\" == typeof e && e, tt[t] = rt, e && ct(t + \" 0 obj\"), t;\n },\n Kt = b.__private__.newAdditionalObject = function () {\n var t = {\n objId: Jt(),\n content: \"\"\n };\n return nt.push(t), t;\n },\n Zt = Jt(),\n $t = Jt(),\n Qt = b.__private__.decodeColorString = function (t) {\n var e = t.split(\" \");\n\n if (2 !== e.length || \"g\" !== e[1] && \"G\" !== e[1]) {\n if (5 === e.length && (\"k\" === e[4] || \"K\" === e[4])) {\n e = [(1 - e[0]) * (1 - e[3]), (1 - e[1]) * (1 - e[3]), (1 - e[2]) * (1 - e[3]), \"r\"];\n }\n } else {\n var r = parseFloat(e[0]);\n e = [r, r, r, \"r\"];\n }\n\n for (var n = \"#\", i = 0; i < 3; i++) {\n n += (\"0\" + Math.floor(255 * parseFloat(e[i])).toString(16)).slice(-2);\n }\n\n return n;\n },\n te = b.__private__.encodeColorString = function (t) {\n var e;\n \"string\" == typeof t && (t = {\n ch1: t\n });\n var r = t.ch1,\n n = t.ch2,\n i = t.ch3,\n a = t.ch4,\n o = \"draw\" === t.pdfColorType ? [\"G\", \"RG\", \"K\"] : [\"g\", \"rg\", \"k\"];\n\n if (\"string\" == typeof r && \"#\" !== r.charAt(0)) {\n var s = new h(r);\n if (s.ok) r = s.toHex();else if (!/^\\d*\\.?\\d*$/.test(r)) throw new Error('Invalid color \"' + r + '\" passed to jsPDF.encodeColorString.');\n }\n\n if (\"string\" == typeof r && /^#[0-9A-Fa-f]{3}$/.test(r) && (r = \"#\" + r[1] + r[1] + r[2] + r[2] + r[3] + r[3]), \"string\" == typeof r && /^#[0-9A-Fa-f]{6}$/.test(r)) {\n var u = parseInt(r.substr(1), 16);\n r = u >> 16 & 255, n = u >> 8 & 255, i = 255 & u;\n }\n\n if (void 0 === n || void 0 === a && r === n && n === i) {\n if (\"string\" == typeof r) e = r + \" \" + o[0];else switch (t.precision) {\n case 2:\n e = q(r / 255) + \" \" + o[0];\n break;\n\n case 3:\n default:\n e = R(r / 255) + \" \" + o[0];\n }\n } else if (void 0 === a || \"object\" == typeof a) {\n if (a && !isNaN(a.a) && 0 === a.a) return e = [\"1.\", \"1.\", \"1.\", o[1]].join(\" \");\n if (\"string\" == typeof r) e = [r, n, i, o[1]].join(\" \");else switch (t.precision) {\n case 2:\n e = [q(r / 255), q(n / 255), q(i / 255), o[1]].join(\" \");\n break;\n\n default:\n case 3:\n e = [R(r / 255), R(n / 255), R(i / 255), o[1]].join(\" \");\n }\n } else if (\"string\" == typeof r) e = [r, n, i, a, o[2]].join(\" \");else switch (t.precision) {\n case 2:\n e = [q(r), q(n), q(i), q(a), o[2]].join(\" \");\n break;\n\n case 3:\n default:\n e = [R(r), R(n), R(i), R(a), o[2]].join(\" \");\n }\n return e;\n },\n ee = b.__private__.getFilters = function () {\n return u;\n },\n re = b.__private__.putStream = function (t) {\n var e = (t = t || {}).data || \"\",\n r = t.filters || ee(),\n n = t.alreadyAppliedFilters || [],\n i = t.addLength1 || !1,\n a = e.length,\n o = t.objectId,\n s = function s(t) {\n return t;\n };\n\n if (null !== g && void 0 === o) throw new Error(\"ObjectId must be passed to putStream for file encryption\");\n null !== g && (s = We.encryptor(o, 0));\n var u = {};\n !0 === r && (r = [\"FlateEncode\"]);\n var c = t.additionalKeyValues || [],\n l = (u = void 0 !== O.API.processDataByFilters ? O.API.processDataByFilters(e, r) : {\n data: e,\n reverseChain: []\n }).reverseChain + (Array.isArray(n) ? n.join(\" \") : n.toString());\n if (0 !== u.data.length && (c.push({\n key: \"Length\",\n value: u.data.length\n }), !0 === i && c.push({\n key: \"Length1\",\n value: a\n })), 0 != l.length) if (l.split(\"/\").length - 1 == 1) c.push({\n key: \"Filter\",\n value: l\n });else {\n c.push({\n key: \"Filter\",\n value: \"[\" + l + \"]\"\n });\n\n for (var h = 0; h < c.length; h += 1) {\n if (\"DecodeParms\" === c[h].key) {\n for (var f = [], d = 0; d < u.reverseChain.split(\"/\").length - 1; d += 1) {\n f.push(\"null\");\n }\n\n f.push(c[h].value), c[h].value = \"[\" + f.join(\" \") + \"]\";\n }\n }\n }\n ct(\"<<\");\n\n for (var p = 0; p < c.length; p++) {\n ct(\"/\" + c[p].key + \" \" + c[p].value);\n }\n\n ct(\">>\"), 0 !== u.data.length && (ct(\"stream\"), ct(s(u.data)), ct(\"endstream\"));\n },\n ne = b.__private__.putPage = function (t) {\n var e = t.number,\n r = t.data,\n n = t.objId,\n i = t.contentsObjId;\n Xt(n, !0), ct(\"<>\"), ct(\"endobj\");\n var a = r.join(\"\\n\");\n return x === A.ADVANCED && (a += \"\\nQ\"), Xt(i, !0), re({\n data: a,\n filters: ee(),\n objectId: i\n }), ct(\"endobj\"), n;\n },\n ie = b.__private__.putPages = function () {\n var t,\n e,\n r = [];\n\n for (t = 1; t <= Et; t++) {\n qt[t].objId = Jt(), qt[t].contentsObjId = Jt();\n }\n\n for (t = 1; t <= Et; t++) {\n r.push(ne({\n number: t,\n data: it[t],\n objId: qt[t].objId,\n contentsObjId: qt[t].contentsObjId,\n mediaBox: qt[t].mediaBox,\n cropBox: qt[t].cropBox,\n bleedBox: qt[t].bleedBox,\n trimBox: qt[t].trimBox,\n artBox: qt[t].artBox,\n userUnit: qt[t].userUnit,\n rootDictionaryObjId: Zt,\n resourceDictionaryObjId: $t\n }));\n }\n\n Xt(Zt, !0), ct(\"<>\"), ct(\"endobj\"), Rt.publish(\"postPutPages\");\n },\n ae = function ae(t) {\n var e = function e(t, _e2) {\n return -1 !== t.indexOf(\" \") ? \"(\" + Ie(t, _e2) + \")\" : Ie(t, _e2);\n };\n\n Rt.publish(\"putFont\", {\n font: t,\n out: ct,\n newObject: Yt,\n putStream: re,\n pdfEscapeWithNeededParanthesis: e\n }), !0 !== t.isAlreadyPutted && (t.objectNumber = Yt(), ct(\"<<\"), ct(\"/Type /Font\"), ct(\"/BaseFont /\" + e(t.postScriptName)), ct(\"/Subtype /Type1\"), \"string\" == typeof t.encoding && ct(\"/Encoding /\" + t.encoding), ct(\"/FirstChar 32\"), ct(\"/LastChar 255\"), ct(\">>\"), ct(\"endobj\"));\n },\n oe = function oe() {\n for (var t in kt) {\n kt.hasOwnProperty(t) && (!1 === m || !0 === m && v.hasOwnProperty(t)) && ae(kt[t]);\n }\n },\n se = function se(t) {\n t.objectNumber = Yt();\n var e = [];\n e.push({\n key: \"Type\",\n value: \"/XObject\"\n }), e.push({\n key: \"Subtype\",\n value: \"/Form\"\n }), e.push({\n key: \"BBox\",\n value: \"[\" + [B(t.x), B(t.y), B(t.x + t.width), B(t.y + t.height)].join(\" \") + \"]\"\n }), e.push({\n key: \"Matrix\",\n value: \"[\" + t.matrix.toString() + \"]\"\n });\n var r = t.pages[1].join(\"\\n\");\n re({\n data: r,\n additionalKeyValues: e,\n objectId: t.objectNumber\n }), ct(\"endobj\");\n },\n ue = function ue() {\n for (var t in Dt) {\n Dt.hasOwnProperty(t) && se(Dt[t]);\n }\n },\n ce = function ce(t, e) {\n var r,\n n = [],\n i = 1 / (e - 1);\n\n for (r = 0; r < 1; r += i) {\n n.push(r);\n }\n\n if (n.push(1), 0 != t[0].offset) {\n var a = {\n offset: 0,\n color: t[0].color\n };\n t.unshift(a);\n }\n\n if (1 != t[t.length - 1].offset) {\n var o = {\n offset: 1,\n color: t[t.length - 1].color\n };\n t.push(o);\n }\n\n for (var s = \"\", u = 0, c = 0; c < n.length; c++) {\n for (r = n[c]; r > t[u + 1].offset;) {\n u++;\n }\n\n var l = t[u].offset,\n h = (r - l) / (t[u + 1].offset - l),\n f = t[u].color,\n d = t[u + 1].color;\n s += $(Math.round((1 - h) * f[0] + h * d[0]).toString(16)) + $(Math.round((1 - h) * f[1] + h * d[1]).toString(16)) + $(Math.round((1 - h) * f[2] + h * d[2]).toString(16));\n }\n\n return s.trim();\n },\n le = function le(t, e) {\n e || (e = 21);\n var r = Yt(),\n n = ce(t.colors, e),\n i = [];\n i.push({\n key: \"FunctionType\",\n value: \"0\"\n }), i.push({\n key: \"Domain\",\n value: \"[0.0 1.0]\"\n }), i.push({\n key: \"Size\",\n value: \"[\" + e + \"]\"\n }), i.push({\n key: \"BitsPerSample\",\n value: \"8\"\n }), i.push({\n key: \"Range\",\n value: \"[0.0 1.0 0.0 1.0 0.0 1.0]\"\n }), i.push({\n key: \"Decode\",\n value: \"[0.0 1.0 0.0 1.0 0.0 1.0]\"\n }), re({\n data: n,\n additionalKeyValues: i,\n alreadyAppliedFilters: [\"/ASCIIHexDecode\"],\n objectId: r\n }), ct(\"endobj\"), t.objectNumber = Yt(), ct(\"<< /ShadingType \" + t.type), ct(\"/ColorSpace /DeviceRGB\");\n var a = \"/Coords [\" + B(parseFloat(t.coords[0])) + \" \" + B(parseFloat(t.coords[1])) + \" \";\n 2 === t.type ? a += B(parseFloat(t.coords[2])) + \" \" + B(parseFloat(t.coords[3])) : a += B(parseFloat(t.coords[2])) + \" \" + B(parseFloat(t.coords[3])) + \" \" + B(parseFloat(t.coords[4])) + \" \" + B(parseFloat(t.coords[5])), ct(a += \"]\"), t.matrix && ct(\"/Matrix [\" + t.matrix.toString() + \"]\"), ct(\"/Function \" + r + \" 0 R\"), ct(\"/Extend [true true]\"), ct(\">>\"), ct(\"endobj\");\n },\n he = function he(t, e) {\n var r = Jt(),\n n = Yt();\n e.push({\n resourcesOid: r,\n objectOid: n\n }), t.objectNumber = n;\n var i = [];\n i.push({\n key: \"Type\",\n value: \"/Pattern\"\n }), i.push({\n key: \"PatternType\",\n value: \"1\"\n }), i.push({\n key: \"PaintType\",\n value: \"1\"\n }), i.push({\n key: \"TilingType\",\n value: \"1\"\n }), i.push({\n key: \"BBox\",\n value: \"[\" + t.boundingBox.map(B).join(\" \") + \"]\"\n }), i.push({\n key: \"XStep\",\n value: B(t.xStep)\n }), i.push({\n key: \"YStep\",\n value: B(t.yStep)\n }), i.push({\n key: \"Resources\",\n value: r + \" 0 R\"\n }), t.matrix && i.push({\n key: \"Matrix\",\n value: \"[\" + t.matrix.toString() + \"]\"\n }), re({\n data: t.stream,\n additionalKeyValues: i,\n objectId: t.objectNumber\n }), ct(\"endobj\");\n },\n fe = function fe(t) {\n var e;\n\n for (e in Ct) {\n Ct.hasOwnProperty(e) && (Ct[e] instanceof C ? le(Ct[e]) : Ct[e] instanceof j && he(Ct[e], t));\n }\n },\n de = function de(t) {\n for (var e in t.objectNumber = Yt(), ct(\"<<\"), t) {\n switch (e) {\n case \"opacity\":\n ct(\"/ca \" + q(t[e]));\n break;\n\n case \"stroke-opacity\":\n ct(\"/CA \" + q(t[e]));\n }\n }\n\n ct(\">>\"), ct(\"endobj\");\n },\n pe = function pe() {\n var t;\n\n for (t in Ot) {\n Ot.hasOwnProperty(t) && de(Ot[t]);\n }\n },\n ge = function ge() {\n for (var t in ct(\"/XObject <<\"), Dt) {\n Dt.hasOwnProperty(t) && Dt[t].objectNumber >= 0 && ct(\"/\" + t + \" \" + Dt[t].objectNumber + \" 0 R\");\n }\n\n Rt.publish(\"putXobjectDict\"), ct(\">>\");\n },\n me = function me() {\n We.oid = Yt(), ct(\"<<\"), ct(\"/Filter /Standard\"), ct(\"/V \" + We.v), ct(\"/R \" + We.r), ct(\"/U <\" + We.toHexString(We.U) + \">\"), ct(\"/O <\" + We.toHexString(We.O) + \">\"), ct(\"/P \" + We.P), ct(\">>\"), ct(\"endobj\");\n },\n ve = function ve() {\n for (var t in ct(\"/Font <<\"), kt) {\n kt.hasOwnProperty(t) && (!1 === m || !0 === m && v.hasOwnProperty(t)) && ct(\"/\" + t + \" \" + kt[t].objectNumber + \" 0 R\");\n }\n\n ct(\">>\");\n },\n be = function be() {\n if (Object.keys(Ct).length > 0) {\n for (var t in ct(\"/Shading <<\"), Ct) {\n Ct.hasOwnProperty(t) && Ct[t] instanceof C && Ct[t].objectNumber >= 0 && ct(\"/\" + t + \" \" + Ct[t].objectNumber + \" 0 R\");\n }\n\n Rt.publish(\"putShadingPatternDict\"), ct(\">>\");\n }\n },\n ye = function ye(t) {\n if (Object.keys(Ct).length > 0) {\n for (var e in ct(\"/Pattern <<\"), Ct) {\n Ct.hasOwnProperty(e) && Ct[e] instanceof b.TilingPattern && Ct[e].objectNumber >= 0 && Ct[e].objectNumber < t && ct(\"/\" + e + \" \" + Ct[e].objectNumber + \" 0 R\");\n }\n\n Rt.publish(\"putTilingPatternDict\"), ct(\">>\");\n }\n },\n we = function we() {\n if (Object.keys(Ot).length > 0) {\n var t;\n\n for (t in ct(\"/ExtGState <<\"), Ot) {\n Ot.hasOwnProperty(t) && Ot[t].objectNumber >= 0 && ct(\"/\" + t + \" \" + Ot[t].objectNumber + \" 0 R\");\n }\n\n Rt.publish(\"putGStateDict\"), ct(\">>\");\n }\n },\n Ne = function Ne(t) {\n Xt(t.resourcesOid, !0), ct(\"<<\"), ct(\"/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]\"), ve(), be(), ye(t.objectOid), we(), ge(), ct(\">>\"), ct(\"endobj\");\n },\n Le = function Le() {\n var t = [];\n oe(), pe(), ue(), fe(t), Rt.publish(\"putResources\"), t.forEach(Ne), Ne({\n resourcesOid: $t,\n objectOid: Number.MAX_SAFE_INTEGER\n }), Rt.publish(\"postPutResources\");\n },\n Ae = function Ae() {\n Rt.publish(\"putAdditionalObjects\");\n\n for (var t = 0; t < nt.length; t++) {\n var e = nt[t];\n Xt(e.objId, !0), ct(e.content), ct(\"endobj\");\n }\n\n Rt.publish(\"postPutAdditionalObjects\");\n },\n xe = function xe(t) {\n It[t.fontName] = It[t.fontName] || {}, It[t.fontName][t.fontStyle] = t.id;\n },\n Se = function Se(t, e, r, n, i) {\n var a = {\n id: \"F\" + (Object.keys(kt).length + 1).toString(10),\n postScriptName: t,\n fontName: e,\n fontStyle: r,\n encoding: n,\n isStandardFont: i || !1,\n metadata: {}\n };\n return Rt.publish(\"addFont\", {\n font: a,\n instance: this\n }), kt[a.id] = a, xe(a), a.id;\n },\n _e = function _e(t) {\n for (var e = 0, r = ft.length; e < r; e++) {\n var n = Se.call(this, t[e][0], t[e][1], t[e][2], ft[e][3], !0);\n !1 === m && (v[n] = !0);\n var i = t[e][0].split(\"-\");\n xe({\n id: n,\n fontName: i[0],\n fontStyle: i[1] || \"\"\n });\n }\n\n Rt.publish(\"addFonts\", {\n fonts: kt,\n dictionary: It\n });\n },\n Pe = function Pe(t) {\n return t.foo = function () {\n try {\n return t.apply(this, arguments);\n } catch (t) {\n var e = t.stack || \"\";\n ~e.indexOf(\" at \") && (e = e.split(\" at \")[1]);\n var n = \"Error in function \" + e.split(\"\\n\")[0].split(\"<\")[0] + \": \" + t.message;\n if (!r.console) throw new Error(n);\n r.console.error(n, t), r.alert && alert(n);\n }\n }, t.foo.bar = t, t.foo;\n },\n ke = function ke(t, e) {\n var r, n, i, a, o, s, u, c, l;\n\n if (i = (e = e || {}).sourceEncoding || \"Unicode\", o = e.outputEncoding, (e.autoencode || o) && kt[At].metadata && kt[At].metadata[i] && kt[At].metadata[i].encoding && (a = kt[At].metadata[i].encoding, !o && kt[At].encoding && (o = kt[At].encoding), !o && a.codePages && (o = a.codePages[0]), \"string\" == typeof o && (o = a[o]), o)) {\n for (u = !1, s = [], r = 0, n = t.length; r < n; r++) {\n (c = o[t.charCodeAt(r)]) ? s.push(String.fromCharCode(c)) : s.push(t[r]), s[r].charCodeAt(0) >> 8 && (u = !0);\n }\n\n t = s.join(\"\");\n }\n\n for (r = t.length; void 0 === u && 0 !== r;) {\n t.charCodeAt(r - 1) >> 8 && (u = !0), r--;\n }\n\n if (!u) return t;\n\n for (s = e.noBOM ? [] : [254, 255], r = 0, n = t.length; r < n; r++) {\n if ((l = (c = t.charCodeAt(r)) >> 8) >> 8) throw new Error(\"Character at position \" + r + \" of string '\" + t + \"' exceeds 16bits. Cannot be encoded into UCS-2 BE\");\n s.push(l), s.push(c - (l << 8));\n }\n\n return String.fromCharCode.apply(void 0, s);\n },\n Ie = b.__private__.pdfEscape = b.pdfEscape = function (t, e) {\n return ke(t, e).replace(/\\\\/g, \"\\\\\\\\\").replace(/\\(/g, \"\\\\(\").replace(/\\)/g, \"\\\\)\");\n },\n Fe = b.__private__.beginPage = function (t) {\n it[++Et] = [], qt[Et] = {\n objId: 0,\n contentsObjId: 0,\n userUnit: Number(f),\n artBox: null,\n bleedBox: null,\n cropBox: null,\n trimBox: null,\n mediaBox: {\n bottomLeftX: 0,\n bottomLeftY: 0,\n topRightX: Number(t[0]),\n topRightY: Number(t[1])\n }\n }, Oe(Et), ut(it[K]);\n },\n Ce = function Ce(t, e) {\n var r, a, s;\n\n switch (n = e || n, \"string\" == typeof t && (r = L(t.toLowerCase()), Array.isArray(r) && (a = r[0], s = r[1])), Array.isArray(t) && (a = t[0] * xt, s = t[1] * xt), isNaN(a) && (a = o[0], s = o[1]), (a > 14400 || s > 14400) && (i.warn(\"A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400\"), a = Math.min(14400, a), s = Math.min(14400, s)), o = [a, s], n.substr(0, 1)) {\n case \"l\":\n s > a && (o = [s, a]);\n break;\n\n case \"p\":\n a > s && (o = [s, a]);\n }\n\n Fe(o), hr(lr), ct(yr), 0 !== Sr && ct(Sr + \" J\"), 0 !== _r && ct(_r + \" j\"), Rt.publish(\"addPage\", {\n pageNumber: Et\n });\n },\n je = function je(t) {\n t > 0 && t <= Et && (it.splice(t, 1), qt.splice(t, 1), Et--, K > Et && (K = Et), this.setPage(K));\n },\n Oe = function Oe(t) {\n t > 0 && t <= Et && (K = t);\n },\n Be = b.__private__.getNumberOfPages = b.getNumberOfPages = function () {\n return it.length - 1;\n },\n Me = function Me(t, e, r) {\n var n,\n a = void 0;\n return r = r || {}, t = void 0 !== t ? t : kt[At].fontName, e = void 0 !== e ? e : kt[At].fontStyle, n = t.toLowerCase(), void 0 !== It[n] && void 0 !== It[n][e] ? a = It[n][e] : void 0 !== It[t] && void 0 !== It[t][e] ? a = It[t][e] : !1 === r.disableWarning && i.warn(\"Unable to look up font label for font '\" + t + \"', '\" + e + \"'. Refer to getFontList() for available fonts.\"), a || r.noFallback || null == (a = It.times[e]) && (a = It.times.normal), a;\n },\n Ee = b.__private__.putInfo = function () {\n var t = Yt(),\n e = function e(t) {\n return t;\n };\n\n for (var r in null !== g && (e = We.encryptor(t, 0)), ct(\"<<\"), ct(\"/Producer (\" + Ie(e(\"jsPDF \" + O.version)) + \")\"), Lt) {\n Lt.hasOwnProperty(r) && Lt[r] && ct(\"/\" + r.substr(0, 1).toUpperCase() + r.substr(1) + \" (\" + Ie(e(Lt[r])) + \")\");\n }\n\n ct(\"/CreationDate (\" + Ie(e(z)) + \")\"), ct(\">>\"), ct(\"endobj\");\n },\n qe = b.__private__.putCatalog = function (t) {\n var e = (t = t || {}).rootDictionaryObjId || Zt;\n\n switch (Yt(), ct(\"<<\"), ct(\"/Type /Catalog\"), ct(\"/Pages \" + e + \" 0 R\"), pt || (pt = \"fullwidth\"), pt) {\n case \"fullwidth\":\n ct(\"/OpenAction [3 0 R /FitH null]\");\n break;\n\n case \"fullheight\":\n ct(\"/OpenAction [3 0 R /FitV null]\");\n break;\n\n case \"fullpage\":\n ct(\"/OpenAction [3 0 R /Fit]\");\n break;\n\n case \"original\":\n ct(\"/OpenAction [3 0 R /XYZ null null 1]\");\n break;\n\n default:\n var r = \"\" + pt;\n \"%\" === r.substr(r.length - 1) && (pt = parseInt(pt) / 100), \"number\" == typeof pt && ct(\"/OpenAction [3 0 R /XYZ null null \" + q(pt) + \"]\");\n }\n\n switch (yt || (yt = \"continuous\"), yt) {\n case \"continuous\":\n ct(\"/PageLayout /OneColumn\");\n break;\n\n case \"single\":\n ct(\"/PageLayout /SinglePage\");\n break;\n\n case \"two\":\n case \"twoleft\":\n ct(\"/PageLayout /TwoColumnLeft\");\n break;\n\n case \"tworight\":\n ct(\"/PageLayout /TwoColumnRight\");\n }\n\n vt && ct(\"/PageMode /\" + vt), Rt.publish(\"putCatalog\"), ct(\">>\"), ct(\"endobj\");\n },\n Re = b.__private__.putTrailer = function () {\n ct(\"trailer\"), ct(\"<<\"), ct(\"/Size \" + (Q + 1)), ct(\"/Root \" + Q + \" 0 R\"), ct(\"/Info \" + (Q - 1) + \" 0 R\"), null !== g && ct(\"/Encrypt \" + We.oid + \" 0 R\"), ct(\"/ID [ <\" + H + \"> <\" + H + \"> ]\"), ct(\">>\");\n },\n Te = b.__private__.putHeader = function () {\n ct(\"%PDF-\" + y), ct(\"%ºß¬à\");\n },\n De = b.__private__.putXRef = function () {\n var t = \"0000000000\";\n ct(\"xref\"), ct(\"0 \" + (Q + 1)), ct(\"0000000000 65535 f \");\n\n for (var e = 1; e <= Q; e++) {\n \"function\" == typeof tt[e] ? ct((t + tt[e]()).slice(-10) + \" 00000 n \") : void 0 !== tt[e] ? ct((t + tt[e]).slice(-10) + \" 00000 n \") : ct(\"0000000000 00000 n \");\n }\n },\n Ue = b.__private__.buildDocument = function () {\n st(), ut(et), Rt.publish(\"buildDocument\"), Te(), ie(), Ae(), Le(), null !== g && me(), Ee(), qe();\n var t = rt;\n return De(), Re(), ct(\"startxref\"), ct(\"\" + t), ct(\"%%EOF\"), ut(it[K]), et.join(\"\\n\");\n },\n ze = b.__private__.getBlob = function (t) {\n return new Blob([ht(t)], {\n type: \"application/pdf\"\n });\n },\n He = b.output = b.__private__.output = Pe(function (t, e) {\n switch (\"string\" == typeof (e = e || {}) ? e = {\n filename: e\n } : e.filename = e.filename || \"generated.pdf\", t) {\n case void 0:\n return Ue();\n\n case \"save\":\n b.save(e.filename);\n break;\n\n case \"arraybuffer\":\n return ht(Ue());\n\n case \"blob\":\n return ze(Ue());\n\n case \"bloburi\":\n case \"bloburl\":\n if (void 0 !== r.URL && \"function\" == typeof r.URL.createObjectURL) return r.URL && r.URL.createObjectURL(ze(Ue())) || void 0;\n i.warn(\"bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.\");\n break;\n\n case \"datauristring\":\n case \"dataurlstring\":\n var n = \"\",\n a = Ue();\n\n try {\n n = c(a);\n } catch (t) {\n n = c(unescape(encodeURIComponent(a)));\n }\n\n return \"data:application/pdf;filename=\" + e.filename + \";base64,\" + n;\n\n case \"pdfobjectnewwindow\":\n if (\"[object Window]\" === Object.prototype.toString.call(r)) {\n var o = '