{"version":3,"file":"api-data-D5Ofq_3Q.js","sources":["../../node_modules/class-transformer/esm5/enums/transformation-type.enum.js","../../node_modules/class-transformer/esm5/MetadataStorage.js","../../node_modules/class-transformer/esm5/storage.js","../../node_modules/class-transformer/esm5/utils/get-global.util.js","../../node_modules/class-transformer/esm5/utils/is-promise.util.js","../../node_modules/class-transformer/esm5/TransformOperationExecutor.js","../../node_modules/class-transformer/esm5/constants/default-options.constant.js","../../node_modules/class-transformer/esm5/ClassTransformer.js","../../node_modules/class-transformer/esm5/decorators/expose.decorator.js","../../node_modules/class-transformer/esm5/decorators/transform.decorator.js","../../node_modules/class-transformer/esm5/index.js","../../node_modules/reflect-metadata/Reflect.js"],"sourcesContent":["export var TransformationType;\n(function (TransformationType) {\n TransformationType[TransformationType[\"PLAIN_TO_CLASS\"] = 0] = \"PLAIN_TO_CLASS\";\n TransformationType[TransformationType[\"CLASS_TO_PLAIN\"] = 1] = \"CLASS_TO_PLAIN\";\n TransformationType[TransformationType[\"CLASS_TO_CLASS\"] = 2] = \"CLASS_TO_CLASS\";\n})(TransformationType || (TransformationType = {}));\n//# sourceMappingURL=transformation-type.enum.js.map","import { TransformationType } from './enums';\n/**\n * Storage all library metadata.\n */\nvar MetadataStorage = /** @class */ (function () {\n function MetadataStorage() {\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n this._typeMetadatas = new Map();\n this._transformMetadatas = new Map();\n this._exposeMetadatas = new Map();\n this._excludeMetadatas = new Map();\n this._ancestorsMap = new Map();\n }\n // -------------------------------------------------------------------------\n // Adder Methods\n // -------------------------------------------------------------------------\n MetadataStorage.prototype.addTypeMetadata = function (metadata) {\n if (!this._typeMetadatas.has(metadata.target)) {\n this._typeMetadatas.set(metadata.target, new Map());\n }\n this._typeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n };\n MetadataStorage.prototype.addTransformMetadata = function (metadata) {\n if (!this._transformMetadatas.has(metadata.target)) {\n this._transformMetadatas.set(metadata.target, new Map());\n }\n if (!this._transformMetadatas.get(metadata.target).has(metadata.propertyName)) {\n this._transformMetadatas.get(metadata.target).set(metadata.propertyName, []);\n }\n this._transformMetadatas.get(metadata.target).get(metadata.propertyName).push(metadata);\n };\n MetadataStorage.prototype.addExposeMetadata = function (metadata) {\n if (!this._exposeMetadatas.has(metadata.target)) {\n this._exposeMetadatas.set(metadata.target, new Map());\n }\n this._exposeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n };\n MetadataStorage.prototype.addExcludeMetadata = function (metadata) {\n if (!this._excludeMetadatas.has(metadata.target)) {\n this._excludeMetadatas.set(metadata.target, new Map());\n }\n this._excludeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n };\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n MetadataStorage.prototype.findTransformMetadatas = function (target, propertyName, transformationType) {\n return this.findMetadatas(this._transformMetadatas, target, propertyName).filter(function (metadata) {\n if (!metadata.options)\n return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true)\n return true;\n if (metadata.options.toClassOnly === true) {\n return (transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS);\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n return true;\n });\n };\n MetadataStorage.prototype.findExcludeMetadata = function (target, propertyName) {\n return this.findMetadata(this._excludeMetadatas, target, propertyName);\n };\n MetadataStorage.prototype.findExposeMetadata = function (target, propertyName) {\n return this.findMetadata(this._exposeMetadatas, target, propertyName);\n };\n MetadataStorage.prototype.findExposeMetadataByCustomName = function (target, name) {\n return this.getExposedMetadatas(target).find(function (metadata) {\n return metadata.options && metadata.options.name === name;\n });\n };\n MetadataStorage.prototype.findTypeMetadata = function (target, propertyName) {\n return this.findMetadata(this._typeMetadatas, target, propertyName);\n };\n MetadataStorage.prototype.getStrategy = function (target) {\n var excludeMap = this._excludeMetadatas.get(target);\n var exclude = excludeMap && excludeMap.get(undefined);\n var exposeMap = this._exposeMetadatas.get(target);\n var expose = exposeMap && exposeMap.get(undefined);\n if ((exclude && expose) || (!exclude && !expose))\n return 'none';\n return exclude ? 'excludeAll' : 'exposeAll';\n };\n MetadataStorage.prototype.getExposedMetadatas = function (target) {\n return this.getMetadata(this._exposeMetadatas, target);\n };\n MetadataStorage.prototype.getExcludedMetadatas = function (target) {\n return this.getMetadata(this._excludeMetadatas, target);\n };\n MetadataStorage.prototype.getExposedProperties = function (target, transformationType) {\n return this.getExposedMetadatas(target)\n .filter(function (metadata) {\n if (!metadata.options)\n return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true)\n return true;\n if (metadata.options.toClassOnly === true) {\n return (transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS);\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n return true;\n })\n .map(function (metadata) { return metadata.propertyName; });\n };\n MetadataStorage.prototype.getExcludedProperties = function (target, transformationType) {\n return this.getExcludedMetadatas(target)\n .filter(function (metadata) {\n if (!metadata.options)\n return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true)\n return true;\n if (metadata.options.toClassOnly === true) {\n return (transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS);\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n return true;\n })\n .map(function (metadata) { return metadata.propertyName; });\n };\n MetadataStorage.prototype.clear = function () {\n this._typeMetadatas.clear();\n this._exposeMetadatas.clear();\n this._excludeMetadatas.clear();\n this._ancestorsMap.clear();\n };\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n MetadataStorage.prototype.getMetadata = function (metadatas, target) {\n var metadataFromTargetMap = metadatas.get(target);\n var metadataFromTarget;\n if (metadataFromTargetMap) {\n metadataFromTarget = Array.from(metadataFromTargetMap.values()).filter(function (meta) { return meta.propertyName !== undefined; });\n }\n var metadataFromAncestors = [];\n for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) {\n var ancestor = _a[_i];\n var ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n var metadataFromAncestor = Array.from(ancestorMetadataMap.values()).filter(function (meta) { return meta.propertyName !== undefined; });\n metadataFromAncestors.push.apply(metadataFromAncestors, metadataFromAncestor);\n }\n }\n return metadataFromAncestors.concat(metadataFromTarget || []);\n };\n MetadataStorage.prototype.findMetadata = function (metadatas, target, propertyName) {\n var metadataFromTargetMap = metadatas.get(target);\n if (metadataFromTargetMap) {\n var metadataFromTarget = metadataFromTargetMap.get(propertyName);\n if (metadataFromTarget) {\n return metadataFromTarget;\n }\n }\n for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) {\n var ancestor = _a[_i];\n var ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n var ancestorResult = ancestorMetadataMap.get(propertyName);\n if (ancestorResult) {\n return ancestorResult;\n }\n }\n }\n return undefined;\n };\n MetadataStorage.prototype.findMetadatas = function (metadatas, target, propertyName) {\n var metadataFromTargetMap = metadatas.get(target);\n var metadataFromTarget;\n if (metadataFromTargetMap) {\n metadataFromTarget = metadataFromTargetMap.get(propertyName);\n }\n var metadataFromAncestorsTarget = [];\n for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) {\n var ancestor = _a[_i];\n var ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n if (ancestorMetadataMap.has(propertyName)) {\n metadataFromAncestorsTarget.push.apply(metadataFromAncestorsTarget, ancestorMetadataMap.get(propertyName));\n }\n }\n }\n return metadataFromAncestorsTarget\n .slice()\n .reverse()\n .concat((metadataFromTarget || []).slice().reverse());\n };\n MetadataStorage.prototype.getAncestors = function (target) {\n if (!target)\n return [];\n if (!this._ancestorsMap.has(target)) {\n var ancestors = [];\n for (var baseClass = Object.getPrototypeOf(target.prototype.constructor); typeof baseClass.prototype !== 'undefined'; baseClass = Object.getPrototypeOf(baseClass.prototype.constructor)) {\n ancestors.push(baseClass);\n }\n this._ancestorsMap.set(target, ancestors);\n }\n return this._ancestorsMap.get(target);\n };\n return MetadataStorage;\n}());\nexport { MetadataStorage };\n//# sourceMappingURL=MetadataStorage.js.map","import { MetadataStorage } from './MetadataStorage';\n/**\n * Default metadata storage is used as singleton and can be used to storage all metadatas.\n */\nexport var defaultMetadataStorage = new MetadataStorage();\n//# sourceMappingURL=storage.js.map","/**\n * This function returns the global object across Node and browsers.\n *\n * Note: `globalThis` is the standardized approach however it has been added to\n * Node.js in version 12. We need to include this snippet until Node 12 EOL.\n */\nexport function getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n return window;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n if (typeof self !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n return self;\n }\n}\n//# sourceMappingURL=get-global.util.js.map","export function isPromise(p) {\n return p !== null && typeof p === 'object' && typeof p.then === 'function';\n}\n//# sourceMappingURL=is-promise.util.js.map","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { defaultMetadataStorage } from './storage';\nimport { TransformationType } from './enums';\nimport { getGlobal, isPromise } from './utils';\nfunction instantiateArrayType(arrayType) {\n var array = new arrayType();\n if (!(array instanceof Set) && !('push' in array)) {\n return [];\n }\n return array;\n}\nvar TransformOperationExecutor = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function TransformOperationExecutor(transformationType, options) {\n this.transformationType = transformationType;\n this.options = options;\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n this.recursionStack = new Set();\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n TransformOperationExecutor.prototype.transform = function (source, value, targetType, arrayType, isMap, level) {\n var _this = this;\n if (level === void 0) { level = 0; }\n if (Array.isArray(value) || value instanceof Set) {\n var newValue_1 = arrayType && this.transformationType === TransformationType.PLAIN_TO_CLASS\n ? instantiateArrayType(arrayType)\n : [];\n value.forEach(function (subValue, index) {\n var subSource = source ? source[index] : undefined;\n if (!_this.options.enableCircularCheck || !_this.isCircular(subValue)) {\n var realTargetType = void 0;\n if (typeof targetType !== 'function' &&\n targetType &&\n targetType.options &&\n targetType.options.discriminator &&\n targetType.options.discriminator.property &&\n targetType.options.discriminator.subTypes) {\n if (_this.transformationType === TransformationType.PLAIN_TO_CLASS) {\n realTargetType = targetType.options.discriminator.subTypes.find(function (subType) {\n return subType.name === subValue[targetType.options.discriminator.property];\n });\n var options = { newObject: newValue_1, object: subValue, property: undefined };\n var newType = targetType.typeFunction(options);\n realTargetType === undefined ? (realTargetType = newType) : (realTargetType = realTargetType.value);\n if (!targetType.options.keepDiscriminatorProperty)\n delete subValue[targetType.options.discriminator.property];\n }\n if (_this.transformationType === TransformationType.CLASS_TO_CLASS) {\n realTargetType = subValue.constructor;\n }\n if (_this.transformationType === TransformationType.CLASS_TO_PLAIN) {\n subValue[targetType.options.discriminator.property] = targetType.options.discriminator.subTypes.find(function (subType) { return subType.value === subValue.constructor; }).name;\n }\n }\n else {\n realTargetType = targetType;\n }\n var value_1 = _this.transform(subSource, subValue, realTargetType, undefined, subValue instanceof Map, level + 1);\n if (newValue_1 instanceof Set) {\n newValue_1.add(value_1);\n }\n else {\n newValue_1.push(value_1);\n }\n }\n else if (_this.transformationType === TransformationType.CLASS_TO_CLASS) {\n if (newValue_1 instanceof Set) {\n newValue_1.add(subValue);\n }\n else {\n newValue_1.push(subValue);\n }\n }\n });\n return newValue_1;\n }\n else if (targetType === String && !isMap) {\n if (value === null || value === undefined)\n return value;\n return String(value);\n }\n else if (targetType === Number && !isMap) {\n if (value === null || value === undefined)\n return value;\n return Number(value);\n }\n else if (targetType === Boolean && !isMap) {\n if (value === null || value === undefined)\n return value;\n return Boolean(value);\n }\n else if ((targetType === Date || value instanceof Date) && !isMap) {\n if (value instanceof Date) {\n return new Date(value.valueOf());\n }\n if (value === null || value === undefined)\n return value;\n return new Date(value);\n }\n else if (!!getGlobal().Buffer && (targetType === Buffer || value instanceof Buffer) && !isMap) {\n if (value === null || value === undefined)\n return value;\n return Buffer.from(value);\n }\n else if (isPromise(value) && !isMap) {\n return new Promise(function (resolve, reject) {\n value.then(function (data) { return resolve(_this.transform(undefined, data, targetType, undefined, undefined, level + 1)); }, reject);\n });\n }\n else if (!isMap && value !== null && typeof value === 'object' && typeof value.then === 'function') {\n // Note: We should not enter this, as promise has been handled above\n // This option simply returns the Promise preventing a JS error from happening and should be an inaccessible path.\n return value; // skip promise transformation\n }\n else if (typeof value === 'object' && value !== null) {\n // try to guess the type\n if (!targetType && value.constructor !== Object /* && TransformationType === TransformationType.CLASS_TO_PLAIN*/)\n if (!Array.isArray(value) && value.constructor === Array) {\n // Somebody attempts to convert special Array like object to Array, eg:\n // const evilObject = { '100000000': '100000000', __proto__: [] };\n // This could be used to cause Denial-of-service attack so we don't allow it.\n // See prevent-array-bomb.spec.ts for more details.\n }\n else {\n // We are good we can use the built-in constructor\n targetType = value.constructor;\n }\n if (!targetType && source)\n targetType = source.constructor;\n if (this.options.enableCircularCheck) {\n // add transformed type to prevent circular references\n this.recursionStack.add(value);\n }\n var keys = this.getKeys(targetType, value, isMap);\n var newValue = source ? source : {};\n if (!source &&\n (this.transformationType === TransformationType.PLAIN_TO_CLASS ||\n this.transformationType === TransformationType.CLASS_TO_CLASS)) {\n if (isMap) {\n newValue = new Map();\n }\n else if (targetType) {\n newValue = new targetType();\n }\n else {\n newValue = {};\n }\n }\n var _loop_1 = function (key) {\n if (key === '__proto__' || key === 'constructor') {\n return \"continue\";\n }\n var valueKey = key;\n var newValueKey = key, propertyName = key;\n if (!this_1.options.ignoreDecorators && targetType) {\n if (this_1.transformationType === TransformationType.PLAIN_TO_CLASS) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadataByCustomName(targetType, key);\n if (exposeMetadata) {\n propertyName = exposeMetadata.propertyName;\n newValueKey = exposeMetadata.propertyName;\n }\n }\n else if (this_1.transformationType === TransformationType.CLASS_TO_PLAIN ||\n this_1.transformationType === TransformationType.CLASS_TO_CLASS) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadata(targetType, key);\n if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) {\n newValueKey = exposeMetadata.options.name;\n }\n }\n }\n // get a subvalue\n var subValue = undefined;\n if (this_1.transformationType === TransformationType.PLAIN_TO_CLASS) {\n /**\n * This section is added for the following report:\n * https://github.com/typestack/class-transformer/issues/596\n *\n * We should not call functions or constructors when transforming to class.\n */\n subValue = value[valueKey];\n }\n else {\n if (value instanceof Map) {\n subValue = value.get(valueKey);\n }\n else if (value[valueKey] instanceof Function) {\n subValue = value[valueKey]();\n }\n else {\n subValue = value[valueKey];\n }\n }\n // determine a type\n var type = undefined, isSubValueMap = subValue instanceof Map;\n if (targetType && isMap) {\n type = targetType;\n }\n else if (targetType) {\n var metadata_1 = defaultMetadataStorage.findTypeMetadata(targetType, propertyName);\n if (metadata_1) {\n var options = { newObject: newValue, object: value, property: propertyName };\n var newType = metadata_1.typeFunction ? metadata_1.typeFunction(options) : metadata_1.reflectedType;\n if (metadata_1.options &&\n metadata_1.options.discriminator &&\n metadata_1.options.discriminator.property &&\n metadata_1.options.discriminator.subTypes) {\n if (!(value[valueKey] instanceof Array)) {\n if (this_1.transformationType === TransformationType.PLAIN_TO_CLASS) {\n type = metadata_1.options.discriminator.subTypes.find(function (subType) {\n if (subValue && subValue instanceof Object && metadata_1.options.discriminator.property in subValue) {\n return subType.name === subValue[metadata_1.options.discriminator.property];\n }\n });\n type === undefined ? (type = newType) : (type = type.value);\n if (!metadata_1.options.keepDiscriminatorProperty) {\n if (subValue && subValue instanceof Object && metadata_1.options.discriminator.property in subValue) {\n delete subValue[metadata_1.options.discriminator.property];\n }\n }\n }\n if (this_1.transformationType === TransformationType.CLASS_TO_CLASS) {\n type = subValue.constructor;\n }\n if (this_1.transformationType === TransformationType.CLASS_TO_PLAIN) {\n if (subValue) {\n subValue[metadata_1.options.discriminator.property] = metadata_1.options.discriminator.subTypes.find(function (subType) { return subType.value === subValue.constructor; }).name;\n }\n }\n }\n else {\n type = metadata_1;\n }\n }\n else {\n type = newType;\n }\n isSubValueMap = isSubValueMap || metadata_1.reflectedType === Map;\n }\n else if (this_1.options.targetMaps) {\n // try to find a type in target maps\n this_1.options.targetMaps\n .filter(function (map) { return map.target === targetType && !!map.properties[propertyName]; })\n .forEach(function (map) { return (type = map.properties[propertyName]); });\n }\n else if (this_1.options.enableImplicitConversion &&\n this_1.transformationType === TransformationType.PLAIN_TO_CLASS) {\n // if we have no registererd type via the @Type() decorator then we check if we have any\n // type declarations in reflect-metadata (type declaration is emited only if some decorator is added to the property.)\n var reflectedType = Reflect.getMetadata('design:type', targetType.prototype, propertyName);\n if (reflectedType) {\n type = reflectedType;\n }\n }\n }\n // if value is an array try to get its custom array type\n var arrayType_1 = Array.isArray(value[valueKey])\n ? this_1.getReflectedType(targetType, propertyName)\n : undefined;\n // const subValueKey = TransformationType === TransformationType.PLAIN_TO_CLASS && newKeyName ? newKeyName : key;\n var subSource = source ? source[valueKey] : undefined;\n // if its deserialization then type if required\n // if we uncomment this types like string[] will not work\n // if (this.transformationType === TransformationType.PLAIN_TO_CLASS && !type && subValue instanceof Object && !(subValue instanceof Date))\n // throw new Error(`Cannot determine type for ${(targetType as any).name }.${propertyName}, did you forget to specify a @Type?`);\n // if newValue is a source object that has method that match newKeyName then skip it\n if (newValue.constructor.prototype) {\n var descriptor = Object.getOwnPropertyDescriptor(newValue.constructor.prototype, newValueKey);\n if ((this_1.transformationType === TransformationType.PLAIN_TO_CLASS ||\n this_1.transformationType === TransformationType.CLASS_TO_CLASS) &&\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ((descriptor && !descriptor.set) || newValue[newValueKey] instanceof Function))\n return \"continue\";\n }\n if (!this_1.options.enableCircularCheck || !this_1.isCircular(subValue)) {\n var transformKey = this_1.transformationType === TransformationType.PLAIN_TO_CLASS ? newValueKey : key;\n var finalValue = void 0;\n if (this_1.transformationType === TransformationType.CLASS_TO_PLAIN) {\n // Get original value\n finalValue = value[transformKey];\n // Apply custom transformation\n finalValue = this_1.applyCustomTransformations(finalValue, targetType, transformKey, value, this_1.transformationType);\n // If nothing change, it means no custom transformation was applied, so use the subValue.\n finalValue = value[transformKey] === finalValue ? subValue : finalValue;\n // Apply the default transformation\n finalValue = this_1.transform(subSource, finalValue, type, arrayType_1, isSubValueMap, level + 1);\n }\n else {\n if (subValue === undefined && this_1.options.exposeDefaultValues) {\n // Set default value if nothing provided\n finalValue = newValue[newValueKey];\n }\n else {\n finalValue = this_1.transform(subSource, subValue, type, arrayType_1, isSubValueMap, level + 1);\n finalValue = this_1.applyCustomTransformations(finalValue, targetType, transformKey, value, this_1.transformationType);\n }\n }\n if (finalValue !== undefined || this_1.options.exposeUnsetFields) {\n if (newValue instanceof Map) {\n newValue.set(newValueKey, finalValue);\n }\n else {\n newValue[newValueKey] = finalValue;\n }\n }\n }\n else if (this_1.transformationType === TransformationType.CLASS_TO_CLASS) {\n var finalValue = subValue;\n finalValue = this_1.applyCustomTransformations(finalValue, targetType, key, value, this_1.transformationType);\n if (finalValue !== undefined || this_1.options.exposeUnsetFields) {\n if (newValue instanceof Map) {\n newValue.set(newValueKey, finalValue);\n }\n else {\n newValue[newValueKey] = finalValue;\n }\n }\n }\n };\n var this_1 = this;\n // traverse over keys\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n _loop_1(key);\n }\n if (this.options.enableCircularCheck) {\n this.recursionStack.delete(value);\n }\n return newValue;\n }\n else {\n return value;\n }\n };\n TransformOperationExecutor.prototype.applyCustomTransformations = function (value, target, key, obj, transformationType) {\n var _this = this;\n var metadatas = defaultMetadataStorage.findTransformMetadatas(target, key, this.transformationType);\n // apply versioning options\n if (this.options.version !== undefined) {\n metadatas = metadatas.filter(function (metadata) {\n if (!metadata.options)\n return true;\n return _this.checkVersion(metadata.options.since, metadata.options.until);\n });\n }\n // apply grouping options\n if (this.options.groups && this.options.groups.length) {\n metadatas = metadatas.filter(function (metadata) {\n if (!metadata.options)\n return true;\n return _this.checkGroups(metadata.options.groups);\n });\n }\n else {\n metadatas = metadatas.filter(function (metadata) {\n return !metadata.options || !metadata.options.groups || !metadata.options.groups.length;\n });\n }\n metadatas.forEach(function (metadata) {\n value = metadata.transformFn({ value: value, key: key, obj: obj, type: transformationType, options: _this.options });\n });\n return value;\n };\n // preventing circular references\n TransformOperationExecutor.prototype.isCircular = function (object) {\n return this.recursionStack.has(object);\n };\n TransformOperationExecutor.prototype.getReflectedType = function (target, propertyName) {\n if (!target)\n return undefined;\n var meta = defaultMetadataStorage.findTypeMetadata(target, propertyName);\n return meta ? meta.reflectedType : undefined;\n };\n TransformOperationExecutor.prototype.getKeys = function (target, object, isMap) {\n var _this = this;\n // determine exclusion strategy\n var strategy = defaultMetadataStorage.getStrategy(target);\n if (strategy === 'none')\n strategy = this.options.strategy || 'exposeAll'; // exposeAll is default strategy\n // get all keys that need to expose\n var keys = [];\n if (strategy === 'exposeAll' || isMap) {\n if (object instanceof Map) {\n keys = Array.from(object.keys());\n }\n else {\n keys = Object.keys(object);\n }\n }\n if (isMap) {\n // expose & exclude do not apply for map keys only to fields\n return keys;\n }\n /**\n * If decorators are ignored but we don't want the extraneous values, then we use the\n * metadata to decide which property is needed, but doesn't apply the decorator effect.\n */\n if (this.options.ignoreDecorators && this.options.excludeExtraneousValues && target) {\n var exposedProperties = defaultMetadataStorage.getExposedProperties(target, this.transformationType);\n var excludedProperties = defaultMetadataStorage.getExcludedProperties(target, this.transformationType);\n keys = __spreadArray(__spreadArray([], exposedProperties, true), excludedProperties, true);\n }\n if (!this.options.ignoreDecorators && target) {\n // add all exposed to list of keys\n var exposedProperties = defaultMetadataStorage.getExposedProperties(target, this.transformationType);\n if (this.transformationType === TransformationType.PLAIN_TO_CLASS) {\n exposedProperties = exposedProperties.map(function (key) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) {\n return exposeMetadata.options.name;\n }\n return key;\n });\n }\n if (this.options.excludeExtraneousValues) {\n keys = exposedProperties;\n }\n else {\n keys = keys.concat(exposedProperties);\n }\n // exclude excluded properties\n var excludedProperties_1 = defaultMetadataStorage.getExcludedProperties(target, this.transformationType);\n if (excludedProperties_1.length > 0) {\n keys = keys.filter(function (key) {\n return !excludedProperties_1.includes(key);\n });\n }\n // apply versioning options\n if (this.options.version !== undefined) {\n keys = keys.filter(function (key) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n if (!exposeMetadata || !exposeMetadata.options)\n return true;\n return _this.checkVersion(exposeMetadata.options.since, exposeMetadata.options.until);\n });\n }\n // apply grouping options\n if (this.options.groups && this.options.groups.length) {\n keys = keys.filter(function (key) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n if (!exposeMetadata || !exposeMetadata.options)\n return true;\n return _this.checkGroups(exposeMetadata.options.groups);\n });\n }\n else {\n keys = keys.filter(function (key) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n return (!exposeMetadata ||\n !exposeMetadata.options ||\n !exposeMetadata.options.groups ||\n !exposeMetadata.options.groups.length);\n });\n }\n }\n // exclude prefixed properties\n if (this.options.excludePrefixes && this.options.excludePrefixes.length) {\n keys = keys.filter(function (key) {\n return _this.options.excludePrefixes.every(function (prefix) {\n return key.substr(0, prefix.length) !== prefix;\n });\n });\n }\n // make sure we have unique keys\n keys = keys.filter(function (key, index, self) {\n return self.indexOf(key) === index;\n });\n return keys;\n };\n TransformOperationExecutor.prototype.checkVersion = function (since, until) {\n var decision = true;\n if (decision && since)\n decision = this.options.version >= since;\n if (decision && until)\n decision = this.options.version < until;\n return decision;\n };\n TransformOperationExecutor.prototype.checkGroups = function (groups) {\n if (!groups)\n return true;\n return this.options.groups.some(function (optionGroup) { return groups.includes(optionGroup); });\n };\n return TransformOperationExecutor;\n}());\nexport { TransformOperationExecutor };\n//# sourceMappingURL=TransformOperationExecutor.js.map","/**\n * These are the default options used by any transformation operation.\n */\nexport var defaultOptions = {\n enableCircularCheck: false,\n enableImplicitConversion: false,\n excludeExtraneousValues: false,\n excludePrefixes: undefined,\n exposeDefaultValues: false,\n exposeUnsetFields: true,\n groups: undefined,\n ignoreDecorators: false,\n strategy: undefined,\n targetMaps: undefined,\n version: undefined,\n};\n//# sourceMappingURL=default-options.constant.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { TransformOperationExecutor } from './TransformOperationExecutor';\nimport { TransformationType } from './enums';\nimport { defaultOptions } from './constants/default-options.constant';\nvar ClassTransformer = /** @class */ (function () {\n function ClassTransformer() {\n }\n ClassTransformer.prototype.instanceToPlain = function (object, options) {\n var executor = new TransformOperationExecutor(TransformationType.CLASS_TO_PLAIN, __assign(__assign({}, defaultOptions), options));\n return executor.transform(undefined, object, undefined, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.classToPlainFromExist = function (object, plainObject, options) {\n var executor = new TransformOperationExecutor(TransformationType.CLASS_TO_PLAIN, __assign(__assign({}, defaultOptions), options));\n return executor.transform(plainObject, object, undefined, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.plainToInstance = function (cls, plain, options) {\n var executor = new TransformOperationExecutor(TransformationType.PLAIN_TO_CLASS, __assign(__assign({}, defaultOptions), options));\n return executor.transform(undefined, plain, cls, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.plainToClassFromExist = function (clsObject, plain, options) {\n var executor = new TransformOperationExecutor(TransformationType.PLAIN_TO_CLASS, __assign(__assign({}, defaultOptions), options));\n return executor.transform(clsObject, plain, undefined, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.instanceToInstance = function (object, options) {\n var executor = new TransformOperationExecutor(TransformationType.CLASS_TO_CLASS, __assign(__assign({}, defaultOptions), options));\n return executor.transform(undefined, object, undefined, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.classToClassFromExist = function (object, fromObject, options) {\n var executor = new TransformOperationExecutor(TransformationType.CLASS_TO_CLASS, __assign(__assign({}, defaultOptions), options));\n return executor.transform(fromObject, object, undefined, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.serialize = function (object, options) {\n return JSON.stringify(this.instanceToPlain(object, options));\n };\n /**\n * Deserializes given JSON string to a object of the given class.\n */\n ClassTransformer.prototype.deserialize = function (cls, json, options) {\n var jsonObject = JSON.parse(json);\n return this.plainToInstance(cls, jsonObject, options);\n };\n /**\n * Deserializes given JSON string to an array of objects of the given class.\n */\n ClassTransformer.prototype.deserializeArray = function (cls, json, options) {\n var jsonObject = JSON.parse(json);\n return this.plainToInstance(cls, jsonObject, options);\n };\n return ClassTransformer;\n}());\nexport { ClassTransformer };\n//# sourceMappingURL=ClassTransformer.js.map","import { defaultMetadataStorage } from '../storage';\n/**\n * Marks the given class or property as included. By default the property is included in both\n * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction\n * via using the `toPlainOnly` or `toClassOnly` option.\n *\n * Can be applied to class definitions and properties.\n */\nexport function Expose(options) {\n if (options === void 0) { options = {}; }\n /**\n * NOTE: The `propertyName` property must be marked as optional because\n * this decorator used both as a class and a property decorator and the\n * Typescript compiler will freak out if we make it mandatory as a class\n * decorator only receives one parameter.\n */\n return function (object, propertyName) {\n defaultMetadataStorage.addExposeMetadata({\n target: object instanceof Function ? object : object.constructor,\n propertyName: propertyName,\n options: options,\n });\n };\n}\n//# sourceMappingURL=expose.decorator.js.map","import { defaultMetadataStorage } from '../storage';\n/**\n * Defines a custom logic for value transformation.\n *\n * Can be applied to properties only.\n */\nexport function Transform(transformFn, options) {\n if (options === void 0) { options = {}; }\n return function (target, propertyName) {\n defaultMetadataStorage.addTransformMetadata({\n target: target.constructor,\n propertyName: propertyName,\n transformFn: transformFn,\n options: options,\n });\n };\n}\n//# sourceMappingURL=transform.decorator.js.map","import { ClassTransformer } from './ClassTransformer';\nexport { ClassTransformer } from './ClassTransformer';\nexport * from './decorators';\nexport * from './interfaces';\nexport * from './enums';\nvar classTransformer = new ClassTransformer();\nexport function classToPlain(object, options) {\n return classTransformer.instanceToPlain(object, options);\n}\nexport function instanceToPlain(object, options) {\n return classTransformer.instanceToPlain(object, options);\n}\nexport function classToPlainFromExist(object, plainObject, options) {\n return classTransformer.classToPlainFromExist(object, plainObject, options);\n}\nexport function plainToClass(cls, plain, options) {\n return classTransformer.plainToInstance(cls, plain, options);\n}\nexport function plainToInstance(cls, plain, options) {\n return classTransformer.plainToInstance(cls, plain, options);\n}\nexport function plainToClassFromExist(clsObject, plain, options) {\n return classTransformer.plainToClassFromExist(clsObject, plain, options);\n}\nexport function instanceToInstance(object, options) {\n return classTransformer.instanceToInstance(object, options);\n}\nexport function classToClassFromExist(object, fromObject, options) {\n return classTransformer.classToClassFromExist(object, fromObject, options);\n}\nexport function serialize(object, options) {\n return classTransformer.serialize(object, options);\n}\n/**\n * Deserializes given JSON string to a object of the given class.\n *\n * @deprecated This function is being removed. Please use the following instead:\n * ```\n * instanceToClass(cls, JSON.parse(json), options)\n * ```\n */\nexport function deserialize(cls, json, options) {\n return classTransformer.deserialize(cls, json, options);\n}\n/**\n * Deserializes given JSON string to an array of objects of the given class.\n *\n * @deprecated This function is being removed. Please use the following instead:\n * ```\n * JSON.parse(json).map(value => instanceToClass(cls, value, options))\n * ```\n *\n */\nexport function deserializeArray(cls, json, options) {\n return classTransformer.deserializeArray(cls, json, options);\n}\n//# sourceMappingURL=index.js.map","/*! *****************************************************************************\nCopyright (C) Microsoft. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\nvar Reflect;\n(function (Reflect) {\n // Metadata Proposal\n // https://rbuckton.github.io/reflect-metadata/\n (function (factory) {\n var root = typeof global === \"object\" ? global :\n typeof self === \"object\" ? self :\n typeof this === \"object\" ? this :\n Function(\"return this;\")();\n var exporter = makeExporter(Reflect);\n if (typeof root.Reflect === \"undefined\") {\n root.Reflect = Reflect;\n }\n else {\n exporter = makeExporter(root.Reflect, exporter);\n }\n factory(exporter);\n function makeExporter(target, previous) {\n return function (key, value) {\n if (typeof target[key] !== \"function\") {\n Object.defineProperty(target, key, { configurable: true, writable: true, value: value });\n }\n if (previous)\n previous(key, value);\n };\n }\n })(function (exporter) {\n var hasOwn = Object.prototype.hasOwnProperty;\n // feature test for Symbol support\n var supportsSymbol = typeof Symbol === \"function\";\n var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== \"undefined\" ? Symbol.toPrimitive : \"@@toPrimitive\";\n var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== \"undefined\" ? Symbol.iterator : \"@@iterator\";\n var supportsCreate = typeof Object.create === \"function\"; // feature test for Object.create support\n var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support\n var downLevel = !supportsCreate && !supportsProto;\n var HashMap = {\n // create an object in dictionary mode (a.k.a. \"slow\" mode in v8)\n create: supportsCreate\n ? function () { return MakeDictionary(Object.create(null)); }\n : supportsProto\n ? function () { return MakeDictionary({ __proto__: null }); }\n : function () { return MakeDictionary({}); },\n has: downLevel\n ? function (map, key) { return hasOwn.call(map, key); }\n : function (map, key) { return key in map; },\n get: downLevel\n ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; }\n : function (map, key) { return map[key]; },\n };\n // Load global or shim versions of Map, Set, and WeakMap\n var functionPrototype = Object.getPrototypeOf(Function);\n var usePolyfill = typeof process === \"object\" && process.env && process.env[\"REFLECT_METADATA_USE_MAP_POLYFILL\"] === \"true\";\n var _Map = !usePolyfill && typeof Map === \"function\" && typeof Map.prototype.entries === \"function\" ? Map : CreateMapPolyfill();\n var _Set = !usePolyfill && typeof Set === \"function\" && typeof Set.prototype.entries === \"function\" ? Set : CreateSetPolyfill();\n var _WeakMap = !usePolyfill && typeof WeakMap === \"function\" ? WeakMap : CreateWeakMapPolyfill();\n // [[Metadata]] internal slot\n // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots\n var Metadata = new _WeakMap();\n /**\n * Applies a set of decorators to a property of a target object.\n * @param decorators An array of decorators.\n * @param target The target object.\n * @param propertyKey (Optional) The property key to decorate.\n * @param attributes (Optional) The property descriptor for the target key.\n * @remarks Decorators are applied in reverse order.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Example = Reflect.decorate(decoratorsArray, Example);\n *\n * // property (on constructor)\n * Reflect.decorate(decoratorsArray, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.decorate(decoratorsArray, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Object.defineProperty(Example, \"staticMethod\",\n * Reflect.decorate(decoratorsArray, Example, \"staticMethod\",\n * Object.getOwnPropertyDescriptor(Example, \"staticMethod\")));\n *\n * // method (on prototype)\n * Object.defineProperty(Example.prototype, \"method\",\n * Reflect.decorate(decoratorsArray, Example.prototype, \"method\",\n * Object.getOwnPropertyDescriptor(Example.prototype, \"method\")));\n *\n */\n function decorate(decorators, target, propertyKey, attributes) {\n if (!IsUndefined(propertyKey)) {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsObject(target))\n throw new TypeError();\n if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))\n throw new TypeError();\n if (IsNull(attributes))\n attributes = undefined;\n propertyKey = ToPropertyKey(propertyKey);\n return DecorateProperty(decorators, target, propertyKey, attributes);\n }\n else {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsConstructor(target))\n throw new TypeError();\n return DecorateConstructor(decorators, target);\n }\n }\n exporter(\"decorate\", decorate);\n // 4.1.2 Reflect.metadata(metadataKey, metadataValue)\n // https://rbuckton.github.io/reflect-metadata/#reflect.metadata\n /**\n * A default metadata decorator factory that can be used on a class, class member, or parameter.\n * @param metadataKey The key for the metadata entry.\n * @param metadataValue The value for the metadata entry.\n * @returns A decorator function.\n * @remarks\n * If `metadataKey` is already defined for the target and target key, the\n * metadataValue for that key will be overwritten.\n * @example\n *\n * // constructor\n * @Reflect.metadata(key, value)\n * class Example {\n * }\n *\n * // property (on constructor, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticProperty;\n * }\n *\n * // property (on prototype, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * property;\n * }\n *\n * // method (on constructor)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticMethod() { }\n * }\n *\n * // method (on prototype)\n * class Example {\n * @Reflect.metadata(key, value)\n * method() { }\n * }\n *\n */\n function metadata(metadataKey, metadataValue) {\n function decorator(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))\n throw new TypeError();\n OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n return decorator;\n }\n exporter(\"metadata\", metadata);\n /**\n * Define a unique metadata entry on the target.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param metadataValue A value that contains attached metadata.\n * @param target The target object on which to define metadata.\n * @param propertyKey (Optional) The property key for the target.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Reflect.defineMetadata(\"custom:annotation\", options, Example);\n *\n * // property (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticMethod\");\n *\n * // method (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"method\");\n *\n * // decorator factory as metadata-producing annotation.\n * function MyAnnotation(options): Decorator {\n * return (target, key?) => Reflect.defineMetadata(\"custom:annotation\", options, target, key);\n * }\n *\n */\n function defineMetadata(metadataKey, metadataValue, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n exporter(\"defineMetadata\", defineMetadata);\n /**\n * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasMetadata\", hasMetadata);\n /**\n * Gets a value indicating whether the target object has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasOwnMetadata\", hasOwnMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object or its prototype chain.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getMetadata\", getMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getOwnMetadata\", getOwnMetadata);\n /**\n * Gets the metadata keys defined on the target object or its prototype chain.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryMetadataKeys(target, propertyKey);\n }\n exporter(\"getMetadataKeys\", getMetadataKeys);\n /**\n * Gets the unique metadata keys defined on the target object.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getOwnMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryOwnMetadataKeys(target, propertyKey);\n }\n exporter(\"getOwnMetadataKeys\", getOwnMetadataKeys);\n /**\n * Deletes the metadata entry from the target object with the provided key.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata entry was found and deleted; otherwise, false.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function deleteMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n var metadataMap = GetOrCreateMetadataMap(target, propertyKey, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n if (!metadataMap.delete(metadataKey))\n return false;\n if (metadataMap.size > 0)\n return true;\n var targetMetadata = Metadata.get(target);\n targetMetadata.delete(propertyKey);\n if (targetMetadata.size > 0)\n return true;\n Metadata.delete(target);\n return true;\n }\n exporter(\"deleteMetadata\", deleteMetadata);\n function DecorateConstructor(decorators, target) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsConstructor(decorated))\n throw new TypeError();\n target = decorated;\n }\n }\n return target;\n }\n function DecorateProperty(decorators, target, propertyKey, descriptor) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target, propertyKey, descriptor);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsObject(decorated))\n throw new TypeError();\n descriptor = decorated;\n }\n }\n return descriptor;\n }\n function GetOrCreateMetadataMap(O, P, Create) {\n var targetMetadata = Metadata.get(O);\n if (IsUndefined(targetMetadata)) {\n if (!Create)\n return undefined;\n targetMetadata = new _Map();\n Metadata.set(O, targetMetadata);\n }\n var metadataMap = targetMetadata.get(P);\n if (IsUndefined(metadataMap)) {\n if (!Create)\n return undefined;\n metadataMap = new _Map();\n targetMetadata.set(P, metadataMap);\n }\n return metadataMap;\n }\n // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata\n function OrdinaryHasMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return true;\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryHasMetadata(MetadataKey, parent, P);\n return false;\n }\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n return ToBoolean(metadataMap.has(MetadataKey));\n }\n // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata\n function OrdinaryGetMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return OrdinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryGetMetadata(MetadataKey, parent, P);\n return undefined;\n }\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return undefined;\n return metadataMap.get(MetadataKey);\n }\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);\n metadataMap.set(MetadataKey, MetadataValue);\n }\n // 3.1.6.1 OrdinaryMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys\n function OrdinaryMetadataKeys(O, P) {\n var ownKeys = OrdinaryOwnMetadataKeys(O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (parent === null)\n return ownKeys;\n var parentKeys = OrdinaryMetadataKeys(parent, P);\n if (parentKeys.length <= 0)\n return ownKeys;\n if (ownKeys.length <= 0)\n return parentKeys;\n var set = new _Set();\n var keys = [];\n for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {\n var key = ownKeys_1[_i];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {\n var key = parentKeys_1[_a];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n return keys;\n }\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\n function OrdinaryOwnMetadataKeys(O, P) {\n var keys = [];\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return keys;\n var keysObj = metadataMap.keys();\n var iterator = GetIterator(keysObj);\n var k = 0;\n while (true) {\n var next = IteratorStep(iterator);\n if (!next) {\n keys.length = k;\n return keys;\n }\n var nextValue = IteratorValue(next);\n try {\n keys[k] = nextValue;\n }\n catch (e) {\n try {\n IteratorClose(iterator);\n }\n finally {\n throw e;\n }\n }\n k++;\n }\n }\n // 6 ECMAScript Data Typ0es and Values\n // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values\n function Type(x) {\n if (x === null)\n return 1 /* Null */;\n switch (typeof x) {\n case \"undefined\": return 0 /* Undefined */;\n case \"boolean\": return 2 /* Boolean */;\n case \"string\": return 3 /* String */;\n case \"symbol\": return 4 /* Symbol */;\n case \"number\": return 5 /* Number */;\n case \"object\": return x === null ? 1 /* Null */ : 6 /* Object */;\n default: return 6 /* Object */;\n }\n }\n // 6.1.1 The Undefined Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type\n function IsUndefined(x) {\n return x === undefined;\n }\n // 6.1.2 The Null Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type\n function IsNull(x) {\n return x === null;\n }\n // 6.1.5 The Symbol Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type\n function IsSymbol(x) {\n return typeof x === \"symbol\";\n }\n // 6.1.7 The Object Type\n // https://tc39.github.io/ecma262/#sec-object-type\n function IsObject(x) {\n return typeof x === \"object\" ? x !== null : typeof x === \"function\";\n }\n // 7.1 Type Conversion\n // https://tc39.github.io/ecma262/#sec-type-conversion\n // 7.1.1 ToPrimitive(input [, PreferredType])\n // https://tc39.github.io/ecma262/#sec-toprimitive\n function ToPrimitive(input, PreferredType) {\n switch (Type(input)) {\n case 0 /* Undefined */: return input;\n case 1 /* Null */: return input;\n case 2 /* Boolean */: return input;\n case 3 /* String */: return input;\n case 4 /* Symbol */: return input;\n case 5 /* Number */: return input;\n }\n var hint = PreferredType === 3 /* String */ ? \"string\" : PreferredType === 5 /* Number */ ? \"number\" : \"default\";\n var exoticToPrim = GetMethod(input, toPrimitiveSymbol);\n if (exoticToPrim !== undefined) {\n var result = exoticToPrim.call(input, hint);\n if (IsObject(result))\n throw new TypeError();\n return result;\n }\n return OrdinaryToPrimitive(input, hint === \"default\" ? \"number\" : hint);\n }\n // 7.1.1.1 OrdinaryToPrimitive(O, hint)\n // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive\n function OrdinaryToPrimitive(O, hint) {\n if (hint === \"string\") {\n var toString_1 = O.toString;\n if (IsCallable(toString_1)) {\n var result = toString_1.call(O);\n if (!IsObject(result))\n return result;\n }\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n else {\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n var toString_2 = O.toString;\n if (IsCallable(toString_2)) {\n var result = toString_2.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n throw new TypeError();\n }\n // 7.1.2 ToBoolean(argument)\n // https://tc39.github.io/ecma262/2016/#sec-toboolean\n function ToBoolean(argument) {\n return !!argument;\n }\n // 7.1.12 ToString(argument)\n // https://tc39.github.io/ecma262/#sec-tostring\n function ToString(argument) {\n return \"\" + argument;\n }\n // 7.1.14 ToPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-topropertykey\n function ToPropertyKey(argument) {\n var key = ToPrimitive(argument, 3 /* String */);\n if (IsSymbol(key))\n return key;\n return ToString(key);\n }\n // 7.2 Testing and Comparison Operations\n // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations\n // 7.2.2 IsArray(argument)\n // https://tc39.github.io/ecma262/#sec-isarray\n function IsArray(argument) {\n return Array.isArray\n ? Array.isArray(argument)\n : argument instanceof Object\n ? argument instanceof Array\n : Object.prototype.toString.call(argument) === \"[object Array]\";\n }\n // 7.2.3 IsCallable(argument)\n // https://tc39.github.io/ecma262/#sec-iscallable\n function IsCallable(argument) {\n // NOTE: This is an approximation as we cannot check for [[Call]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.4 IsConstructor(argument)\n // https://tc39.github.io/ecma262/#sec-isconstructor\n function IsConstructor(argument) {\n // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.7 IsPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-ispropertykey\n function IsPropertyKey(argument) {\n switch (Type(argument)) {\n case 3 /* String */: return true;\n case 4 /* Symbol */: return true;\n default: return false;\n }\n }\n // 7.3 Operations on Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-objects\n // 7.3.9 GetMethod(V, P)\n // https://tc39.github.io/ecma262/#sec-getmethod\n function GetMethod(V, P) {\n var func = V[P];\n if (func === undefined || func === null)\n return undefined;\n if (!IsCallable(func))\n throw new TypeError();\n return func;\n }\n // 7.4 Operations on Iterator Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects\n function GetIterator(obj) {\n var method = GetMethod(obj, iteratorSymbol);\n if (!IsCallable(method))\n throw new TypeError(); // from Call\n var iterator = method.call(obj);\n if (!IsObject(iterator))\n throw new TypeError();\n return iterator;\n }\n // 7.4.4 IteratorValue(iterResult)\n // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue\n function IteratorValue(iterResult) {\n return iterResult.value;\n }\n // 7.4.5 IteratorStep(iterator)\n // https://tc39.github.io/ecma262/#sec-iteratorstep\n function IteratorStep(iterator) {\n var result = iterator.next();\n return result.done ? false : result;\n }\n // 7.4.6 IteratorClose(iterator, completion)\n // https://tc39.github.io/ecma262/#sec-iteratorclose\n function IteratorClose(iterator) {\n var f = iterator[\"return\"];\n if (f)\n f.call(iterator);\n }\n // 9.1 Ordinary Object Internal Methods and Internal Slots\n // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots\n // 9.1.1.1 OrdinaryGetPrototypeOf(O)\n // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof\n function OrdinaryGetPrototypeOf(O) {\n var proto = Object.getPrototypeOf(O);\n if (typeof O !== \"function\" || O === functionPrototype)\n return proto;\n // TypeScript doesn't set __proto__ in ES5, as it's non-standard.\n // Try to determine the superclass constructor. Compatible implementations\n // must either set __proto__ on a subclass constructor to the superclass constructor,\n // or ensure each class has a valid `constructor` property on its prototype that\n // points back to the constructor.\n // If this is not the same as Function.[[Prototype]], then this is definately inherited.\n // This is the case when in ES6 or when using __proto__ in a compatible browser.\n if (proto !== functionPrototype)\n return proto;\n // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.\n var prototype = O.prototype;\n var prototypeProto = prototype && Object.getPrototypeOf(prototype);\n if (prototypeProto == null || prototypeProto === Object.prototype)\n return proto;\n // If the constructor was not a function, then we cannot determine the heritage.\n var constructor = prototypeProto.constructor;\n if (typeof constructor !== \"function\")\n return proto;\n // If we have some kind of self-reference, then we cannot determine the heritage.\n if (constructor === O)\n return proto;\n // we have a pretty good guess at the heritage.\n return constructor;\n }\n // naive Map shim\n function CreateMapPolyfill() {\n var cacheSentinel = {};\n var arraySentinel = [];\n var MapIterator = /** @class */ (function () {\n function MapIterator(keys, values, selector) {\n this._index = 0;\n this._keys = keys;\n this._values = values;\n this._selector = selector;\n }\n MapIterator.prototype[\"@@iterator\"] = function () { return this; };\n MapIterator.prototype[iteratorSymbol] = function () { return this; };\n MapIterator.prototype.next = function () {\n var index = this._index;\n if (index >= 0 && index < this._keys.length) {\n var result = this._selector(this._keys[index], this._values[index]);\n if (index + 1 >= this._keys.length) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n else {\n this._index++;\n }\n return { value: result, done: false };\n }\n return { value: undefined, done: true };\n };\n MapIterator.prototype.throw = function (error) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n throw error;\n };\n MapIterator.prototype.return = function (value) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n return { value: value, done: true };\n };\n return MapIterator;\n }());\n return /** @class */ (function () {\n function Map() {\n this._keys = [];\n this._values = [];\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n Object.defineProperty(Map.prototype, \"size\", {\n get: function () { return this._keys.length; },\n enumerable: true,\n configurable: true\n });\n Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; };\n Map.prototype.get = function (key) {\n var index = this._find(key, /*insert*/ false);\n return index >= 0 ? this._values[index] : undefined;\n };\n Map.prototype.set = function (key, value) {\n var index = this._find(key, /*insert*/ true);\n this._values[index] = value;\n return this;\n };\n Map.prototype.delete = function (key) {\n var index = this._find(key, /*insert*/ false);\n if (index >= 0) {\n var size = this._keys.length;\n for (var i = index + 1; i < size; i++) {\n this._keys[i - 1] = this._keys[i];\n this._values[i - 1] = this._values[i];\n }\n this._keys.length--;\n this._values.length--;\n if (key === this._cacheKey) {\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n return true;\n }\n return false;\n };\n Map.prototype.clear = function () {\n this._keys.length = 0;\n this._values.length = 0;\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n };\n Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); };\n Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); };\n Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); };\n Map.prototype[\"@@iterator\"] = function () { return this.entries(); };\n Map.prototype[iteratorSymbol] = function () { return this.entries(); };\n Map.prototype._find = function (key, insert) {\n if (this._cacheKey !== key) {\n this._cacheIndex = this._keys.indexOf(this._cacheKey = key);\n }\n if (this._cacheIndex < 0 && insert) {\n this._cacheIndex = this._keys.length;\n this._keys.push(key);\n this._values.push(undefined);\n }\n return this._cacheIndex;\n };\n return Map;\n }());\n function getKey(key, _) {\n return key;\n }\n function getValue(_, value) {\n return value;\n }\n function getEntry(key, value) {\n return [key, value];\n }\n }\n // naive Set shim\n function CreateSetPolyfill() {\n return /** @class */ (function () {\n function Set() {\n this._map = new _Map();\n }\n Object.defineProperty(Set.prototype, \"size\", {\n get: function () { return this._map.size; },\n enumerable: true,\n configurable: true\n });\n Set.prototype.has = function (value) { return this._map.has(value); };\n Set.prototype.add = function (value) { return this._map.set(value, value), this; };\n Set.prototype.delete = function (value) { return this._map.delete(value); };\n Set.prototype.clear = function () { this._map.clear(); };\n Set.prototype.keys = function () { return this._map.keys(); };\n Set.prototype.values = function () { return this._map.values(); };\n Set.prototype.entries = function () { return this._map.entries(); };\n Set.prototype[\"@@iterator\"] = function () { return this.keys(); };\n Set.prototype[iteratorSymbol] = function () { return this.keys(); };\n return Set;\n }());\n }\n // naive WeakMap shim\n function CreateWeakMapPolyfill() {\n var UUID_SIZE = 16;\n var keys = HashMap.create();\n var rootKey = CreateUniqueKey();\n return /** @class */ (function () {\n function WeakMap() {\n this._key = CreateUniqueKey();\n }\n WeakMap.prototype.has = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.has(table, this._key) : false;\n };\n WeakMap.prototype.get = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.get(table, this._key) : undefined;\n };\n WeakMap.prototype.set = function (target, value) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ true);\n table[this._key] = value;\n return this;\n };\n WeakMap.prototype.delete = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? delete table[this._key] : false;\n };\n WeakMap.prototype.clear = function () {\n // NOTE: not a real clear, just makes the previous data unreachable\n this._key = CreateUniqueKey();\n };\n return WeakMap;\n }());\n function CreateUniqueKey() {\n var key;\n do\n key = \"@@WeakMap@@\" + CreateUUID();\n while (HashMap.has(keys, key));\n keys[key] = true;\n return key;\n }\n function GetOrCreateWeakMapTable(target, create) {\n if (!hasOwn.call(target, rootKey)) {\n if (!create)\n return undefined;\n Object.defineProperty(target, rootKey, { value: HashMap.create() });\n }\n return target[rootKey];\n }\n function FillRandomBytes(buffer, size) {\n for (var i = 0; i < size; ++i)\n buffer[i] = Math.random() * 0xff | 0;\n return buffer;\n }\n function GenRandomBytes(size) {\n if (typeof Uint8Array === \"function\") {\n if (typeof crypto !== \"undefined\")\n return crypto.getRandomValues(new Uint8Array(size));\n if (typeof msCrypto !== \"undefined\")\n return msCrypto.getRandomValues(new Uint8Array(size));\n return FillRandomBytes(new Uint8Array(size), size);\n }\n return FillRandomBytes(new Array(size), size);\n }\n function CreateUUID() {\n var data = GenRandomBytes(UUID_SIZE);\n // mark as random - RFC 4122 ยง 4.4\n data[6] = data[6] & 0x4f | 0x40;\n data[8] = data[8] & 0xbf | 0x80;\n var result = \"\";\n for (var offset = 0; offset < UUID_SIZE; ++offset) {\n var byte = data[offset];\n if (offset === 4 || offset === 6 || offset === 8)\n result += \"-\";\n if (byte < 16)\n result += \"0\";\n result += byte.toString(16).toLowerCase();\n }\n return result;\n }\n }\n // uses a heuristic used by v8 and chakra to force an object into dictionary mode.\n function MakeDictionary(obj) {\n obj.__ = undefined;\n delete obj.__;\n return obj;\n }\n });\n})(Reflect || (Reflect = {}));\n"],"names":["TransformationType","MetadataStorage","metadata","target","propertyName","transformationType","name","excludeMap","exclude","exposeMap","expose","metadatas","metadataFromTargetMap","metadataFromTarget","meta","metadataFromAncestors","_i","_a","ancestor","ancestorMetadataMap","metadataFromAncestor","ancestorResult","metadataFromAncestorsTarget","ancestors","baseClass","defaultMetadataStorage","getGlobal","isPromise","p","__spreadArray","to","from","pack","i","l","ar","instantiateArrayType","arrayType","array","TransformOperationExecutor","options","source","value","targetType","isMap","level","_this","newValue_1","subValue","index","subSource","realTargetType","subType","newType","value_1","resolve","reject","data","keys","newValue","_loop_1","key","valueKey","newValueKey","this_1","exposeMetadata","type","isSubValueMap","metadata_1","map","reflectedType","arrayType_1","descriptor","transformKey","finalValue","keys_1","obj","object","strategy","exposedProperties","excludedProperties","excludedProperties_1","prefix","self","since","until","decision","groups","optionGroup","defaultOptions","__assign","t","s","n","ClassTransformer","executor","plainObject","cls","plain","clsObject","fromObject","json","jsonObject","Expose","Transform","transformFn","classTransformer","instanceToPlain","plainToInstance","Reflect","factory","root","global","exporter","makeExporter","previous","hasOwn","supportsSymbol","toPrimitiveSymbol","iteratorSymbol","supportsCreate","supportsProto","downLevel","HashMap","MakeDictionary","functionPrototype","usePolyfill","define_process_env_default","_Map","CreateMapPolyfill","_Set","CreateSetPolyfill","_WeakMap","CreateWeakMapPolyfill","Metadata","decorate","decorators","propertyKey","attributes","IsUndefined","IsArray","IsConstructor","DecorateConstructor","IsObject","IsNull","ToPropertyKey","DecorateProperty","metadataKey","metadataValue","decorator","IsPropertyKey","OrdinaryDefineOwnMetadata","defineMetadata","hasMetadata","OrdinaryHasMetadata","hasOwnMetadata","OrdinaryHasOwnMetadata","getMetadata","OrdinaryGetMetadata","getOwnMetadata","OrdinaryGetOwnMetadata","getMetadataKeys","OrdinaryMetadataKeys","getOwnMetadataKeys","OrdinaryOwnMetadataKeys","deleteMetadata","metadataMap","GetOrCreateMetadataMap","targetMetadata","decorated","O","P","Create","MetadataKey","parent","OrdinaryGetPrototypeOf","ToBoolean","MetadataValue","ownKeys","parentKeys","set","ownKeys_1","hasKey","parentKeys_1","keysObj","iterator","GetIterator","k","next","IteratorStep","nextValue","IteratorValue","e","IteratorClose","Type","x","IsSymbol","ToPrimitive","input","PreferredType","hint","exoticToPrim","GetMethod","result","OrdinaryToPrimitive","toString_1","IsCallable","valueOf","toString_2","argument","ToString","V","func","method","iterResult","f","proto","prototype","prototypeProto","constructor","cacheSentinel","arraySentinel","MapIterator","values","selector","error","Map","size","getKey","getValue","getEntry","insert","_","Set","UUID_SIZE","rootKey","CreateUniqueKey","WeakMap","table","GetOrCreateWeakMapTable","CreateUUID","create","FillRandomBytes","buffer","GenRandomBytes","offset","byte"],"mappings":"+rCAAO,IAAIA,GACV,SAAUA,EAAoB,CAC3BA,EAAmBA,EAAmB,eAAoB,CAAC,EAAI,iBAC/DA,EAAmBA,EAAmB,eAAoB,CAAC,EAAI,iBAC/DA,EAAmBA,EAAmB,eAAoB,CAAC,EAAI,gBACnE,GAAGA,IAAuBA,EAAqB,CAAA,EAAG,ECDlD,IAAIC,GAAiC,UAAY,CAC7C,SAASA,GAAkB,CAIvB,KAAK,eAAiB,IAAI,IAC1B,KAAK,oBAAsB,IAAI,IAC/B,KAAK,iBAAmB,IAAI,IAC5B,KAAK,kBAAoB,IAAI,IAC7B,KAAK,cAAgB,IAAI,GAC5B,CAID,OAAAA,EAAgB,UAAU,gBAAkB,SAAUC,EAAU,CACvD,KAAK,eAAe,IAAIA,EAAS,MAAM,GACxC,KAAK,eAAe,IAAIA,EAAS,OAAQ,IAAI,GAAK,EAEtD,KAAK,eAAe,IAAIA,EAAS,MAAM,EAAE,IAAIA,EAAS,aAAcA,CAAQ,CACpF,EACID,EAAgB,UAAU,qBAAuB,SAAUC,EAAU,CAC5D,KAAK,oBAAoB,IAAIA,EAAS,MAAM,GAC7C,KAAK,oBAAoB,IAAIA,EAAS,OAAQ,IAAI,GAAK,EAEtD,KAAK,oBAAoB,IAAIA,EAAS,MAAM,EAAE,IAAIA,EAAS,YAAY,GACxE,KAAK,oBAAoB,IAAIA,EAAS,MAAM,EAAE,IAAIA,EAAS,aAAc,CAAA,CAAE,EAE/E,KAAK,oBAAoB,IAAIA,EAAS,MAAM,EAAE,IAAIA,EAAS,YAAY,EAAE,KAAKA,CAAQ,CAC9F,EACID,EAAgB,UAAU,kBAAoB,SAAUC,EAAU,CACzD,KAAK,iBAAiB,IAAIA,EAAS,MAAM,GAC1C,KAAK,iBAAiB,IAAIA,EAAS,OAAQ,IAAI,GAAK,EAExD,KAAK,iBAAiB,IAAIA,EAAS,MAAM,EAAE,IAAIA,EAAS,aAAcA,CAAQ,CACtF,EACID,EAAgB,UAAU,mBAAqB,SAAUC,EAAU,CAC1D,KAAK,kBAAkB,IAAIA,EAAS,MAAM,GAC3C,KAAK,kBAAkB,IAAIA,EAAS,OAAQ,IAAI,GAAK,EAEzD,KAAK,kBAAkB,IAAIA,EAAS,MAAM,EAAE,IAAIA,EAAS,aAAcA,CAAQ,CACvF,EAIID,EAAgB,UAAU,uBAAyB,SAAUE,EAAQC,EAAcC,EAAoB,CACnG,OAAO,KAAK,cAAc,KAAK,oBAAqBF,EAAQC,CAAY,EAAE,OAAO,SAAUF,EAAU,CAGjG,MAFI,CAACA,EAAS,SAEVA,EAAS,QAAQ,cAAgB,IAAQA,EAAS,QAAQ,cAAgB,GACnE,GACPA,EAAS,QAAQ,cAAgB,GACzBG,IAAuBL,EAAmB,gBAC9CK,IAAuBL,EAAmB,eAE9CE,EAAS,QAAQ,cAAgB,GAC1BG,IAAuBL,EAAmB,eAE9C,EACnB,CAAS,CACT,EACIC,EAAgB,UAAU,oBAAsB,SAAUE,EAAQC,EAAc,CAC5E,OAAO,KAAK,aAAa,KAAK,kBAAmBD,EAAQC,CAAY,CAC7E,EACIH,EAAgB,UAAU,mBAAqB,SAAUE,EAAQC,EAAc,CAC3E,OAAO,KAAK,aAAa,KAAK,iBAAkBD,EAAQC,CAAY,CAC5E,EACIH,EAAgB,UAAU,+BAAiC,SAAUE,EAAQG,EAAM,CAC/E,OAAO,KAAK,oBAAoBH,CAAM,EAAE,KAAK,SAAUD,EAAU,CAC7D,OAAOA,EAAS,SAAWA,EAAS,QAAQ,OAASI,CACjE,CAAS,CACT,EACIL,EAAgB,UAAU,iBAAmB,SAAUE,EAAQC,EAAc,CACzE,OAAO,KAAK,aAAa,KAAK,eAAgBD,EAAQC,CAAY,CAC1E,EACIH,EAAgB,UAAU,YAAc,SAAUE,EAAQ,CACtD,IAAII,EAAa,KAAK,kBAAkB,IAAIJ,CAAM,EAC9CK,EAAUD,GAAcA,EAAW,IAAI,MAAS,EAChDE,EAAY,KAAK,iBAAiB,IAAIN,CAAM,EAC5CO,EAASD,GAAaA,EAAU,IAAI,MAAS,EACjD,OAAKD,GAAWE,GAAY,CAACF,GAAW,CAACE,EAC9B,OACJF,EAAU,aAAe,WACxC,EACIP,EAAgB,UAAU,oBAAsB,SAAUE,EAAQ,CAC9D,OAAO,KAAK,YAAY,KAAK,iBAAkBA,CAAM,CAC7D,EACIF,EAAgB,UAAU,qBAAuB,SAAUE,EAAQ,CAC/D,OAAO,KAAK,YAAY,KAAK,kBAAmBA,CAAM,CAC9D,EACIF,EAAgB,UAAU,qBAAuB,SAAUE,EAAQE,EAAoB,CACnF,OAAO,KAAK,oBAAoBF,CAAM,EACjC,OAAO,SAAUD,EAAU,CAG5B,MAFI,CAACA,EAAS,SAEVA,EAAS,QAAQ,cAAgB,IAAQA,EAAS,QAAQ,cAAgB,GACnE,GACPA,EAAS,QAAQ,cAAgB,GACzBG,IAAuBL,EAAmB,gBAC9CK,IAAuBL,EAAmB,eAE9CE,EAAS,QAAQ,cAAgB,GAC1BG,IAAuBL,EAAmB,eAE9C,EACnB,CAAS,EACI,IAAI,SAAUE,EAAU,CAAE,OAAOA,EAAS,YAAa,CAAE,CACtE,EACID,EAAgB,UAAU,sBAAwB,SAAUE,EAAQE,EAAoB,CACpF,OAAO,KAAK,qBAAqBF,CAAM,EAClC,OAAO,SAAUD,EAAU,CAG5B,MAFI,CAACA,EAAS,SAEVA,EAAS,QAAQ,cAAgB,IAAQA,EAAS,QAAQ,cAAgB,GACnE,GACPA,EAAS,QAAQ,cAAgB,GACzBG,IAAuBL,EAAmB,gBAC9CK,IAAuBL,EAAmB,eAE9CE,EAAS,QAAQ,cAAgB,GAC1BG,IAAuBL,EAAmB,eAE9C,EACnB,CAAS,EACI,IAAI,SAAUE,EAAU,CAAE,OAAOA,EAAS,YAAa,CAAE,CACtE,EACID,EAAgB,UAAU,MAAQ,UAAY,CAC1C,KAAK,eAAe,QACpB,KAAK,iBAAiB,QACtB,KAAK,kBAAkB,QACvB,KAAK,cAAc,OAC3B,EAIIA,EAAgB,UAAU,YAAc,SAAUU,EAAWR,EAAQ,CACjE,IAAIS,EAAwBD,EAAU,IAAIR,CAAM,EAC5CU,EACAD,IACAC,EAAqB,MAAM,KAAKD,EAAsB,OAAQ,CAAA,EAAE,OAAO,SAAUE,EAAM,CAAE,OAAOA,EAAK,eAAiB,MAAY,CAAA,GAGtI,QADIC,EAAwB,CAAA,EACnBC,EAAK,EAAGC,EAAK,KAAK,aAAad,CAAM,EAAGa,EAAKC,EAAG,OAAQD,IAAM,CACnE,IAAIE,EAAWD,EAAGD,CAAE,EAChBG,EAAsBR,EAAU,IAAIO,CAAQ,EAChD,GAAIC,EAAqB,CACrB,IAAIC,EAAuB,MAAM,KAAKD,EAAoB,OAAQ,CAAA,EAAE,OAAO,SAAUL,EAAM,CAAE,OAAOA,EAAK,eAAiB,MAAY,CAAA,EACtIC,EAAsB,KAAK,MAAMA,EAAuBK,CAAoB,CAC/E,CACJ,CACD,OAAOL,EAAsB,OAAOF,GAAsB,CAAE,CAAA,CACpE,EACIZ,EAAgB,UAAU,aAAe,SAAUU,EAAWR,EAAQC,EAAc,CAChF,IAAIQ,EAAwBD,EAAU,IAAIR,CAAM,EAChD,GAAIS,EAAuB,CACvB,IAAIC,EAAqBD,EAAsB,IAAIR,CAAY,EAC/D,GAAIS,EACA,OAAOA,CAEd,CACD,QAASG,EAAK,EAAGC,EAAK,KAAK,aAAad,CAAM,EAAGa,EAAKC,EAAG,OAAQD,IAAM,CACnE,IAAIE,EAAWD,EAAGD,CAAE,EAChBG,EAAsBR,EAAU,IAAIO,CAAQ,EAChD,GAAIC,EAAqB,CACrB,IAAIE,EAAiBF,EAAoB,IAAIf,CAAY,EACzD,GAAIiB,EACA,OAAOA,CAEd,CACJ,CAET,EACIpB,EAAgB,UAAU,cAAgB,SAAUU,EAAWR,EAAQC,EAAc,CACjF,IAAIQ,EAAwBD,EAAU,IAAIR,CAAM,EAC5CU,EACAD,IACAC,EAAqBD,EAAsB,IAAIR,CAAY,GAG/D,QADIkB,EAA8B,CAAA,EACzBN,EAAK,EAAGC,EAAK,KAAK,aAAad,CAAM,EAAGa,EAAKC,EAAG,OAAQD,IAAM,CACnE,IAAIE,EAAWD,EAAGD,CAAE,EAChBG,EAAsBR,EAAU,IAAIO,CAAQ,EAC5CC,GACIA,EAAoB,IAAIf,CAAY,GACpCkB,EAA4B,KAAK,MAAMA,EAA6BH,EAAoB,IAAIf,CAAY,CAAC,CAGpH,CACD,OAAOkB,EACF,MAAO,EACP,QAAS,EACT,QAAQT,GAAsB,CAAA,GAAI,MAAO,EAAC,QAAO,CAAE,CAChE,EACIZ,EAAgB,UAAU,aAAe,SAAUE,EAAQ,CACvD,GAAI,CAACA,EACD,MAAO,GACX,GAAI,CAAC,KAAK,cAAc,IAAIA,CAAM,EAAG,CAEjC,QADIoB,EAAY,CAAA,EACPC,EAAY,OAAO,eAAerB,EAAO,UAAU,WAAW,EAAG,OAAOqB,EAAU,WAAc,YAAaA,EAAY,OAAO,eAAeA,EAAU,UAAU,WAAW,EACnLD,EAAU,KAAKC,CAAS,EAE5B,KAAK,cAAc,IAAIrB,EAAQoB,CAAS,CAC3C,CACD,OAAO,KAAK,cAAc,IAAIpB,CAAM,CAC5C,EACWF,CACX,IC7MWwB,EAAyB,IAAIxB,GCEjC,SAASyB,IAAY,CACxB,GAAI,OAAO,YAAe,YACtB,OAAO,WAEX,GAAI,OAAO,QAAW,YAClB,OAAO,OAIX,GAAI,OAAO,QAAW,YAGlB,OAAO,OAIX,GAAI,OAAO,MAAS,YAGhB,OAAO,IAEf,CC3BO,SAASC,GAAUC,EAAG,CACzB,OAAOA,IAAM,MAAQ,OAAOA,GAAM,UAAY,OAAOA,EAAE,MAAS,UACpE,CCFA,IAAIC,GAAgD,SAAUC,EAAIC,EAAMC,EAAM,CAC1E,GAAIA,GAAQ,UAAU,SAAW,EAAG,QAASC,EAAI,EAAGC,EAAIH,EAAK,OAAQI,EAAIF,EAAIC,EAAGD,KACxEE,GAAM,EAAEF,KAAKF,MACRI,IAAIA,EAAK,MAAM,UAAU,MAAM,KAAKJ,EAAM,EAAGE,CAAC,GACnDE,EAAGF,CAAC,EAAIF,EAAKE,CAAC,GAGtB,OAAOH,EAAG,OAAOK,GAAM,MAAM,UAAU,MAAM,KAAKJ,CAAI,CAAC,CAC3D,EAIA,SAASK,GAAqBC,EAAW,CACrC,IAAIC,EAAQ,IAAID,EAChB,MAAI,EAAEC,aAAiB,MAAQ,EAAE,SAAUA,GAChC,GAEJA,CACX,CACA,IAAIC,EAA4C,UAAY,CAIxD,SAASA,EAA2BlC,EAAoBmC,EAAS,CAC7D,KAAK,mBAAqBnC,EAC1B,KAAK,QAAUmC,EAIf,KAAK,eAAiB,IAAI,GAC7B,CAID,OAAAD,EAA2B,UAAU,UAAY,SAAUE,EAAQC,EAAOC,EAAYN,EAAWO,EAAOC,EAAO,CAC3G,IAAIC,EAAQ,KAEZ,GADID,IAAU,SAAUA,EAAQ,GAC5B,MAAM,QAAQH,CAAK,GAAKA,aAAiB,IAAK,CAC9C,IAAIK,EAAaV,GAAa,KAAK,qBAAuBrC,EAAmB,eACvEoC,GAAqBC,CAAS,EAC9B,GACN,OAAAK,EAAM,QAAQ,SAAUM,EAAUC,EAAO,CACrC,IAAIC,EAAYT,EAASA,EAAOQ,CAAK,EAAI,OACzC,GAAI,CAACH,EAAM,QAAQ,qBAAuB,CAACA,EAAM,WAAWE,CAAQ,EAAG,CACnE,IAAIG,EAAiB,OACrB,GAAI,OAAOR,GAAe,YACtBA,GACAA,EAAW,SACXA,EAAW,QAAQ,eACnBA,EAAW,QAAQ,cAAc,UACjCA,EAAW,QAAQ,cAAc,SAAU,CAC3C,GAAIG,EAAM,qBAAuB9C,EAAmB,eAAgB,CAChEmD,EAAiBR,EAAW,QAAQ,cAAc,SAAS,KAAK,SAAUS,EAAS,CAC/E,OAAOA,EAAQ,OAASJ,EAASL,EAAW,QAAQ,cAAc,QAAQ,CAC1G,CAA6B,EACD,IAAIH,EAAU,CAAE,UAAWO,EAAY,OAAQC,EAAU,SAAU,QAC/DK,EAAUV,EAAW,aAAaH,CAAO,EAC7CW,IAAmB,OAAaA,EAAiBE,EAAYF,EAAiBA,EAAe,MACxFR,EAAW,QAAQ,2BACpB,OAAOK,EAASL,EAAW,QAAQ,cAAc,QAAQ,CAChE,CACGG,EAAM,qBAAuB9C,EAAmB,iBAChDmD,EAAiBH,EAAS,aAE1BF,EAAM,qBAAuB9C,EAAmB,iBAChDgD,EAASL,EAAW,QAAQ,cAAc,QAAQ,EAAIA,EAAW,QAAQ,cAAc,SAAS,KAAK,SAAUS,EAAS,CAAE,OAAOA,EAAQ,QAAUJ,EAAS,YAAc,EAAE,KAEnL,MAEGG,EAAiBR,EAErB,IAAIW,EAAUR,EAAM,UAAUI,EAAWF,EAAUG,EAAgB,OAAWH,aAAoB,IAAKH,EAAQ,CAAC,EAC5GE,aAAsB,IACtBA,EAAW,IAAIO,CAAO,EAGtBP,EAAW,KAAKO,CAAO,CAE9B,MACQR,EAAM,qBAAuB9C,EAAmB,iBACjD+C,aAAsB,IACtBA,EAAW,IAAIC,CAAQ,EAGvBD,EAAW,KAAKC,CAAQ,EAGhD,CAAa,EACMD,CACV,KACI,IAAIJ,IAAe,QAAU,CAACC,EAC/B,OAAIF,GAAU,KACHA,EACJ,OAAOA,CAAK,EAElB,GAAIC,IAAe,QAAU,CAACC,EAC/B,OAAIF,GAAU,KACHA,EACJ,OAAOA,CAAK,EAElB,GAAIC,IAAe,SAAW,CAACC,EAChC,OAAIF,GAAU,KACHA,EACJ,EAAQA,EAEd,IAAKC,IAAe,MAAQD,aAAiB,OAAS,CAACE,EACxD,OAAIF,aAAiB,KACV,IAAI,KAAKA,EAAM,QAAS,CAAA,EAE/BA,GAAU,KACHA,EACJ,IAAI,KAAKA,CAAK,EAEpB,GAAMhB,GAAW,EAAC,SAAWiB,IAAe,QAAUD,aAAiB,SAAW,CAACE,EACpF,OAAIF,GAAU,KACHA,EACJ,OAAO,KAAKA,CAAK,EAEvB,GAAIf,GAAUe,CAAK,GAAK,CAACE,EAC1B,OAAO,IAAI,QAAQ,SAAUW,EAASC,EAAQ,CAC1Cd,EAAM,KAAK,SAAUe,EAAM,CAAE,OAAOF,EAAQT,EAAM,UAAU,OAAWW,EAAMd,EAAY,OAAW,OAAWE,EAAQ,CAAC,CAAC,CAAE,EAAIW,CAAM,CACrJ,CAAa,EAEA,GAAI,CAACZ,GAASF,IAAU,MAAQ,OAAOA,GAAU,UAAY,OAAOA,EAAM,MAAS,WAGpF,OAAOA,EAEN,GAAI,OAAOA,GAAU,UAAYA,IAAU,KAAM,CAE9C,CAACC,GAAcD,EAAM,cAAgB,SACjC,CAAC,MAAM,QAAQA,CAAK,GAAKA,EAAM,cAAgB,QAQ/CC,EAAaD,EAAM,cAEvB,CAACC,GAAcF,IACfE,EAAaF,EAAO,aACpB,KAAK,QAAQ,qBAEb,KAAK,eAAe,IAAIC,CAAK,EAEjC,IAAIgB,EAAO,KAAK,QAAQf,EAAYD,EAAOE,CAAK,EAC5Ce,EAAWlB,GAAkB,GAC7B,CAACA,IACA,KAAK,qBAAuBzC,EAAmB,gBAC5C,KAAK,qBAAuBA,EAAmB,kBAC/C4C,EACAe,EAAW,IAAI,IAEVhB,EACLgB,EAAW,IAAIhB,EAGfgB,EAAW,CAAA,GA+KnB,QA5KIC,EAAU,SAAUC,EAAK,CACzB,GAAIA,IAAQ,aAAeA,IAAQ,cAC/B,MAAO,WAEX,IAAIC,EAAWD,EACXE,EAAcF,EAAKzD,EAAeyD,EACtC,GAAI,CAACG,EAAO,QAAQ,kBAAoBrB,GACpC,GAAIqB,EAAO,qBAAuBhE,EAAmB,eAAgB,CACjE,IAAIiE,EAAiBxC,EAAuB,+BAA+BkB,EAAYkB,CAAG,EACtFI,IACA7D,EAAe6D,EAAe,aAC9BF,EAAcE,EAAe,aAEpC,SACQD,EAAO,qBAAuBhE,EAAmB,gBACtDgE,EAAO,qBAAuBhE,EAAmB,eAAgB,CACjE,IAAIiE,EAAiBxC,EAAuB,mBAAmBkB,EAAYkB,CAAG,EAC1EI,GAAkBA,EAAe,SAAWA,EAAe,QAAQ,OACnEF,EAAcE,EAAe,QAAQ,KAE5C,EAGL,IAAIjB,EAAW,OACXgB,EAAO,qBAAuBhE,EAAmB,eAOjDgD,EAAWN,EAAMoB,CAAQ,EAGrBpB,aAAiB,IACjBM,EAAWN,EAAM,IAAIoB,CAAQ,EAExBpB,EAAMoB,CAAQ,YAAa,SAChCd,EAAWN,EAAMoB,CAAQ,IAGzBd,EAAWN,EAAMoB,CAAQ,EAIjC,IAAII,EAAO,OAAWC,EAAgBnB,aAAoB,IAC1D,GAAIL,GAAcC,EACdsB,EAAOvB,UAEFA,EAAY,CACjB,IAAIyB,EAAa3C,EAAuB,iBAAiBkB,EAAYvC,CAAY,EACjF,GAAIgE,EAAY,CACZ,IAAI5B,GAAU,CAAE,UAAWmB,EAAU,OAAQjB,EAAO,SAAUtC,GAC1DiD,EAAUe,EAAW,aAAeA,EAAW,aAAa5B,EAAO,EAAI4B,EAAW,cAClFA,EAAW,SACXA,EAAW,QAAQ,eACnBA,EAAW,QAAQ,cAAc,UACjCA,EAAW,QAAQ,cAAc,SAC3B1B,EAAMoB,CAAQ,YAAa,MAwB7BI,EAAOE,GAvBHJ,EAAO,qBAAuBhE,EAAmB,iBACjDkE,EAAOE,EAAW,QAAQ,cAAc,SAAS,KAAK,SAAUhB,EAAS,CACrE,GAAIJ,GAAYA,aAAoB,QAAUoB,EAAW,QAAQ,cAAc,YAAYpB,EACvF,OAAOI,EAAQ,OAASJ,EAASoB,EAAW,QAAQ,cAAc,QAAQ,CAEtH,CAAqC,EACDF,IAAS,OAAaA,EAAOb,EAAYa,EAAOA,EAAK,MAChDE,EAAW,QAAQ,2BAChBpB,GAAYA,aAAoB,QAAUoB,EAAW,QAAQ,cAAc,YAAYpB,GACvF,OAAOA,EAASoB,EAAW,QAAQ,cAAc,QAAQ,GAIjEJ,EAAO,qBAAuBhE,EAAmB,iBACjDkE,EAAOlB,EAAS,aAEhBgB,EAAO,qBAAuBhE,EAAmB,gBAC7CgD,IACAA,EAASoB,EAAW,QAAQ,cAAc,QAAQ,EAAIA,EAAW,QAAQ,cAAc,SAAS,KAAK,SAAUhB,EAAS,CAAE,OAAOA,EAAQ,QAAUJ,EAAS,YAAc,EAAE,OASxLkB,EAAOb,EAEXc,EAAgBA,GAAiBC,EAAW,gBAAkB,GACjE,SACQJ,EAAO,QAAQ,WAEpBA,EAAO,QAAQ,WACV,OAAO,SAAUK,EAAK,CAAE,OAAOA,EAAI,SAAW1B,GAAc,CAAC,CAAC0B,EAAI,WAAWjE,CAAY,CAAE,CAAE,EAC7F,QAAQ,SAAUiE,EAAK,CAAE,OAAQH,EAAOG,EAAI,WAAWjE,CAAY,CAAG,CAAE,UAExE4D,EAAO,QAAQ,0BACpBA,EAAO,qBAAuBhE,EAAmB,eAAgB,CAGjE,IAAIsE,GAAgB,QAAQ,YAAY,cAAe3B,EAAW,UAAWvC,CAAY,EACrFkE,KACAJ,EAAOI,GAEd,CACJ,CAED,IAAIC,EAAc,MAAM,QAAQ7B,EAAMoB,CAAQ,CAAC,EACzCE,EAAO,iBAAiBrB,EAAYvC,CAAY,EAChD,OAEF8C,EAAYT,EAASA,EAAOqB,CAAQ,EAAI,OAM5C,GAAIH,EAAS,YAAY,UAAW,CAChC,IAAIa,EAAa,OAAO,yBAAyBb,EAAS,YAAY,UAAWI,CAAW,EAC5F,IAAKC,EAAO,qBAAuBhE,EAAmB,gBAClDgE,EAAO,qBAAuBhE,EAAmB,kBAE/CwE,GAAc,CAACA,EAAW,KAAQb,EAASI,CAAW,YAAa,UACrE,MAAO,UACd,CACD,GAAI,CAACC,EAAO,QAAQ,qBAAuB,CAACA,EAAO,WAAWhB,CAAQ,EAAG,CACrE,IAAIyB,EAAeT,EAAO,qBAAuBhE,EAAmB,eAAiB+D,EAAcF,EAC/Fa,EAAa,OACbV,EAAO,qBAAuBhE,EAAmB,gBAEjD0E,EAAahC,EAAM+B,CAAY,EAE/BC,EAAaV,EAAO,2BAA2BU,EAAY/B,EAAY8B,EAAc/B,EAAOsB,EAAO,kBAAkB,EAErHU,EAAahC,EAAM+B,CAAY,IAAMC,EAAa1B,EAAW0B,EAE7DA,EAAaV,EAAO,UAAUd,EAAWwB,EAAYR,EAAMK,EAAaJ,EAAetB,EAAQ,CAAC,GAG5FG,IAAa,QAAagB,EAAO,QAAQ,oBAEzCU,EAAaf,EAASI,CAAW,GAGjCW,EAAaV,EAAO,UAAUd,EAAWF,EAAUkB,EAAMK,EAAaJ,EAAetB,EAAQ,CAAC,EAC9F6B,EAAaV,EAAO,2BAA2BU,EAAY/B,EAAY8B,EAAc/B,EAAOsB,EAAO,kBAAkB,IAGzHU,IAAe,QAAaV,EAAO,QAAQ,qBACvCL,aAAoB,IACpBA,EAAS,IAAII,EAAaW,CAAU,EAGpCf,EAASI,CAAW,EAAIW,EAGnC,SACQV,EAAO,qBAAuBhE,EAAmB,eAAgB,CACtE,IAAI0E,EAAa1B,EACjB0B,EAAaV,EAAO,2BAA2BU,EAAY/B,EAAYkB,EAAKnB,EAAOsB,EAAO,kBAAkB,GACxGU,IAAe,QAAaV,EAAO,QAAQ,qBACvCL,aAAoB,IACpBA,EAAS,IAAII,EAAaW,CAAU,EAGpCf,EAASI,CAAW,EAAIW,EAGnC,CACjB,EACgBV,EAAS,KAEJhD,EAAK,EAAG2D,EAASjB,EAAM1C,EAAK2D,EAAO,OAAQ3D,IAAM,CACtD,IAAI6C,EAAMc,EAAO3D,CAAE,EACnB4C,EAAQC,CAAG,CACd,CACD,OAAI,KAAK,QAAQ,qBACb,KAAK,eAAe,OAAOnB,CAAK,EAE7BiB,CACV,KAEG,QAAOjB,EAEnB,EACIH,EAA2B,UAAU,2BAA6B,SAAUG,EAAOvC,EAAQ0D,EAAKe,EAAKvE,EAAoB,CACrH,IAAIyC,EAAQ,KACRnC,EAAYc,EAAuB,uBAAuBtB,EAAQ0D,EAAK,KAAK,kBAAkB,EAElG,OAAI,KAAK,QAAQ,UAAY,SACzBlD,EAAYA,EAAU,OAAO,SAAUT,EAAU,CAC7C,OAAKA,EAAS,QAEP4C,EAAM,aAAa5C,EAAS,QAAQ,MAAOA,EAAS,QAAQ,KAAK,EAD7D,EAE3B,CAAa,GAGD,KAAK,QAAQ,QAAU,KAAK,QAAQ,OAAO,OAC3CS,EAAYA,EAAU,OAAO,SAAUT,EAAU,CAC7C,OAAKA,EAAS,QAEP4C,EAAM,YAAY5C,EAAS,QAAQ,MAAM,EADrC,EAE3B,CAAa,EAGDS,EAAYA,EAAU,OAAO,SAAUT,EAAU,CAC7C,MAAO,CAACA,EAAS,SAAW,CAACA,EAAS,QAAQ,QAAU,CAACA,EAAS,QAAQ,OAAO,MACjG,CAAa,EAELS,EAAU,QAAQ,SAAUT,EAAU,CAClCwC,EAAQxC,EAAS,YAAY,CAAE,MAAOwC,EAAO,IAAKmB,EAAK,IAAKe,EAAK,KAAMvE,EAAoB,QAASyC,EAAM,OAAO,CAAE,CAC/H,CAAS,EACMJ,CACf,EAEIH,EAA2B,UAAU,WAAa,SAAUsC,EAAQ,CAChE,OAAO,KAAK,eAAe,IAAIA,CAAM,CAC7C,EACItC,EAA2B,UAAU,iBAAmB,SAAUpC,EAAQC,EAAc,CACpF,GAAKD,EAEL,KAAIW,EAAOW,EAAuB,iBAAiBtB,EAAQC,CAAY,EACvE,OAAOU,EAAOA,EAAK,cAAgB,OAC3C,EACIyB,EAA2B,UAAU,QAAU,SAAUpC,EAAQ0E,EAAQjC,EAAO,CAC5E,IAAIE,EAAQ,KAERgC,EAAWrD,EAAuB,YAAYtB,CAAM,EACpD2E,IAAa,SACbA,EAAW,KAAK,QAAQ,UAAY,aAExC,IAAIpB,EAAO,CAAA,EASX,IARIoB,IAAa,aAAelC,KACxBiC,aAAkB,IAClBnB,EAAO,MAAM,KAAKmB,EAAO,KAAM,CAAA,EAG/BnB,EAAO,OAAO,KAAKmB,CAAM,GAG7BjC,EAEA,OAAOc,EAMX,GAAI,KAAK,QAAQ,kBAAoB,KAAK,QAAQ,yBAA2BvD,EAAQ,CACjF,IAAI4E,EAAoBtD,EAAuB,qBAAqBtB,EAAQ,KAAK,kBAAkB,EAC/F6E,EAAqBvD,EAAuB,sBAAsBtB,EAAQ,KAAK,kBAAkB,EACrGuD,EAAO7B,GAAcA,GAAc,CAAE,EAAEkD,EAAmB,EAAI,EAAGC,EAAoB,EAAI,CAC5F,CACD,GAAI,CAAC,KAAK,QAAQ,kBAAoB7E,EAAQ,CAE1C,IAAI4E,EAAoBtD,EAAuB,qBAAqBtB,EAAQ,KAAK,kBAAkB,EAC/F,KAAK,qBAAuBH,EAAmB,iBAC/C+E,EAAoBA,EAAkB,IAAI,SAAUlB,EAAK,CACrD,IAAII,EAAiBxC,EAAuB,mBAAmBtB,EAAQ0D,CAAG,EAC1E,OAAII,GAAkBA,EAAe,SAAWA,EAAe,QAAQ,KAC5DA,EAAe,QAAQ,KAE3BJ,CAC3B,CAAiB,GAED,KAAK,QAAQ,wBACbH,EAAOqB,EAGPrB,EAAOA,EAAK,OAAOqB,CAAiB,EAGxC,IAAIE,EAAuBxD,EAAuB,sBAAsBtB,EAAQ,KAAK,kBAAkB,EACnG8E,EAAqB,OAAS,IAC9BvB,EAAOA,EAAK,OAAO,SAAUG,EAAK,CAC9B,MAAO,CAACoB,EAAqB,SAASpB,CAAG,CAC7D,CAAiB,GAGD,KAAK,QAAQ,UAAY,SACzBH,EAAOA,EAAK,OAAO,SAAUG,EAAK,CAC9B,IAAII,EAAiBxC,EAAuB,mBAAmBtB,EAAQ0D,CAAG,EAC1E,MAAI,CAACI,GAAkB,CAACA,EAAe,QAC5B,GACJnB,EAAM,aAAamB,EAAe,QAAQ,MAAOA,EAAe,QAAQ,KAAK,CACxG,CAAiB,GAGD,KAAK,QAAQ,QAAU,KAAK,QAAQ,OAAO,OAC3CP,EAAOA,EAAK,OAAO,SAAUG,EAAK,CAC9B,IAAII,EAAiBxC,EAAuB,mBAAmBtB,EAAQ0D,CAAG,EAC1E,MAAI,CAACI,GAAkB,CAACA,EAAe,QAC5B,GACJnB,EAAM,YAAYmB,EAAe,QAAQ,MAAM,CAC1E,CAAiB,EAGDP,EAAOA,EAAK,OAAO,SAAUG,EAAK,CAC9B,IAAII,EAAiBxC,EAAuB,mBAAmBtB,EAAQ0D,CAAG,EAC1E,MAAQ,CAACI,GACL,CAACA,EAAe,SAChB,CAACA,EAAe,QAAQ,QACxB,CAACA,EAAe,QAAQ,OAAO,MACvD,CAAiB,CAER,CAED,OAAI,KAAK,QAAQ,iBAAmB,KAAK,QAAQ,gBAAgB,SAC7DP,EAAOA,EAAK,OAAO,SAAUG,EAAK,CAC9B,OAAOf,EAAM,QAAQ,gBAAgB,MAAM,SAAUoC,EAAQ,CACzD,OAAOrB,EAAI,OAAO,EAAGqB,EAAO,MAAM,IAAMA,CAC5D,CAAiB,CACjB,CAAa,GAGLxB,EAAOA,EAAK,OAAO,SAAUG,EAAKZ,EAAOkC,EAAM,CAC3C,OAAOA,EAAK,QAAQtB,CAAG,IAAMZ,CACzC,CAAS,EACMS,CACf,EACInB,EAA2B,UAAU,aAAe,SAAU6C,EAAOC,EAAO,CACxE,IAAIC,EAAW,GACf,OAAIA,GAAYF,IACZE,EAAW,KAAK,QAAQ,SAAWF,GACnCE,GAAYD,IACZC,EAAW,KAAK,QAAQ,QAAUD,GAC/BC,CACf,EACI/C,EAA2B,UAAU,YAAc,SAAUgD,EAAQ,CACjE,OAAKA,EAEE,KAAK,QAAQ,OAAO,KAAK,SAAUC,EAAa,CAAE,OAAOD,EAAO,SAASC,CAAW,CAAI,CAAA,EADpF,EAEnB,EACWjD,CACX,IC7eWkD,EAAiB,CACxB,oBAAqB,GACrB,yBAA0B,GAC1B,wBAAyB,GACzB,gBAAiB,OACjB,oBAAqB,GACrB,kBAAmB,GACnB,OAAQ,OACR,iBAAkB,GAClB,SAAU,OACV,WAAY,OACZ,QAAS,MACb,ECfIC,EAAsC,UAAY,CAClD,OAAAA,EAAW,OAAO,QAAU,SAASC,EAAG,CACpC,QAASC,EAAG3D,EAAI,EAAG4D,EAAI,UAAU,OAAQ5D,EAAI4D,EAAG5D,IAAK,CACjD2D,EAAI,UAAU3D,CAAC,EACf,QAASL,KAAKgE,EAAO,OAAO,UAAU,eAAe,KAAKA,EAAGhE,CAAC,IAC1D+D,EAAE/D,CAAC,EAAIgE,EAAEhE,CAAC,EACjB,CACD,OAAO+D,CACf,EACWD,EAAS,MAAM,KAAM,SAAS,CACzC,EAIII,GAAkC,UAAY,CAC9C,SAASA,GAAmB,CAC3B,CACD,OAAAA,EAAiB,UAAU,gBAAkB,SAAUjB,EAAQrC,EAAS,CACpE,IAAIuD,EAAW,IAAIxD,EAA2BvC,EAAmB,eAAgB0F,EAASA,EAAS,GAAID,CAAc,EAAGjD,CAAO,CAAC,EAChI,OAAOuD,EAAS,UAAU,OAAWlB,EAAQ,OAAW,OAAW,OAAW,MAAS,CAC/F,EACIiB,EAAiB,UAAU,sBAAwB,SAAUjB,EAAQmB,EAAaxD,EAAS,CACvF,IAAIuD,EAAW,IAAIxD,EAA2BvC,EAAmB,eAAgB0F,EAASA,EAAS,GAAID,CAAc,EAAGjD,CAAO,CAAC,EAChI,OAAOuD,EAAS,UAAUC,EAAanB,EAAQ,OAAW,OAAW,OAAW,MAAS,CACjG,EACIiB,EAAiB,UAAU,gBAAkB,SAAUG,EAAKC,EAAO1D,EAAS,CACxE,IAAIuD,EAAW,IAAIxD,EAA2BvC,EAAmB,eAAgB0F,EAASA,EAAS,GAAID,CAAc,EAAGjD,CAAO,CAAC,EAChI,OAAOuD,EAAS,UAAU,OAAWG,EAAOD,EAAK,OAAW,OAAW,MAAS,CACxF,EACIH,EAAiB,UAAU,sBAAwB,SAAUK,EAAWD,EAAO1D,EAAS,CACpF,IAAIuD,EAAW,IAAIxD,EAA2BvC,EAAmB,eAAgB0F,EAASA,EAAS,GAAID,CAAc,EAAGjD,CAAO,CAAC,EAChI,OAAOuD,EAAS,UAAUI,EAAWD,EAAO,OAAW,OAAW,OAAW,MAAS,CAC9F,EACIJ,EAAiB,UAAU,mBAAqB,SAAUjB,EAAQrC,EAAS,CACvE,IAAIuD,EAAW,IAAIxD,EAA2BvC,EAAmB,eAAgB0F,EAASA,EAAS,GAAID,CAAc,EAAGjD,CAAO,CAAC,EAChI,OAAOuD,EAAS,UAAU,OAAWlB,EAAQ,OAAW,OAAW,OAAW,MAAS,CAC/F,EACIiB,EAAiB,UAAU,sBAAwB,SAAUjB,EAAQuB,EAAY5D,EAAS,CACtF,IAAIuD,EAAW,IAAIxD,EAA2BvC,EAAmB,eAAgB0F,EAASA,EAAS,GAAID,CAAc,EAAGjD,CAAO,CAAC,EAChI,OAAOuD,EAAS,UAAUK,EAAYvB,EAAQ,OAAW,OAAW,OAAW,MAAS,CAChG,EACIiB,EAAiB,UAAU,UAAY,SAAUjB,EAAQrC,EAAS,CAC9D,OAAO,KAAK,UAAU,KAAK,gBAAgBqC,EAAQrC,CAAO,CAAC,CACnE,EAIIsD,EAAiB,UAAU,YAAc,SAAUG,EAAKI,EAAM7D,EAAS,CACnE,IAAI8D,EAAa,KAAK,MAAMD,CAAI,EAChC,OAAO,KAAK,gBAAgBJ,EAAKK,EAAY9D,CAAO,CAC5D,EAIIsD,EAAiB,UAAU,iBAAmB,SAAUG,EAAKI,EAAM7D,EAAS,CACxE,IAAI8D,EAAa,KAAK,MAAMD,CAAI,EAChC,OAAO,KAAK,gBAAgBJ,EAAKK,EAAY9D,CAAO,CAC5D,EACWsD,CACX,ICnDO,SAASS,GAAO/D,EAAS,CAC5B,OAAIA,IAAY,SAAUA,EAAU,CAAE,GAO/B,SAAUqC,EAAQzE,EAAc,CACnCqB,EAAuB,kBAAkB,CACrC,OAAQoD,aAAkB,SAAWA,EAASA,EAAO,YACrD,aAAczE,EACd,QAASoC,CACrB,CAAS,CACT,CACA,CCjBO,SAASgE,GAAUC,EAAajE,EAAS,CAC5C,OAAIA,IAAY,SAAUA,EAAU,CAAE,GAC/B,SAAUrC,EAAQC,EAAc,CACnCqB,EAAuB,qBAAqB,CACxC,OAAQtB,EAAO,YACf,aAAcC,EACd,YAAaqG,EACb,QAASjE,CACrB,CAAS,CACT,CACA,CCXA,IAAIkE,GAAmB,IAAIZ,GAIpB,SAASa,GAAgB9B,EAAQrC,EAAS,CAC7C,OAAOkE,GAAiB,gBAAgB7B,EAAQrC,CAAO,CAC3D,CAOO,SAASoE,GAAgBX,EAAKC,EAAO1D,EAAS,CACjD,OAAOkE,GAAiB,gBAAgBT,EAAKC,EAAO1D,CAAO,CAC/D,WCpBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gFAcA,IAAIqE,IACH,SAAUA,EAAS,EAGf,SAAUC,EAAS,CAChB,IAAIC,EAAO,OAAOC,IAAW,SAAWA,GACpC,OAAO,MAAS,SAAW,KACvB,OAAO,MAAS,SAAW,KACvB,SAAS,cAAc,IAC/BC,EAAWC,EAAaL,CAAO,EAC/B,OAAOE,EAAK,SAAY,YACxBA,EAAK,QAAUF,EAGJI,EAAAC,EAAaH,EAAK,QAASE,CAAQ,EAElDH,EAAQG,CAAQ,EACP,SAAAC,EAAa/G,EAAQgH,EAAU,CAC7B,OAAA,SAAUtD,EAAKnB,EAAO,CACrB,OAAOvC,EAAO0D,CAAG,GAAM,YAChB,OAAA,eAAe1D,EAAQ0D,EAAK,CAAE,aAAc,GAAM,SAAU,GAAM,MAAAnB,CAAA,CAAc,EAEvFyE,GACAA,EAAStD,EAAKnB,CAAK,CAAA,CAE/B,CACJ,GAAG,SAAUuE,EAAU,CACf,IAAAG,EAAS,OAAO,UAAU,eAE1BC,EAAiB,OAAO,QAAW,WACnCC,EAAoBD,GAAkB,OAAO,OAAO,aAAgB,YAAc,OAAO,YAAc,gBACvGE,EAAiBF,GAAkB,OAAO,OAAO,UAAa,YAAc,OAAO,SAAW,aAC9FG,EAAiB,OAAO,OAAO,QAAW,WAC1CC,EAAgB,CAAE,UAAW,cAAgB,MAC7CC,EAAY,CAACF,GAAkB,CAACC,EAChCE,EAAU,CAEV,OAAQH,EACF,UAAY,CAAE,OAAOI,GAAe,OAAO,OAAO,IAAI,CAAC,CAAG,EAC1DH,EACI,UAAY,CAAE,OAAOG,GAAe,CAAE,UAAW,IAAM,CAAA,CAAA,EACvD,UAAY,CAAS,OAAAA,GAAe,CAAA,CAAE,CAAG,EACnD,IAAKF,EACC,SAAUrD,EAAKR,EAAK,CAAS,OAAAuD,EAAO,KAAK/C,EAAKR,CAAG,CAAA,EACjD,SAAUQ,EAAKR,EAAK,CAAE,OAAOA,KAAOQ,CAAK,EAC/C,IAAKqD,EACC,SAAUrD,EAAKR,EAAK,CAAE,OAAOuD,EAAO,KAAK/C,EAAKR,CAAG,EAAIQ,EAAIR,CAAG,EAAI,MAAA,EAChE,SAAUQ,EAAKR,EAAK,CAAE,OAAOQ,EAAIR,CAAG,CAAG,CAAA,EAG7CgE,EAAoB,OAAO,eAAe,QAAQ,EAClDC,EAAc,OAAO,SAAY,UAAYC,IAAeA,GAAY,oCAAyC,OACjHC,EAAO,CAACF,GAAe,OAAO,KAAQ,YAAc,OAAO,IAAI,UAAU,SAAY,WAAa,IAAMG,GAAkB,EAC1HC,EAAO,CAACJ,GAAe,OAAO,KAAQ,YAAc,OAAO,IAAI,UAAU,SAAY,WAAa,IAAMK,GAAkB,EAC1HC,EAAW,CAACN,GAAe,OAAO,SAAY,WAAa,QAAUO,KAGrEC,EAAW,IAAIF,EAwCnB,SAASG,EAASC,EAAYrI,EAAQsI,EAAaC,EAAY,CACvD,GAACC,EAAYF,CAAW,EAYvB,CACG,GAAA,CAACG,GAAQJ,CAAU,EACnB,MAAM,IAAI,UACV,GAAA,CAACK,GAAc1I,CAAM,EACrB,MAAM,IAAI,UACP,OAAA2I,EAAoBN,EAAYrI,CAAM,CACjD,KAlB+B,CACvB,GAAA,CAACyI,GAAQJ,CAAU,EACnB,MAAM,IAAI,UACV,GAAA,CAACO,EAAS5I,CAAM,EAChB,MAAM,IAAI,UACV,GAAA,CAAC4I,EAASL,CAAU,GAAK,CAACC,EAAYD,CAAU,GAAK,CAACM,EAAON,CAAU,EACvE,MAAM,IAAI,UACd,OAAIM,EAAON,CAAU,IACJA,EAAA,QACjBD,EAAcQ,EAAcR,CAAW,EAChCS,GAAiBV,EAAYrI,EAAQsI,EAAaC,CAAU,CAAA,CAS3E,CACAzB,EAAS,WAAYsB,CAAQ,EA2CpB,SAAArI,EAASiJ,EAAaC,EAAe,CACjC,SAAAC,EAAUlJ,EAAQsI,EAAa,CAChC,GAAA,CAACM,EAAS5I,CAAM,EAChB,MAAM,IAAI,UACd,GAAI,CAACwI,EAAYF,CAAW,GAAK,CAACa,GAAcb,CAAW,EACvD,MAAM,IAAI,UACYc,EAAAJ,EAAaC,EAAejJ,EAAQsI,CAAW,CAC7E,CACO,OAAAY,CACX,CACApC,EAAS,WAAY/G,CAAQ,EAwC7B,SAASsJ,EAAeL,EAAaC,EAAejJ,EAAQsI,EAAa,CACjE,GAAA,CAACM,EAAS5I,CAAM,EAChB,MAAM,IAAI,UACV,OAACwI,EAAYF,CAAW,IACxBA,EAAcQ,EAAcR,CAAW,GACpCc,EAA0BJ,EAAaC,EAAejJ,EAAQsI,CAAW,CACpF,CACAxB,EAAS,iBAAkBuC,CAAc,EAmChC,SAAAC,EAAYN,EAAahJ,EAAQsI,EAAa,CAC/C,GAAA,CAACM,EAAS5I,CAAM,EAChB,MAAM,IAAI,UACV,OAACwI,EAAYF,CAAW,IACxBA,EAAcQ,EAAcR,CAAW,GACpCiB,EAAoBP,EAAahJ,EAAQsI,CAAW,CAC/D,CACAxB,EAAS,cAAewC,CAAW,EAmC1B,SAAAE,EAAeR,EAAahJ,EAAQsI,EAAa,CAClD,GAAA,CAACM,EAAS5I,CAAM,EAChB,MAAM,IAAI,UACV,OAACwI,EAAYF,CAAW,IACxBA,EAAcQ,EAAcR,CAAW,GACpCmB,EAAuBT,EAAahJ,EAAQsI,CAAW,CAClE,CACAxB,EAAS,iBAAkB0C,CAAc,EAmChC,SAAAE,EAAYV,EAAahJ,EAAQsI,EAAa,CAC/C,GAAA,CAACM,EAAS5I,CAAM,EAChB,MAAM,IAAI,UACV,OAACwI,EAAYF,CAAW,IACxBA,EAAcQ,EAAcR,CAAW,GACpCqB,EAAoBX,EAAahJ,EAAQsI,CAAW,CAC/D,CACAxB,EAAS,cAAe4C,CAAW,EAmC1B,SAAAE,EAAeZ,EAAahJ,EAAQsI,EAAa,CAClD,GAAA,CAACM,EAAS5I,CAAM,EAChB,MAAM,IAAI,UACV,OAACwI,EAAYF,CAAW,IACxBA,EAAcQ,EAAcR,CAAW,GACpCuB,EAAuBb,EAAahJ,EAAQsI,CAAW,CAClE,CACAxB,EAAS,iBAAkB8C,CAAc,EAkChC,SAAAE,EAAgB9J,EAAQsI,EAAa,CACtC,GAAA,CAACM,EAAS5I,CAAM,EAChB,MAAM,IAAI,UACV,OAACwI,EAAYF,CAAW,IACxBA,EAAcQ,EAAcR,CAAW,GACpCyB,GAAqB/J,EAAQsI,CAAW,CACnD,CACAxB,EAAS,kBAAmBgD,CAAe,EAkClC,SAAAE,EAAmBhK,EAAQsI,EAAa,CACzC,GAAA,CAACM,EAAS5I,CAAM,EAChB,MAAM,IAAI,UACV,OAACwI,EAAYF,CAAW,IACxBA,EAAcQ,EAAcR,CAAW,GACpC2B,GAAwBjK,EAAQsI,CAAW,CACtD,CACAxB,EAAS,qBAAsBkD,CAAkB,EAmCxC,SAAAE,GAAelB,EAAahJ,EAAQsI,EAAa,CAClD,GAAA,CAACM,EAAS5I,CAAM,EAChB,MAAM,IAAI,UACTwI,EAAYF,CAAW,IACxBA,EAAcQ,EAAcR,CAAW,GAC3C,IAAI6B,EAAcC,EAAuBpK,EAAQsI,EAAwB,EAAA,EAGrE,GAFAE,EAAY2B,CAAW,GAEvB,CAACA,EAAY,OAAOnB,CAAW,EACxB,MAAA,GACX,GAAImB,EAAY,KAAO,EACZ,MAAA,GACP,IAAAE,EAAiBlC,EAAS,IAAInI,CAAM,EAExC,OADAqK,EAAe,OAAO/B,CAAW,EAC7B+B,EAAe,KAAO,GAE1BlC,EAAS,OAAOnI,CAAM,EACf,EACX,CACA8G,EAAS,iBAAkBoD,EAAc,EAChC,SAAAvB,EAAoBN,EAAYrI,EAAQ,CAC7C,QAAS,EAAIqI,EAAW,OAAS,EAAG,GAAK,EAAG,EAAE,EAAG,CACzC,IAAAa,EAAYb,EAAW,CAAC,EACxBiC,EAAYpB,EAAUlJ,CAAM,EAChC,GAAI,CAACwI,EAAY8B,CAAS,GAAK,CAACzB,EAAOyB,CAAS,EAAG,CAC3C,GAAA,CAAC5B,GAAc4B,CAAS,EACxB,MAAM,IAAI,UACLtK,EAAAsK,CACb,CACJ,CACO,OAAAtK,CACX,CACA,SAAS+I,GAAiBV,EAAYrI,EAAQsI,EAAajE,EAAY,CACnE,QAASvC,EAAIuG,EAAW,OAAS,EAAGvG,GAAK,EAAG,EAAEA,EAAG,CACzC,IAAAoH,EAAYb,EAAWvG,CAAC,EACxBwI,EAAYpB,EAAUlJ,EAAQsI,EAAajE,CAAU,EACzD,GAAI,CAACmE,EAAY8B,CAAS,GAAK,CAACzB,EAAOyB,CAAS,EAAG,CAC3C,GAAA,CAAC1B,EAAS0B,CAAS,EACnB,MAAM,IAAI,UACDjG,EAAAiG,CACjB,CACJ,CACO,OAAAjG,CACX,CACS,SAAA+F,EAAuBG,EAAGC,EAAGC,EAAQ,CACtC,IAAAJ,EAAiBlC,EAAS,IAAIoC,CAAC,EAC/B,GAAA/B,EAAY6B,CAAc,EAAG,CAC7B,GAAI,CAACI,EACM,OACXJ,EAAiB,IAAIxC,EACZM,EAAA,IAAIoC,EAAGF,CAAc,CAClC,CACI,IAAAF,EAAcE,EAAe,IAAIG,CAAC,EAClC,GAAAhC,EAAY2B,CAAW,EAAG,CAC1B,GAAI,CAACM,EACM,OACXN,EAAc,IAAItC,EACHwC,EAAA,IAAIG,EAAGL,CAAW,CACrC,CACO,OAAAA,CACX,CAGS,SAAAZ,EAAoBmB,EAAaH,EAAGC,EAAG,CAC5C,IAAIvD,EAASwC,EAAuBiB,EAAaH,EAAGC,CAAC,EACjDvD,GAAAA,EACO,MAAA,GACP,IAAA0D,EAASC,GAAuBL,CAAC,EACjC,OAAC1B,EAAO8B,CAAM,EAEX,GADIpB,EAAoBmB,EAAaC,EAAQH,CAAC,CAEzD,CAGS,SAAAf,EAAuBiB,EAAaH,EAAGC,EAAG,CAC/C,IAAIL,EAAcC,EAAuBG,EAAGC,EAAc,EAAA,EAC1D,OAAIhC,EAAY2B,CAAW,EAChB,GACJU,GAAUV,EAAY,IAAIO,CAAW,CAAC,CACjD,CAGS,SAAAf,EAAoBe,EAAaH,EAAGC,EAAG,CAC5C,IAAIvD,EAASwC,EAAuBiB,EAAaH,EAAGC,CAAC,EACjDvD,GAAAA,EACO,OAAA4C,EAAuBa,EAAaH,EAAGC,CAAC,EAC/C,IAAAG,EAASC,GAAuBL,CAAC,EACjC,GAAA,CAAC1B,EAAO8B,CAAM,EACP,OAAAhB,EAAoBe,EAAaC,EAAQH,CAAC,CAEzD,CAGS,SAAAX,EAAuBa,EAAaH,EAAGC,EAAG,CAC/C,IAAIL,EAAcC,EAAuBG,EAAGC,EAAc,EAAA,EAC1D,GAAI,CAAAhC,EAAY2B,CAAW,EAEpB,OAAAA,EAAY,IAAIO,CAAW,CACtC,CAGA,SAAStB,EAA0BsB,EAAaI,EAAeP,EAAGC,EAAG,CACjE,IAAIL,EAAcC,EAAuBG,EAAGC,EAAc,EAAA,EAC9CL,EAAA,IAAIO,EAAaI,CAAa,CAC9C,CAGS,SAAAf,GAAqBQ,EAAGC,EAAG,CAC5B,IAAAO,EAAUd,GAAwBM,EAAGC,CAAC,EACtCG,EAASC,GAAuBL,CAAC,EACrC,GAAII,IAAW,KACJ,OAAAI,EACP,IAAAC,EAAajB,GAAqBY,EAAQH,CAAC,EAC/C,GAAIQ,EAAW,QAAU,EACd,OAAAD,EACX,GAAIA,EAAQ,QAAU,EACX,OAAAC,EAGX,QAFIC,EAAM,IAAIlD,EACVxE,EAAO,CAAA,EACF1C,EAAK,EAAGqK,EAAYH,EAASlK,EAAKqK,EAAU,OAAQrK,IAAM,CAC3D,IAAA6C,EAAMwH,EAAUrK,CAAE,EAClBsK,EAASF,EAAI,IAAIvH,CAAG,EACnByH,IACDF,EAAI,IAAIvH,CAAG,EACXH,EAAK,KAAKG,CAAG,EAErB,CACA,QAAS5C,EAAK,EAAGsK,GAAeJ,EAAYlK,EAAKsK,GAAa,OAAQtK,IAAM,CACpE,IAAA4C,EAAM0H,GAAatK,CAAE,EACrBqK,EAASF,EAAI,IAAIvH,CAAG,EACnByH,IACDF,EAAI,IAAIvH,CAAG,EACXH,EAAK,KAAKG,CAAG,EAErB,CACO,OAAAH,CACX,CAGS,SAAA0G,GAAwBM,EAAGC,EAAG,CACnC,IAAIjH,EAAO,CAAA,EACP4G,EAAcC,EAAuBG,EAAGC,EAAc,EAAA,EAC1D,GAAIhC,EAAY2B,CAAW,EAChB,OAAA5G,EAIX,QAHI8H,EAAUlB,EAAY,OACtBmB,EAAWC,GAAYF,CAAO,EAC9BG,EAAI,IACK,CACL,IAAAC,EAAOC,GAAaJ,CAAQ,EAChC,GAAI,CAACG,EACD,OAAAlI,EAAK,OAASiI,EACPjI,EAEP,IAAAoI,EAAYC,GAAcH,CAAI,EAC9B,GAAA,CACAlI,EAAKiI,CAAC,EAAIG,QAEPE,EAAG,CACF,GAAA,CACAC,GAAcR,CAAQ,CAAA,QAE1B,CACU,MAAAO,CACV,CACJ,CACAL,GACJ,CACJ,CAGA,SAASO,GAAKC,EAAG,CACb,GAAIA,IAAM,KACC,MAAA,GACX,OAAQ,OAAOA,EAAG,CACd,IAAK,YAAoB,MAAA,GACzB,IAAK,UAAkB,MAAA,GACvB,IAAK,SAAiB,MAAA,GACtB,IAAK,SAAiB,MAAA,GACtB,IAAK,SAAiB,MAAA,GACtB,IAAK,SAAiB,OAAAA,IAAM,KAAO,EAAe,EAClD,QAAgB,MAAA,EACpB,CACJ,CAGA,SAASxD,EAAYwD,EAAG,CACpB,OAAOA,IAAM,MACjB,CAGA,SAASnD,EAAOmD,EAAG,CACf,OAAOA,IAAM,IACjB,CAGA,SAASC,GAASD,EAAG,CACjB,OAAO,OAAOA,GAAM,QACxB,CAGA,SAASpD,EAASoD,EAAG,CACjB,OAAO,OAAOA,GAAM,SAAWA,IAAM,KAAO,OAAOA,GAAM,UAC7D,CAKS,SAAAE,GAAYC,EAAOC,EAAe,CAC/B,OAAAL,GAAKI,CAAK,EAAG,CACjB,IAAK,GAA0B,OAAAA,EAC/B,IAAK,GAAqB,OAAAA,EAC1B,IAAK,GAAwB,OAAAA,EAC7B,IAAK,GAAuB,OAAAA,EAC5B,IAAK,GAAuB,OAAAA,EAC5B,IAAK,GAAuB,OAAAA,CAChC,CACA,IAAIE,EAAOD,IAAkB,EAAiB,SAAWA,IAAkB,EAAiB,SAAW,UACnGE,EAAeC,GAAUJ,EAAOhF,CAAiB,EACrD,GAAImF,IAAiB,OAAW,CAC5B,IAAIE,EAASF,EAAa,KAAKH,EAAOE,CAAI,EAC1C,GAAIzD,EAAS4D,CAAM,EACf,MAAM,IAAI,UACP,OAAAA,CACX,CACA,OAAOC,GAAoBN,EAAOE,IAAS,UAAY,SAAWA,CAAI,CAC1E,CAGS,SAAAI,GAAoBlC,EAAG8B,EAAM,CAClC,GAAIA,IAAS,SAAU,CACnB,IAAIK,EAAanC,EAAE,SACf,GAAAoC,EAAWD,CAAU,EAAG,CACpB,IAAAF,EAASE,EAAW,KAAKnC,CAAC,EAC1B,GAAA,CAAC3B,EAAS4D,CAAM,EACT,OAAAA,CACf,CACA,IAAII,EAAUrC,EAAE,QACZ,GAAAoC,EAAWC,CAAO,EAAG,CACjB,IAAAJ,EAASI,EAAQ,KAAKrC,CAAC,EACvB,GAAA,CAAC3B,EAAS4D,CAAM,EACT,OAAAA,CACf,CAAA,KAEC,CACD,IAAII,EAAUrC,EAAE,QACZ,GAAAoC,EAAWC,CAAO,EAAG,CACjB,IAAAJ,EAASI,EAAQ,KAAKrC,CAAC,EACvB,GAAA,CAAC3B,EAAS4D,CAAM,EACT,OAAAA,CACf,CACA,IAAIK,EAAatC,EAAE,SACf,GAAAoC,EAAWE,CAAU,EAAG,CACpB,IAAAL,EAASK,EAAW,KAAKtC,CAAC,EAC1B,GAAA,CAAC3B,EAAS4D,CAAM,EACT,OAAAA,CACf,CACJ,CACA,MAAM,IAAI,SACd,CAGA,SAAS3B,GAAUiC,EAAU,CACzB,MAAO,CAAC,CAACA,CACb,CAGA,SAASC,GAASD,EAAU,CACxB,MAAO,GAAKA,CAChB,CAGA,SAAShE,EAAcgE,EAAU,CAC7B,IAAIpJ,EAAMwI,GAAYY,EAAU,CAAA,EAChC,OAAIb,GAASvI,CAAG,EACLA,EACJqJ,GAASrJ,CAAG,CACvB,CAKA,SAAS+E,GAAQqE,EAAU,CACvB,OAAO,MAAM,QACP,MAAM,QAAQA,CAAQ,EACtBA,aAAoB,OAChBA,aAAoB,MACpB,OAAO,UAAU,SAAS,KAAKA,CAAQ,IAAM,gBAC3D,CAGA,SAASH,EAAWG,EAAU,CAE1B,OAAO,OAAOA,GAAa,UAC/B,CAGA,SAASpE,GAAcoE,EAAU,CAE7B,OAAO,OAAOA,GAAa,UAC/B,CAGA,SAAS3D,GAAc2D,EAAU,CACrB,OAAAf,GAAKe,CAAQ,EAAG,CACpB,IAAK,GAAuB,MAAA,GAC5B,IAAK,GAAuB,MAAA,GAC5B,QAAgB,MAAA,EACpB,CACJ,CAKS,SAAAP,GAAUS,EAAGxC,EAAG,CACjB,IAAAyC,EAAOD,EAAExC,CAAC,EACV,GAAsByC,GAAS,KAE/B,IAAA,CAACN,EAAWM,CAAI,EAChB,MAAM,IAAI,UACP,OAAAA,EACX,CAGA,SAAS1B,GAAY9G,EAAK,CAClB,IAAAyI,EAASX,GAAU9H,EAAK2C,CAAc,EACtC,GAAA,CAACuF,EAAWO,CAAM,EAClB,MAAM,IAAI,UACV,IAAA5B,EAAW4B,EAAO,KAAKzI,CAAG,EAC1B,GAAA,CAACmE,EAAS0C,CAAQ,EAClB,MAAM,IAAI,UACP,OAAAA,CACX,CAGA,SAASM,GAAcuB,EAAY,CAC/B,OAAOA,EAAW,KACtB,CAGA,SAASzB,GAAaJ,EAAU,CACxB,IAAAkB,EAASlB,EAAS,OACf,OAAAkB,EAAO,KAAO,GAAQA,CACjC,CAGA,SAASV,GAAcR,EAAU,CACzB,IAAA8B,EAAI9B,EAAS,OACb8B,GACAA,EAAE,KAAK9B,CAAQ,CACvB,CAKA,SAASV,GAAuBL,EAAG,CAC3B,IAAA8C,EAAQ,OAAO,eAAe9C,CAAC,EAUnC,GATI,OAAOA,GAAM,YAAcA,IAAM7C,GASjC2F,IAAU3F,EACH,OAAA2F,EAEX,IAAIC,EAAY/C,EAAE,UACdgD,EAAiBD,GAAa,OAAO,eAAeA,CAAS,EAC7D,GAAAC,GAAkB,MAAQA,IAAmB,OAAO,UAC7C,OAAAF,EAEX,IAAIG,EAAcD,EAAe,YAIjC,OAHI,OAAOC,GAAgB,YAGvBA,IAAgBjD,EACT8C,EAEJG,CACX,CAEA,SAAS1F,IAAoB,CACzB,IAAI2F,EAAgB,CAAA,EAChBC,EAAgB,CAAA,EAChBC,EAA6B,UAAY,CAChCA,SAAAA,EAAYpK,EAAMqK,EAAQC,EAAU,CACzC,KAAK,OAAS,EACd,KAAK,MAAQtK,EACb,KAAK,QAAUqK,EACf,KAAK,UAAYC,CACrB,CACAF,OAAAA,EAAY,UAAU,YAAY,EAAI,UAAY,CAAS,OAAA,IAAA,EAC3DA,EAAY,UAAUvG,CAAc,EAAI,UAAY,CAAS,OAAA,IAAA,EAC7DuG,EAAY,UAAU,KAAO,UAAY,CACrC,IAAI7K,EAAQ,KAAK,OACjB,GAAIA,GAAS,GAAKA,EAAQ,KAAK,MAAM,OAAQ,CACrC,IAAA0J,EAAS,KAAK,UAAU,KAAK,MAAM1J,CAAK,EAAG,KAAK,QAAQA,CAAK,CAAC,EAClE,OAAIA,EAAQ,GAAK,KAAK,MAAM,QACxB,KAAK,OAAS,GACd,KAAK,MAAQ4K,EACb,KAAK,QAAUA,GAGV,KAAA,SAEF,CAAE,MAAOlB,EAAQ,KAAM,EAAM,CACxC,CACA,MAAO,CAAE,MAAO,OAAW,KAAM,EAAK,CAAA,EAE1CmB,EAAY,UAAU,MAAQ,SAAUG,EAAO,CACvC,MAAA,KAAK,QAAU,IACf,KAAK,OAAS,GACd,KAAK,MAAQJ,EACb,KAAK,QAAUA,GAEbI,CAAA,EAEVH,EAAY,UAAU,OAAS,SAAUpL,EAAO,CACxC,OAAA,KAAK,QAAU,IACf,KAAK,OAAS,GACd,KAAK,MAAQmL,EACb,KAAK,QAAUA,GAEZ,CAAE,MAAAnL,EAAc,KAAM,GAAK,EAE/BoL,CAAA,EACT,EACF,OAAsB,UAAY,CAC9B,SAASI,GAAM,CACX,KAAK,MAAQ,GACb,KAAK,QAAU,GACf,KAAK,UAAYN,EACjB,KAAK,YAAc,EACvB,CACO,cAAA,eAAeM,EAAI,UAAW,OAAQ,CACzC,IAAK,UAAY,CAAE,OAAO,KAAK,MAAM,MAAQ,EAC7C,WAAY,GACZ,aAAc,EAAA,CACjB,EACDA,EAAI,UAAU,IAAM,SAAUrK,EAAK,CAAE,OAAO,KAAK,MAAMA,EAAgB,EAAU,GAAA,CAAA,EACjFqK,EAAI,UAAU,IAAM,SAAUrK,EAAK,CAC/B,IAAIZ,EAAQ,KAAK,MAAMY,EAAgB,EAAA,EACvC,OAAOZ,GAAS,EAAI,KAAK,QAAQA,CAAK,EAAI,MAAA,EAE9CiL,EAAI,UAAU,IAAM,SAAUrK,EAAKnB,EAAO,CACtC,IAAIO,EAAQ,KAAK,MAAMY,EAAgB,EAAA,EAClC,YAAA,QAAQZ,CAAK,EAAIP,EACf,IAAA,EAEXwL,EAAI,UAAU,OAAS,SAAUrK,EAAK,CAClC,IAAIZ,EAAQ,KAAK,MAAMY,EAAgB,EAAA,EACvC,GAAIZ,GAAS,EAAG,CAEZ,QADIkL,EAAO,KAAK,MAAM,OACblM,EAAIgB,EAAQ,EAAGhB,EAAIkM,EAAMlM,IAC9B,KAAK,MAAMA,EAAI,CAAC,EAAI,KAAK,MAAMA,CAAC,EAChC,KAAK,QAAQA,EAAI,CAAC,EAAI,KAAK,QAAQA,CAAC,EAExC,YAAK,MAAM,SACX,KAAK,QAAQ,SACT4B,IAAQ,KAAK,YACb,KAAK,UAAY+J,EACjB,KAAK,YAAc,IAEhB,EACX,CACO,MAAA,EAAA,EAEXM,EAAI,UAAU,MAAQ,UAAY,CAC9B,KAAK,MAAM,OAAS,EACpB,KAAK,QAAQ,OAAS,EACtB,KAAK,UAAYN,EACjB,KAAK,YAAc,EAAA,EAEvBM,EAAI,UAAU,KAAO,UAAY,CAAE,OAAO,IAAIJ,EAAY,KAAK,MAAO,KAAK,QAASM,CAAM,CAAA,EAC1FF,EAAI,UAAU,OAAS,UAAY,CAAE,OAAO,IAAIJ,EAAY,KAAK,MAAO,KAAK,QAASO,CAAQ,CAAA,EAC9FH,EAAI,UAAU,QAAU,UAAY,CAAE,OAAO,IAAIJ,EAAY,KAAK,MAAO,KAAK,QAASQ,CAAQ,CAAA,EAC/FJ,EAAI,UAAU,YAAY,EAAI,UAAY,CAAE,OAAO,KAAK,SAAQ,EAChEA,EAAI,UAAU3G,CAAc,EAAI,UAAY,CAAE,OAAO,KAAK,SAAQ,EAClE2G,EAAI,UAAU,MAAQ,SAAUrK,EAAK0K,EAAQ,CACrC,OAAA,KAAK,YAAc1K,IACnB,KAAK,YAAc,KAAK,MAAM,QAAQ,KAAK,UAAYA,CAAG,GAE1D,KAAK,YAAc,GAAK0K,IACnB,KAAA,YAAc,KAAK,MAAM,OACzB,KAAA,MAAM,KAAK1K,CAAG,EACd,KAAA,QAAQ,KAAK,MAAS,GAExB,KAAK,WAAA,EAETqK,CAAA,EACT,EACO,SAAAE,EAAOvK,EAAK2K,EAAG,CACb,OAAA3K,CACX,CACS,SAAAwK,EAASG,EAAG9L,EAAO,CACjB,OAAAA,CACX,CACS,SAAA4L,EAASzK,EAAKnB,EAAO,CACnB,MAAA,CAACmB,EAAKnB,CAAK,CACtB,CACJ,CAEA,SAASyF,IAAoB,CACzB,OAAsB,UAAY,CAC9B,SAASsG,GAAM,CACN,KAAA,KAAO,IAAIzG,CACpB,CACO,cAAA,eAAeyG,EAAI,UAAW,OAAQ,CACzC,IAAK,UAAY,CAAE,OAAO,KAAK,KAAK,IAAM,EAC1C,WAAY,GACZ,aAAc,EAAA,CACjB,EACDA,EAAI,UAAU,IAAM,SAAU/L,EAAO,CAAS,OAAA,KAAK,KAAK,IAAIA,CAAK,CAAA,EACjE+L,EAAI,UAAU,IAAM,SAAU/L,EAAO,CAAE,OAAO,KAAK,KAAK,IAAIA,EAAOA,CAAK,EAAG,IAAA,EAC3E+L,EAAI,UAAU,OAAS,SAAU/L,EAAO,CAAS,OAAA,KAAK,KAAK,OAAOA,CAAK,CAAA,EACvE+L,EAAI,UAAU,MAAQ,UAAY,CAAE,KAAK,KAAK,OAAM,EACpDA,EAAI,UAAU,KAAO,UAAY,CAAS,OAAA,KAAK,KAAK,MAAK,EACzDA,EAAI,UAAU,OAAS,UAAY,CAAS,OAAA,KAAK,KAAK,QAAO,EAC7DA,EAAI,UAAU,QAAU,UAAY,CAAS,OAAA,KAAK,KAAK,SAAQ,EAC/DA,EAAI,UAAU,YAAY,EAAI,UAAY,CAAE,OAAO,KAAK,MAAK,EAC7DA,EAAI,UAAUlH,CAAc,EAAI,UAAY,CAAE,OAAO,KAAK,MAAK,EACxDkH,CAAA,EACT,CACN,CAEA,SAASpG,IAAwB,CAC7B,IAAIqG,EAAY,GACZhL,EAAOiE,EAAQ,SACfgH,EAAUC,IACd,OAAsB,UAAY,CAC9B,SAASC,GAAU,CACf,KAAK,KAAOD,GAChB,CACAC,OAAAA,EAAQ,UAAU,IAAM,SAAU1O,EAAQ,CACtC,IAAI2O,EAAQC,EAAwB5O,EAAmB,EAAA,EACvD,OAAO2O,IAAU,OAAYnH,EAAQ,IAAImH,EAAO,KAAK,IAAI,EAAI,EAAA,EAEjED,EAAQ,UAAU,IAAM,SAAU1O,EAAQ,CACtC,IAAI2O,EAAQC,EAAwB5O,EAAmB,EAAA,EACvD,OAAO2O,IAAU,OAAYnH,EAAQ,IAAImH,EAAO,KAAK,IAAI,EAAI,MAAA,EAEjED,EAAQ,UAAU,IAAM,SAAU1O,EAAQuC,EAAO,CAC7C,IAAIoM,EAAQC,EAAwB5O,EAAmB,EAAA,EACjD,OAAA2O,EAAA,KAAK,IAAI,EAAIpM,EACZ,IAAA,EAEXmM,EAAQ,UAAU,OAAS,SAAU1O,EAAQ,CACzC,IAAI2O,EAAQC,EAAwB5O,EAAmB,EAAA,EACvD,OAAO2O,IAAU,OAAY,OAAOA,EAAM,KAAK,IAAI,EAAI,EAAA,EAE3DD,EAAQ,UAAU,MAAQ,UAAY,CAElC,KAAK,KAAOD,GAAgB,EAEzBC,CAAA,EACT,EACF,SAASD,GAAkB,CACnB,IAAA/K,EACJ,GACIA,EAAM,cAAgBmL,UACnBrH,EAAQ,IAAIjE,EAAMG,CAAG,GAC5B,OAAAH,EAAKG,CAAG,EAAI,GACLA,CACX,CACS,SAAAkL,EAAwB5O,EAAQ8O,EAAQ,CAC7C,GAAI,CAAC7H,EAAO,KAAKjH,EAAQwO,CAAO,EAAG,CAC/B,GAAI,CAACM,EACM,OACJ,OAAA,eAAe9O,EAAQwO,EAAS,CAAE,MAAOhH,EAAQ,SAAU,CACtE,CACA,OAAOxH,EAAOwO,CAAO,CACzB,CACS,SAAAO,EAAgBC,EAAQhB,EAAM,CACnC,QAASlM,EAAI,EAAGA,EAAIkM,EAAM,EAAElM,EACxBkN,EAAOlN,CAAC,EAAI,KAAK,SAAW,IAAO,EAChC,OAAAkN,CACX,CACA,SAASC,EAAejB,EAAM,CACtB,OAAA,OAAO,YAAe,WAClB,OAAO,QAAW,YACX,OAAO,gBAAgB,IAAI,WAAWA,CAAI,CAAC,EAClD,OAAO,UAAa,YACb,SAAS,gBAAgB,IAAI,WAAWA,CAAI,CAAC,EACjDe,EAAgB,IAAI,WAAWf,CAAI,EAAGA,CAAI,EAE9Ce,EAAgB,IAAI,MAAMf,CAAI,EAAGA,CAAI,CAChD,CACA,SAASa,GAAa,CACd,IAAAvL,EAAO2L,EAAeV,CAAS,EAEnCjL,EAAK,CAAC,EAAIA,EAAK,CAAC,EAAI,GAAO,GAC3BA,EAAK,CAAC,EAAIA,EAAK,CAAC,EAAI,IAAO,IAE3B,QADIkJ,EAAS,GACJ0C,EAAS,EAAGA,EAASX,EAAW,EAAEW,EAAQ,CAC3C,IAAAC,EAAO7L,EAAK4L,CAAM,GAClBA,IAAW,GAAKA,IAAW,GAAKA,IAAW,KACjC1C,GAAA,KACV2C,EAAO,KACG3C,GAAA,KACdA,GAAU2C,EAAK,SAAS,EAAE,EAAE,YAAY,CAC5C,CACO,OAAA3C,CACX,CACJ,CAEA,SAAS/E,GAAehD,EAAK,CACzB,OAAAA,EAAI,GAAK,OACT,OAAOA,EAAI,GACJA,CACX,CAAA,CACH,CACL,GAAGiC,KAAYA,GAAU,CAAA,EAAG","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11]}